こんにちは、又吉です。今回は、 Google Workspace の全エディションにおいて無償で利用可能なコネクテッドシート(Connected Sheets)をご紹介します。
はじめに
コネクテッドシートとは
コネクテッドシート(Connected Sheets)とは、BigQuery に保存されているデータの可視化や分析を、Google スプレッドシート上で実現可能な機能です。Google スプレッドシートから BigQuery にアクセスし、BigQuery 上のデータをスプレッドシートに簡単に取り込むことができます。
Google スプレッドシートには、シート当たり最大 1,000 万セルまたは 18,278 列(列 ZZZ)までしか持てないという制限があるため、本来は 1,000 万セルを超えるビックデータの分析には適していません。一方で、BigQuery を使ってビックデータを分析するには、SQL の知識が必要になってしまいます。
そこで、SQL を使わずエクセルライクにビックデータを分析 したい方や、簡単な集計はスプレッドシート上で済ませたい方などにオススメなのがコネクテッドシートです。
前提条件
コネクテッドシートを利用するためには、Google アカウントが必要です。
また、BigQuery API が有効化された Google Cloud プロジェクトが必要です。
料金
コネクテッドシートの利用自体は無料です。
従来は Google Workspace の Enterprise エディションでのみコネクテッドシートが利用可能でしたが、2022年6月から、個人用の無償 Gmail アカウントを含む全エディションで利用可能になりました。
コネクテッドシート自体は無料であるものの、BigQuery へのクエリ料金等は、通常どおり発生することにご留意ください。BigQueryの料金については、以下の Google Cloud 公式ページを参照ください。
- 参考 : BigQuery の料金
アクセス制御
コネクテッドシートで表示するデータは参照元の BigQuery データセットに存在するため、コネクテッドシートから BigQuery へのアクセスを実行する利用者の Google アカウントは、対象の BigQuery テーブルに対してアクセス権限を持っている必要があります。
また、アクセス権の委任という選択肢もあります。アクセス権の委任を行うと、最初に設定を行う人の Google アカウントの権限で BigQuery テーブルに接続し、後から利用する人もその人の権限を利用して、コネクテッドシートを利用することができます。ただしアクセス権の委任機能は、Google Workspace Enterprise / Education Standard / Education Plus / Enterprise Essentials / Enterprise Essentials Plus のいずれかのエディションでのみ利用可能です。
詳細は、以下の公式ページを参照ください。
- 参考 : 組織でコネクテッド シートを使用する
セットアップ
今回扱うデータは、BigQuery の一般公開データセットにある「アイオワ州の酒類購入情報」(アイオワ州の公式資料より)から取得したいと思います。
まずは、新規のスプレッドシートから、[データ]→[データコネクタ]→[BigQueryに接続]をします。
接続先の情報を入力します。
[対象のGoogle Cloudブロジェクト]→[公開データセット]→
[iowa_liquor_sales]→[sales]→[接続]
今回接続したデータは2,399万行24列(約5.8億セル)のビックデータになりますが、ほんの10秒程度で一部データがプレビュー表示されました。
操作方法
概要
スプレッドシートでデータを分析するように、列データをもとに昇順/降順での並び替え、条件でフィルタをかけたりすることができます。
また、赤枠にある各種項目でグラフを作ったり、ピボットテーブルでデータを形成したり、より柔軟な分析ができます。
一つずつ簡潔に説明していきます。
グラフ
グラフを用いるとデータを容易に可視化できます。グラフの種類も折れ線、縦棒、円、散布図、地図などから選択できます。
以下は都市別の売上をグラフ化してます。
ピボットテーブル
ピボットテーブルは柔軟に分析ができるので、中でもよく使う分析項目かと思います。
こちらの例では月別の売上を表示させてます。右側のエディタから表示させたい行、列、値を選択し、グループ化やフィルタなどの条件もスプレッドシートの操作感で行えます。
実際に裏ではこのような感じのSQLに変換され、BigQuery 側で処理されています。コネクテッドシートを用いることで、SQL を打たずにビックデータの分析ができるのは魅力的です。
関数
関数はスプレッドシートで普段使うような集計関数などが利用できます。
データの抽出
データの抽出は、BigQuery からデータをスプレッドシート上に取り出しておける機能です。最大 500,000 行(ただし10MBまで)の BigQuery データを抽出できます。
コネクテッドシートのデータをグラフ化したり、あるいはスプレッドシート関数でコネクテッドシートのデータを参照すると、都度 BigQuery にクエリが発行されてしまいます。参照先テーブルが大規模だと、クエリに時間がかかったり、料金の増大に繋がります。
データの抽出機能を使ってシートにデータを取り出しておけば、Google スプレッドシートの中でデータの扱いが完結するので、パフォーマンス向上や料金節約に繋がります。
計算された列
計算された列は、任意の列に対し関数を組み込んで新しい列を作成できる機能です。
以下は、sale_dollars列に対し130を掛けて、japanise_enという新しい列を作成しました。
列の統計情報
列の統計情報は、任意の列情報を表示してくれます。
以下は、city列の統計情報を表示してます。一意の値がどれくらいあるのか、出現回数が最も多いのは何なのかなど、ぱっと調べたい時に有用ですね。
データの更新
BigQuery データとコネクテッドシートの同期は、手動更新または自動更新から選択できます。
手動更新は、コネクテッドシートの画面左下から選択できます。

また、自動更新の単位は1時間・1日・1週間・1ヶ月から選ぶことができます。
自動更新を設定するには、コネクテッドシート上部の更新オプションを押下します。

その後、画面右側の更新スケジュールより、「繰り返す間隔」「開始日」を選択し保存します。

注意点としては、更新するたびに裏で BigQuery に対してクエリが投入されるので、更新頻度が高いとその分、クエリ料金が高くなる可能性があります。
必要最小限の頻度でのデータ更新をオススメします。
VPC Service Controls とコネクテッドシート
VPC Service Controls は、Google Cloud 環境に境界(perimeter)を構成して、API やデータを保護する機能です。
VPC Service Controls によって保護されているプロジェクトの BigQuery に対して、コネクテッドシートからアクセスするには、VPC Service Controls の内向きルールと外向きルールに適切な設定をする必要があります。
内向きルールには、コネクテッドシート利用者の環境からアクセス可能なよう、IP アドレス(アクセスレベル)や、アカウント単位、またはグループ単位の許可を設定します。
外向きルールには、Google によって管理されている専用プロジェクトへの API リクエスト実行許可を設定します。
詳細は、以下の公式ドキュメントを参照してください。
また、VPC Service Controls の詳細については、以下を参照してください。
実践
G-gen 社内で、実際にコネクテッドシートを使って分析を行っている事例は、以下の記事で紹介されています。ぜひ、ご参照ください。
又吉 佑樹(記事一覧)
クラウドソリューション部
はいさい、沖縄出身のクラウドエンジニア!
セールスからエンジニアへ転身。Google Cloud 全 11 資格保有。Google Cloud Champion Innovator (AI/ML)。Google Cloud Partner Top Engineer 2024。Google Cloud 公式ユーザー会 Jagu'e'r でエバンジェリスト。好きな分野は生成 AI。
Follow @matayuuuu