BigQuery チームは、Google スプレッドシートをデータベース内のテーブルのように扱う機能を開発しました。つまり、10 億行の BigQuery テーブルを、単一のクエリでスプレッドシートに入力した 100 行のマッピング テーブルと結合できます。
この機能では、データモデルの構成、アドホック データ用のデータ パイプラインの作成、最新の数値と最新の目標および予測との比較が可能です。
例
たとえば、Google フォームを使用して収集した Looker のユーザー名をモデル化したいとします。
Looker で情報を収集してモデル化する手順は次のとおりです。
- Google フォームを使用して、データを Google スプレッドシートに収集します。送信するごとにシートに行が追加されます。
- Looker への接続に使用するサービス アカウントとスプレッドシートを共有するか、リンクを使用してユーザーにアクセス権を付与します(表示のみ)。
- プロジェクトで Drive API と Sheets API が有効になっていることを確認します。
- スプレッドシートからコンテンツを取得する BigQuery インターフェースからテーブルを作成します。
- Looker プロジェクトで、すでに収集している他のユーザーデータ(ユーザーの場所など)とスプレッドシート テーブルを結合するデータモデルを生成します。SQL を使用して、データベースから取得した名前を正規化することもできます。BigQuery にデータをキャッシュすると、スプレッドシートに高い負荷がかかるのを回避できます。
結果の LookML の例は次のようになります。
explore: names_sheet { persist_for: "60 seconds" join: names_facts { sql_on: ${names_sheet.normalized_name} = ${names_facts.normalized_name} ;; sql_where: ${names_facts.city} ;; relationship: one_to_one } view_name: names_sheet { derived_table: { persist_for: "2 minutes" sql: SELECT row_number() OVER() as id, name, UPPER(CASE WHEN REGEXP_MATCH(name, r'\,') THEN REGEXP_EXTRACT(name, r', (\w+)') ELSE REGEXP_EXTRACT(name, r'^(\w+)') END ) as normalized_name FROM namesheet.names ;; } dimension: id { type: number } dimension: name { order_by_field: id # keep the rows in the original order } dimension: normalized_name { } measure: count { type: count drill_fields: [id, name, names_facts.city] } measure: count_from_new_york_city { type: count filters: [names_facts.city: "New York City"] } measure: percentage_from_new_york_city { type: number sql: ${count_from_new_york_city}/${count} ;; value_format_name: percent_2 } measure: average_age_median { type: average sql: ${names_facts.age_median} ;; value_format: "0000" } } }
このモデルから、データを使用して Explore を作成し、Look とダッシュボードを構築して、Google フォームから収集してGoogle スプレッドシートに入力したすべてのユーザー名に関する指標や、個々のユーザーに関するその他の情報を表示できます。