コネクテッド シート

コネクテッド シートを使用すると、Google スプレッドシート内でペタバイト単位のデータを直接分析できます。スプレッドシートを BigQuery データ ウェアハウスまたは Looker に接続し、ピボット テーブル、グラフ、数式などの使い慣れたスプレッドシートのツールを使用して分析を行うことができます。

BigQuery データソースを管理する

このセクションでは、BigQuery の一般公開データセット Shakespeare を使用して、コネクテッド シートの使用方法について説明します。このデータセットには、次の情報が含まれます。

フィールド タイプ 説明
word STRING コーパスから抽出された 1 つの一意の単語(空白文字が区切り文字)。
word_count INTEGER このコーパス内でこの単語が出現する回数。
corpus STRING この単語が抽出された作品。
corpus_date INTEGER このコーパスが公開された年。

アプリケーションが BigQuery コネクテッド シートのデータをリクエストする場合は、通常の Google スプレッドシート API リクエストに必要な他のスコープに加えて、bigquery.readonly スコープを付与する OAuth 2.0 トークンを指定する必要があります。詳細については、Google Sheets API のスコープを選択するをご覧ください。

データソースは、データが存在する外部ロケーションを指定します。データソースがスプレッドシートに接続されます。

BigQuery データソースを追加する

データソースを追加するには、spreadsheets.batchUpdate メソッドを使用して AddDataSourceRequest を指定します。リクエストの本文では、DataSource オブジェクトの dataSource フィールドを指定する必要があります。

"addDataSource":{
   "dataSource":{
      "spec":{
         "bigQuery":{
            "projectId":"PROJECT_ID",
            "tableSpec":{
               "tableProjectId":"bigquery-public-data",
               "datasetId":"samples",
               "tableId":"shakespeare"
            }
         }
      }
   }
}

PROJECT_ID は、有効な Google Cloud プロジェクト ID に置き換えます。

データソースが作成されると、関連する DATA_SOURCE シートが作成され、最大 500 行のプレビューが表示されます。プレビューはすぐにはご利用いただけません。実行が非同期的にトリガーされ、BigQuery データがインポートされます。

AddDataSourceResponse には次のフィールドが含まれています。

  • dataSource: 作成された DataSource オブジェクト。dataSourceId は、スプレッドシート スコープの一意の ID です。データソースから各 DataSource オブジェクトを作成するために、このテーブルにデータが入力され、参照されます。

  • dataExecutionStatus: BigQuery データをプレビューシートにインポートする実行のステータス。詳細については、データ実行ステータスのセクションをご覧ください。

BigQuery データソースを更新または削除する

spreadsheets.batchUpdate メソッドを使用して、必要に応じて UpdateDataSourceRequest リクエストまたは DeleteDataSourceRequest リクエストを指定します。

BigQuery データソース オブジェクトを管理する

データソースをスプレッドシートに追加すると、そのデータソースからデータソース オブジェクトを作成できます。データソース オブジェクトは、コネクテッド シートと統合され、データ分析を強化するピボット テーブル、グラフ、数式などの通常のスプレッドシート ツールです。

オブジェクトには次の 4 つのタイプがあります。

  • DataSource 個のテーブル
  • DataSource pivotTable
  • DataSourceのグラフ
  • DataSource 数式

BigQuery データソース テーブルを追加する

テーブル オブジェクトは、スプレッドシート エディタでは「抽出」と呼ばれ、データソースからスプレッドシートにデータの静的ダンプのインポートを行います。ピボット テーブルと同様に、テーブルは指定され、左上のセルに固定されます。

次のコードサンプルは、spreadsheets.batchUpdate メソッドと UpdateCellsRequest を使用して、2 つの列(wordword_count)の最大 1,000 行のデータソース テーブルを作成する方法を示しています。

