【Googleスプレッドシート】BigQueryのデータをスプレッドシートに!コネクテッドシートの使い方

【Googleスプレッドシート】BigQueryのデータをスプレッドシートに!コネクテッドシートの使い方
🛡️ 超解決

BigQueryに蓄積した大量のデータを、Googleスプレッドシートで手軽に分析したいと思ったことはありませんか。従来はCSVエクスポートやIMPORTRANGE関数を使う方法がありましたが、データ量が多いと制限に引っかかってしまうこともありました。コネクテッドシートを使えば、BigQueryのデータをスプレッドシートに直接接続し、リアルタイムに近い状態で操作できます。この記事では、コネクテッドシートの基本的な設定手順から、注意点、通常のインポートとの違いまでを詳しく解説します。

【要点】コネクテッドシートでBigQueryデータをスプレッドシートに取り込む方法

  • [データ]→[データコネクタ]→[BigQueryに接続]: スプレッドシートのメニューからBigQueryを選択し、プロジェクト・データセット・テーブルを指定して接続します。
  • 接続後のデータは読み取り専用: スプレッドシート上でフィルタやピボットテーブルは使えますが、セルを編集してもBigQueryには反映されません。
  • 手動での更新が必要: データは自動更新されないため、[データ]→[すべて更新]で最新の状態に更新します。

ADVERTISEMENT

コネクテッドシートの仕組みとできること

コネクテッドシートは、GoogleスプレッドシートとBigQueryを直接接続する機能です。スプレッドシートのセルにBigQueryのテーブルデータが表示され、あたかもスプレッドシート上でデータを操作しているように扱えます。ただし、実際のデータはBigQuery上にあり、スプレッドシートはその一部をキャッシュしているにすぎません。そのため、スプレッドシート上でデータを編集してもBigQueryには反映されず、逆にBigQueryのデータが更新されてもスプレッドシートは自動では更新されません。更新するには手動でリフレッシュする必要があります。コネクテッドシートの最大のメリットは、BigQueryの大規模データをスプレッドシートの使い慣れたインターフェースで分析できる点です。フィルタ、並べ替え、ピボットテーブル、グラフなど、通常のスプレッドシート機能をほぼそのまま利用できます。

コネクテッドシートを設定する手順

ここでは、BigQueryのテーブルをスプレッドシートに接続する具体的な手順を説明します。事前にBigQueryでデータセットとテーブルが作成されていること、およびBigQueryへのアクセス権限(roles/bigquery.dataViewerなど)があることを確認してください。

手順1: スプレッドシートを開いてデータメニューを開く

  1. 新しいスプレッドシートを作成する
    Googleスプレッドシートを開き、新しいスプレッドシートを作成します。
  2. [データ]メニューをクリックする
    上部メニューバーから「データ」をクリックし、[データコネクタ]→[BigQueryに接続]を選択します。

手順2: BigQueryのプロジェクトとデータセットを選択する

  1. Google Cloudプロジェクトを選択する
    表示されたダイアログで、アクセス権のあるプロジェクトを選択します。複数のプロジェクトがある場合は、目的のデータが含まれるプロジェクトを選びます。
  2. データセットを選択する
    プロジェクト内のデータセット一覧から、接続したいデータセットをクリックします。

手順3: テーブルを選択してデータを挿入する

  1. テーブルを選択する
    データセット内のテーブル一覧から、目的のテーブルを選択します。テーブル名の左にあるチェックボックスをオンにすると、右側にプレビューが表示されます。
  2. [データを挿入]をクリックする
    右下の「データを挿入」ボタンをクリックすると、スプレッドシートのアクティブセルを起点にデータが読み込まれます。大量データの場合は数秒から数分かかる場合があります。

手順4: カスタムクエリで接続する(応用)

テーブル全体ではなく、SQLクエリで抽出したデータだけを接続することも可能です。手順2で「カスタムクエリ」タブを選択し、SQL文を入力します。例えば「SELECT * FROM dataset.table WHERE date >= ‘2024-01-01’」のようにフィルタリングできます。クエリの結果だけがスプレッドシートに表示されるため、必要なデータだけを効率的に扱えます。

コネクテッドシート使用時の注意点と制限

データは読み取り専用であることを理解する

コネクテッドシートで取り込んだデータは、スプレッドシート上では編集できません。セルをクリックしても値の変更はできず、関数を使って新しい列を追加することもできません。セルに直接数式を入力しようとすると、エラーになります。データを加工したい場合は、QUERY関数やARRAYFORMULAを使って別のシートに計算結果を出力する方法を検討します。

データの更新は手動で行う

BigQuery側でデータが更新されても、スプレッドシートには自動反映されません。最新のデータを表示するには、メニューの[データ]→[すべて更新]をクリックする必要があります。特定のコネクテッドシートだけを更新したい場合は、該当セルを選択して右クリック→[更新]でも可能です。自動更新は標準機能では提供されていないため、定期的に更新が必要な場合はApps Scriptでトリガーを設定する方法があります。

使用できる行数と料金に注意する

スプレッドシートに表示できる行数は、BigQueryのデータ量に依存しますが、無料枠では最大1万行までです。1万行を超えるデータを接続するには、BigQueryの分析料金が発生します(データ処理量に応じて課金)。また、スプレッドシートのセル制限(1シートあたり1000万セル)を超えないように注意してください。

権限エラーが発生する場合の対処

「BigQueryにアクセスできません」というエラーが表示される場合、ユーザーに適切な権限が付与されていない可能性があります。BigQueryのデータセットに対して「bigquery.dataViewer」ロール(読み取り専用)または「bigquery.user」ロール(クエリ実行権限)が必要です。権限はGoogle Cloud ConsoleのIAMで設定できます。

ADVERTISEMENT

コネクテッドシートと従来のインポート方法の比較

項目 コネクテッドシート CSVエクスポート→インポート
データの更新 手動で更新(自動更新は不可) エクスポートとインポートを繰り返す
編集の可否 読み取り専用(編集不可) 通常のセル編集が可能
データ量の制限 無料で1万行まで、以降はBigQuery課金 スプレッドシートのセル制限(1000万セル)まで可能
リアルタイム性 手動更新時点のスナップショット インポート時点の固定データ
クエリでのフィルタリング カスタムクエリで抽出可能 エクスポート前にクエリを実行する必要あり

まとめ

コネクテッドシートを使えば、BigQueryの大規模データをスプレッドシートで手軽に分析できるようになります。設定は数クリックで完了し、カスタムクエリを使えば必要なデータだけを抽出することも可能です。ただし、データは読み取り専用で自動更新されない点には注意が必要です。次に試すべきこととしては、更新を自動化するためのApps Scriptを使ったトリガー設定や、QUERY関数と組み合わせてスプレッドシート上で動的なレポートを作成する方法を調べてみてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。