Looker 用コネクテッド シートを使用すると、使い慣れた Google スプレッドシートのスプレッドシート インターフェースから LookML モデルのデータをインタラクティブに探索できます。コネクテッド シートのユーザーは、Looker がサポートする 50 以上のデータベースからの統制されたデータにアクセスできます。コネクテッド シートにはモデルの整理されたビュー(Looker で定義されたとおりのビュー、フィールド、メジャーが含まれる)が表示されるため、直感的にデータを探索できます。コネクテッド シートでアクセスする Looker データは、標準的なスプレッドシートの構造(ピボット テーブル、グラフ、数式など)で使用できます。それにより、使い慣れた構造での柔軟な分析が可能になります。
コネクテッド シートの有効化
コネクテッド シートを使用するには:
- Looker(オリジナル)で、Looker 管理者は、Looker の [管理] メニューの [プラットフォーム] セクションの [BI コネクタ] パネルで、[すべての Looker BI コネクタ] または [コネクテッド シート] トグルを有効にする必要があります。Looker(Google Cloud コア)では、これらのオプションがデフォルトで有効になっています。
- Looker インスタンスは、Looker によりホストされている必要があります。
- インスタンスが Google Cloud でホストされている場合、Looker インスタンスは Looker 22.20 以降を実行している必要があります。Looker インスタンスが Google Cloud でホストされていない場合は、Looker 23.4 以降を実行している必要があります。
- Google スプレッドシートから Looker インスタンスに接続する各ユーザーは、Google Workspace アカウントで使用しているものと同じメールアドレスを Looker ユーザー アカウントで使用する必要があります。Google Workspace と Looker アカウントのメールアドレスが異なる場合は、スプレッドシートから Looker に接続しようとするとエラーを受け取ります。
- 個別に制御されていないサービスへのアクセスは、Google Workspace 管理コンソールで有効にする必要があります。通常、これはデフォルトで有効になっています。詳細については、個別に管理されていないサービスへのアクセスを管理するのヘルプ記事をご覧ください。
Google スプレッドシートから Looker への接続
Google スプレッドシートの [データ] メニューから [データコネクタ] を選択し、[Looker に接続する] を選択します。
[Looker に接続する] ダイアログで、Looker インスタンスの名前を入力するか、最近接続したインスタンスの名前を選択して [続行] を選択します。
スプレッドシートを Looker インスタンスに接続すると、選択した Explore の構造(Looker デベロッパーが追加したビュー、ディメンション、メジャー、フィールドの説明)を示す新しいスプレッドシートが開きます。
Google スプレッドシートを使用した Looker クエリの作成
Looker クエリはスプレッドシートのピボット テーブルを使用して作成されます。Looker のデータをシートに追加するには:
Explore が表示されているシートで、[ピボットテーブル] を選択します。
新しいピボット テーブルを新しいシートに挿入するか、既存のシートに挿入するかを選択して、[作成] を選択します。
空の新しいピボット テーブルが作成され、[ピボット テーブル エディタ] ウィンドウが開きます。行、列、値、フィルタを追加して、Looker の Explore のディメンションとメジャーに基づいてクエリを作成できます。
ピボット エディタの行、列、値、フィルタは、次のように Looker のディメンションおよびメジャーと同等です。
- 行は Looker のディメンションと同等です。
- 列は Looker のピボットされたディメンションと同等です。
- 値は Looker のメジャーと同等です。Looker ディメンションとスプレッドシートの Summarize by 関数を選択して、カスタム メジャーを作成できます。
- フィルタは Looker のフィルタと同等です。
ピボット エディタには、Explore に含まれるビューのリストも表示されます。このリストからビューを選択すると、そのビューに含まれるディメンションとメジャーが表示されます。
行、列、値、フィルタを追加するには、[追加] を選択します。コネクテッド シートには、Explore で使用可能なビューのリストが表示されます。ビュー名を選択すると、ビューにディメンションとメジャーのリストが表示されます。それから、その行、列、値、またはフィルタのデータを提供するフィールドを選択します。
Looker フィールドとフィルタを追加してクエリを構築したら、[適用] を選択します。これにより、Looker インスタンスからシートにデータが入力されます。
Looker データをピボット テーブルに追加すると、Google スプレッドシートを使用してデータをフォーマットすることや、Looker データに基づいて新しいスプレッドシートの数式を構築することが可能になります。
フィルタ オプション
Looker 向けコネクテッド シートの初期リリース以降、新しいフィルタ オプションが追加されました。
値でフィルタ - 2023 年 8 月に追加
Looker 向けコネクテッド シートのピボット テーブルで Looker ディメンションをフィルタリングするには、値のリストを表示し、目的の値を選択または選択解除します。以前は、条件によるフィルタリングを使用する際に、フィルタ値を手動で入力する必要がありました。
この機能を使用するには、ピボット テーブルの [フィルタ] セクションにフィールドを追加し、[ステータス] プルダウンをクリックしてフィルタ オプションを開きます。[フィルタを追加] をクリックします。
サイドバーが開き、Google スプレッドシートは Looker から最も頻繁に出現する 500 個の値を取得します。
その後、アイテムを検索したり、すべてを選択またはすべてをクリアを選択したり、頻度やアルファベットでアイテムを並べ替えたりできます。下部にある [OK] をクリックすると、スプレッドシートに選択内容が保存されます。[適用] をクリックすると、新しいフィルタが適用されたピボット テーブルが通常どおり更新されます。
Looker フィルタ式を使用したフィルタ - 2023 年 9 月に追加
Looker フィルタ式を使用すると、相対的な日付フィルタやその他の高度なフィルタをコネクテッド シートに適用できます。たとえば、コネクテッド シートで「過去 30 分間」や「過去 10 日間」などのフィルタを適用できます。
Looker フィルタ式を使用する手順は次のとおりです。
ピボット テーブルのフィルタ セクションにフィールドを追加します。
[ステータス] プルダウンをクリックしてフィルタ オプションを表示し、[フィルタ式] を選択します。
Looker フィルタ式を [値] フィールドに入力します。
たとえば、過去 7 日間にフィルタするには、「7 日間」または「過去 7 日間」と入力します。
[OK] をクリックします。
相対的な日付フィルタリング以外にも、次のようなフィルタリングが可能です。
-FOO%
で始まっていない文字列- 含む数値と含まない数値の範囲:
(12, 20]
使用可能なすべてのフィルタ式を確認するには、Looker のフィルタ式のドキュメント ページをご覧ください。
Looker パラメータとフィルタ限定のフィールドの使用 — 2023 年 10 月に追加
コネクテッド シートのパラメータとフィルタ限定のフィールドを使用できるようになりました。
フィルタ限定のフィールドとパラメータは、Looker の場合と同様に、Google スプレッドシートのフィールド ピッカーの [フィルタ限定のフィールド] に表示されます。アーキテクチャ コンポーネントを使用する手順は次のとおりです。
- [フィルタ] セクションでは、ディメンションやメジャーでフィルタする場合と同様に、選択したパラメータやフィルタ限定のフィールドを追加またはドラッグします。
- 使用できる値が設定されているパラメータの場合、これらの値は [条件でフィルタ] ダイアログのプルダウンに表示されます。
- フィルタ限定のフィールドには、通常の [条件でフィルタ] ダイアログを使用できます。フィールドに Looker モデルで定義された候補がある場合は、値によるフィルタ機能も使用できます。
Google スプレッドシート内のデータの更新
ピボット テーブルのデータは静的ですが、いつでも更新できます。データを更新すると、Looker はデータベースに対してクエリを実行し、最新のデータでピボット テーブルを更新します。
ピボット テーブルと Explore が表示されたシートの両方に、最終更新時刻が表示されます。
[更新] を選択して、ピボット テーブル内のデータを更新します。
定期的な更新スケジュール設定
データの自動更新をスケジュール設定するには、ピボット テーブルのその他メニューから [更新オプション] を選択するか、Explore シートで [更新オプション] を選択します。Looker で [更新スケジュール] ダイアログが表示されます。
ピボット テーブルの設定の編集
ピボット テーブルに含める行、列、値、またはフィルタを変更するには、その他メニューの横にある鉛筆アイコンを選択して、ピボット テーブル エディタ パネルを開きます。
コネクテッド シートのモニタリング
Looker 管理者は、System Activity History Explore で Query API Client Properties グループを使用してコネクテッド シートの使用状況を確認できます。新しいクエリが実行されるたびに、[History] Explore にエントリが作成されます。
[Query API Client Properties] フィールド グループでは、コネクテッド シート用に 3 つの新しいフィールドがあります。
- API Client Name - コネクテッド シートのエントリを識別できるように、このフィールドには常に
Connected Sheets
が表示されます。 - Connected Sheets Spreadsheet ID - このフィールドには、そのシートの Google スプレッドシートの URL に含まれるシート ID が表示されます。
- Connected Sheets Trigger - クエリが、ユーザーがスプレッドシートの [更新] ボタンを選択したことでトリガーされたか、スケジュールされた更新によってトリガーされたかを示します。
以下に、コネクテッド シートの使用状況を示すシステム アクティビティ URL の例を示します。<instance_name.looker.com>
をインスタンスの URL に置き換えます。
https://<instance_name.looker.com>/explore/system__activity/history?fields=query_api_client_context.name,query_api_client_context.cs_spreadsheet_id,query_api_client_context.cs_trigger,user.name,history.created_date,history.created_time_of_day&f[query_api_client_context.cs_spreadsheet_id]=-NULL&sorts=history.created_time_of_day+desc&limit=5000
コネクテッド シートへの API サポート
Looker 向けコネクテッド シートの API サポートには、AppsScript と Google Sheets API の両方からアクセスできます。
API サポートを使用してプログラムでできることには、次のものがあります。
- データの自動更新: 常に最新の情報を使用するために、Looker を活用したスプレッドシートの定期的な更新をスケジュール設定できます。
- カスタム ワークフロー: Looker データを既存の Google スプレッドシート ワークフローに組み込む複雑なプロセスを構築できます。
- 他のアプリケーションとの統合: AppsScript または Google Sheets API を使用して、Looker データを外部のツールやサービスに接続できます。
Google Sheets API で Looker をデータソースとして指定するには、DataSourceSpec
REST リソースで looker
オブジェクトを使用します。
知っておくべきこと
- ピボット テーブルに表示されるデータの大文字と小文字の区別は、モデルでの大文字と小文字の区別の設定によって決まります。ただし、ピボット テーブルでは、ネイティブのスプレッドシート データに対してフィルタで大文字と小文字が区別されない状況の場合、大文字と小文字は区別されません。
- スプレッドシートの閲覧者のアクセス権限を持つユーザーは、ピボット テーブル内のキャッシュ データを表示できます。
- スプレッドシートの編集者アクセスに加え、ピボット テーブルを編集または更新する必要があるユーザーには、データモデルにアクセスするために、Looker で適切な権限が必要です。これには、ピボット テーブルのベースとなるモデルへのアクセス権、データの表示権限、アクセス フィルタを使用したデータへの適切なアクセス権、またはアクセス許可が含まれます。
- ユーザーが OAuth で BigQuery データベースへの認証を行う場合は、基盤となるデータベースに対する権限の付与が必要になることがあります。
コネクテッド シートの行とデータの上限
コネクテッド シートを使用して作成されるクエリは、最大 100,000 行に制限されます。クエリの結果により多くの行が含まれる場合は、スプレッドシートによってエラーが表示されます。ユーザーに download_without_limit
権限が付与されていない場合は、スプレッドシートの上限にかかわらず、結果が最大 5,000 行に切り捨てられます。
さらに、コネクテッド シートのクエリには、データサイズの上限が適用されます。返されるデータが多すぎるクエリも、エラーになります。
これらのエラーのいずれかが表示された場合は、フィルタを追加するか、クエリで使用するディメンションの数を少なくすることを検討してください。
コネクテッド シートのトラブルシューティング
Google スプレッドシートから Looker に接続しようとすると、問題が発生することがあります。このセクションでは、こうした問題とその修正方法について説明します。
エラー: Looker インスタンスへの接続中にエラーが発生しました。もう一度お試しください。問題が解決しない場合は、フィードバックをお送りください。
このエラーは、次に挙げる複数の原因が考えられます。
- Looker インスタンス名が正しく入力されていない。この場合は、Looker インスタンス名を確認して、もう一度接続してみてください。
- スプレッドシートが Looker API に接続できない。これは、Looker インスタンスがデフォルトの API ホスト URL を使用していない場合に発生することがあります。これを修正するには、[API 管理パネル] の [API ホスト URL] フィールドを空白のままにします。
エラー: Looker インスタンスがこの機能を使用するように構成されていません。Looker 管理者に連絡して、この機能を使用できるようにしてください。
このエラーは、次に挙げる複数の原因が考えられます。
- 新しく作成された Looker インスタンスに接続しようとしています。新しい Looker インスタンスがコネクテッド シートで利用可能になるまで、最長 24 時間かかることがあります。
- Looker でホストされていない Looker インスタンスに接続しようとしている。Looker でホストされている別の Looker インスタンスに接続してください。
Looker インスタンスに接続後、モデルが表示されない
これは、インスタンス上のモデルを表示するために必要な権限がないことを示します。
閲覧者のロールを持つ Looker ユーザーには、Looker で Explore UI を使用するための十分な権限がないのと同じように、スプレッドシート内で接続を作成するのに十分な権限がありません。ユーザーが Looker 向けコネクテッド シートを使用する場合は、explore
権限が必要です。管理者、デベロッパー、ユーザーのロールには、explore
権限が含まれています。Looker 管理者はユーザーに explore
権限を付与でき、それによりユーザーはインスタンスでモデルを表示できるようになります。
エラー: リンクされた Looker アカウントのメールアドレスが、Google アカウントのメールアドレスと異なります。
これは、Looker アカウントのメールアドレスが、Google アカウントで使用されているメールアドレスと一致しないことを示しています。Looker アカウントと一致するメールアドレスの Google アカウントにログインしていることを確認します。Looker の管理者が、ユーザーの現在の Google メールアドレスを使用する新しい Looker ユーザー アカウントを作成することもできます。
エラー: 不正なリクエスト: 有効なクライアントが見つかりません。
このエラーは、コネクテッド シート コネクタが有効になっていないことを示します。Looker 管理者は、Looker の [管理] メニューの [プラットフォーム] セクションの [BI コネクタ] パネルで、[すべての Looker BI コネクタ] または [コネクテッド シート] トグルを有効にする必要があります。
エラー: 403 Forbidden(アクセス拒否)
Looker インスタンスに IP 許可リストが構成されている場合、許可リストによってスプレッドシートが Looker API に接続できないことがあります。許可リストが原因かどうかを確認するには、Looker インスタンスの URL に移動して、[許可リストにない IP アドレス] エラーが表示されるかどうかを確認します。