"updateCells":{
   "rows":{
      "values":[
         {
            "dataSourceTable":{
               "dataSourceId":"DATA_SOURCE_ID",
               "columns":[
                  {
                     "name":"word"
                  },
                  {
                     "name":"word_count"
                  }
               ],
               "rowLimit":{
                  "value":1000
               },
               "columnSelectionType":"SELECTED"
            }
         }
      ]
   },
   "fields":"dataSourceTable"
}

DATA_SOURCE_ID は、データソースを識別するスプレッドシート スコープの一意の ID に置き換えます。

データソース テーブルの作成後、データはすぐに使用できません。スプレッドシート エディタでは、プレビューとして表示されます。BigQuery データを取得するには、データソース テーブルを更新する必要があります。同じ batchUpdate 内に RefreshDataSourceRequest を指定できます。すべてのデータソース オブジェクトは同じように機能します。詳細については、データソース オブジェクトを更新するをご覧ください。

更新が完了し、BigQuery データが取得されると、データソース テーブルに次のようにデータが入力されます。

シェイクスピアの一般公開データセットのデータを示しているデータソース テーブル。

BigQuery データソースのピボット テーブルを追加する

従来のピボット テーブルとは異なり、データソース ピボット テーブルはデータソースを基盤とし、列名でデータを参照します。次のコードサンプルは、spreadsheets.batchUpdate メソッドと UpdateCellsRequest を使用して、コーパス別の総語数を示すピボット テーブルを作成する方法を示しています。

"updateCells":{
   "rows":{
      "values":[
         {
            "pivotTable":{
               "dataSourceId":"DATA_SOURCE_ID",
               "rows":{
                  "dataSourceColumnReference":{
                     "name":"corpus"
                  },
                  "sortOrder":"ASCENDING"
               },
               "values":{
                  "summarizeFunction":"SUM",
                  "dataSourceColumnReference":{
                     "name":"word_count"
                  }
               }
            }
         }
      ]
   },
   "fields":"pivotTable"
    }

DATA_SOURCE_ID は、データソースを識別するスプレッドシート スコープの一意の ID に置き換えます。

BigQuery データが取得されると、データソースのピボット テーブルに次のようにデータが入力されます。

シェイクスピアの一般公開データセットのデータを示しているデータソースのピボット テーブル。

BigQuery データソースのグラフを追加する

次のコードサンプルは、spreadsheets.batchUpdate メソッドと AddChartRequest を使用して、chartType が COLUMN のデータソース グラフを作成し、コーパス別の総単語数を表示する方法を示しています。

"addChart":{
   "chart":{
      "spec":{
         "title":"Corpus by word count",
         "basicChart":{
            "chartType":"COLUMN",
            "domains":[
               {
                  "domain":{
                     "columnReference":{
                        "name":"corpus"
                     }
                  }
               }
            ],
            "series":[
               {
                  "series":{
                     "columnReference":{
                        "name":"word_count"
                     },
                     "aggregateType":"SUM"
                  }
               }
            ]
         }
      },
      "dataSourceChartProperties":{
         "dataSourceId":"DATA_SOURCE_ID"
      }
   }
}

DATA_SOURCE_ID は、データソースを識別するスプレッドシート スコープの一意の ID に置き換えます。

BigQuery データが取得されると、データソースのグラフが次のようにレンダリングされます。

Shakespeare 一般公開データセットのデータを示しているデータソースのグラフ。

BigQuery データソースの式を追加する

次のコードサンプルは、spreadsheets.batchUpdate メソッドと UpdateCellsRequest を使用してデータソースの式を作成し、平均単語数を計算する方法を示しています。

"updateCells":{
   "rows":[
      {
         "values":[
            {
               "userEnteredValue":{
                  "formulaValue":"=AVERAGE(shakespeare!word_count)"
               }
            }
         ]
      }
   ],
   "fields":"userEnteredValue"
}

BigQuery データが取得されると、データソースの式に次のようにデータが入力されます。

