データベース内のライブ スプレッドシート

BigQuery チームは、Google スプレッドシートをデータベース内のテーブルのように扱う機能を開発しました。つまり、10 億行の BigQuery テーブルを、単一のクエリでスプレッドシートに入力した 100 行のマッピング テーブルと結合できます。

この機能では、データモデルの構成、アドホック データ用のデータ パイプラインの作成、最新の数値と最新の目標および予測との比較が可能です。

たとえば、Google フォームを使用して収集した Looker のユーザー名をモデル化したいとします。

Looker で情報を収集してモデル化するには、次の手順を行います。

  1. Google フォームを使用して、データを Google スプレッドシートに収集します。送信するごとにシートに行が追加されます。
  2. Looker への接続に使用するサービス アカウントとスプレッドシートを共有するか、リンクを使用してユーザーにアクセス権を付与します(表示のみ)。
  3. プロジェクトで Drive API と Sheets API が有効になっていることを確認します。
  4. スプレッドシートからコンテンツを取得する BigQuery インターフェースからテーブルを作成します。
  5. 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 スプレッドシートに入力したすべてのユーザー名に関する指標や、個々のユーザーに関するその他の情報を表示できます。