コネクテッド シート

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

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

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

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

アプリケーションが BigQuery コネクテッド シートのデータをリクエストする場合は、通常の Google Sheets 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 データを取得すると、データソースのグラフが次のようにレンダリングされます。

シェイクスピアの一般公開データセットのデータを示すデータソース チャート。

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

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

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

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

シェイクスピアの一般公開データセットのデータを示すデータソースの数式。

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

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

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

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

このガイドでは、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、モデル名、エクスプローラの名前に置き換えます。

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

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

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

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

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

spreadsheets.batchUpdate メソッドを使用して、UpdateDataSourceRequest リクエストまたは DeleteDataSourceRequest リクエストを適宜指定します。

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

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

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

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

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

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

データ実行ステータス

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

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