Shakespeare 一般公開データセットのデータを示しているデータソースの式。

BigQuery データソース オブジェクトを更新する

データソース オブジェクトを更新して、現在のデータソースの仕様とオブジェクト構成に基づいて BigQuery から最新のデータを取得できます。spreadsheets.batchUpdate メソッドを使用して RefreshDataSourceRequest を呼び出すことができます。次に、DataSourceObjectReferences オブジェクトを使用して、更新するオブジェクト参照を 1 つ以上指定します。

1 つの batchUpdate リクエスト内でデータソース オブジェクトの作成と更新の両方を実行できます。

Looker データソースを管理する

このガイドでは、Looker データソースを追加、更新、削除する方法、データソースでピボット テーブルを作成する方法、ピボット テーブルを更新する方法について説明します。

Looker コネクテッド シートのデータをリクエストするアプリは、Looker との既存の Google アカウントのリンクを再利用します。

Looker データソースを追加する

データソースを追加するには、spreadsheets.batchUpdate メソッドを使用して AddDataSourceRequest を指定します。リクエストの本文では、DataSource オブジェクトの dataSource フィールドを指定する必要があります。

"addDataSource":{
   "dataSource":{
      "spec":{
         "looker":{
            "instance_uri":"INSTANCE_URI",
            "model":"MODEL",
            "explore":"EXPLORE"
         }
      }
   }
}

INSTANCE_URIMODELEXPLORE は、それぞれ有効な Looker インスタンス URI、モデル名、Explore 名に置き換えます。

データソースが作成されると、関連する DATA_SOURCE シートが作成され、選択した Explore の構造(ビュー、ディメンション、メジャー、フィールドの説明など)のプレビューが表示されます。

AddDataSourceResponse には次のフィールドが含まれています。

  • dataSource: 作成された DataSource オブジェクト。dataSourceId は、スプレッドシート スコープの一意の ID です。データソースから各 DataSource オブジェクトを作成するために、このテーブルにデータが入力され、参照されます。

  • dataExecutionStatus: BigQuery データをプレビューシートにインポートする実行のステータス。詳細については、データ実行ステータスのセクションをご覧ください。

Looker データソースを更新または削除する

spreadsheets.batchUpdate メソッドを使用して、必要に応じて UpdateDataSourceRequest リクエストまたは DeleteDataSourceRequest リクエストを指定します。

Looker データソース オブジェクトを管理する

データソースをスプレッドシートに追加すると、そのデータソースからデータソース オブジェクトを作成できます。Looker データソースの場合、そこから作成できるのは DataSource ピボット テーブル オブジェクトのみです。

Looker データソースから DataSource 数式、抽出、グラフを作成することはできません。

Looker データソース オブジェクトを更新する

データソース オブジェクトを更新して、現在のデータソースの仕様とオブジェクトの構成に基づいて Looker から最新のデータを取得できます。spreadsheets.batchUpdate メソッドを使用して RefreshDataSourceRequest を呼び出すことができます。次に、DataSourceObjectReferences オブジェクトを使用して、更新するオブジェクト参照を 1 つ以上指定します。

1 つの batchUpdate リクエスト内でデータソース オブジェクトの作成と更新の両方を実行できます。

データ実行ステータス

データソースを作成するか、データソース オブジェクトを更新すると、バックグラウンド実行が作成され、BigQuery または Looker からデータが取得され、DataExecutionStatus を含むレスポンスが返されます。実行が正常に開始されると、通常、DataExecutionStateRUNNING 状態になります。

このプロセスは非同期であるため、アプリケーションでポーリング モデルを実装して、データソース オブジェクトのステータスを定期的に取得する必要があります。ステータスが SUCCEEDED または FAILED の状態が返されるまで、spreadsheets.get メソッドを使用します。ほとんどの場合、実行はすぐに完了しますが、データソースの複雑さに依存します。通常、実行時間は 10 分を超えません。