autogenerate_primary_keys

用途

  autogenerate_primary_keys: yes
階層
autogenerate_primary_keys

または

autogenerate_primary_keys
デフォルト値
×

特別なルール

定義

autogenerate_primary_keys パラメータが有効になっている場合、Looker は、LookML で明示的に定義されていないビューに対して一時的な個別のキーを生成します。自動生成された主キーを使用すると、基盤となるデータベース テーブルを変更することなく、対称集計一対多のカウントを正しく計算できます。主キーはクエリの実行時に生成され、クエリ間で保持されません。

autogenerate_primary_keys パラメータは、ビューと Explore の両方でサポートされています。

  • ビューの場合、autogenerate_primary_keys: yes を使用してビューを定義すると、Looker は、行の重複を避けるために主キーが必要なビューのクエリに対して主キーを生成します。主キーとして定義されたフィールドがすでに存在するビューに autogenerate_primary_keys: yes を追加すると、Looker IDE に LookML 検証の警告が表示されます。
  • Explore の場合、autogenerate_primary_keys: yes を使用して Explore を定義すると、Looker は、行の重複を避けるために主キーが必要な Explore クエリに必要な、Explore の各ビューの主キーを生成します。

    • Looker は、primary_key: yes で定義されたフィールドがない Explore のビューに対してのみ主キーを生成します。ビューに primary_key: yes で定義されたフィールドがある場合、Looker はビューの主キーを使用します。
    • Looker は、Explore のビューがその Explore を介してクエリされている場合にのみ、Explore のビューの主キーを生成します。同じビューが autogenerate_primary_keys: yes で定義されていない別の Explore を介してクエリされ、ビュー自体が autogenerate_primary_keys: yes で定義されていない場合、Looker はビューの主キーを生成しません。

order_items ビューを結合する orders Explore の例を次に示します。Explore は autogenerate_primary_keys: yes で定義されます。

explore: orders {
  autogenerate_primary_keys: yes
  join: order_items {
    sql_on: ${orders.id} = ${order_items.order_id} ;;
    relationship: one_to_many
  }
}

orders Explore で、対称集計またはビューの行が重複する可能性がある計算を必要とするクエリの場合、Looker は orders ビューまたは order_items ビューの一意のキーを自動的に生成します。

知っておくべきこと

autogenerate_primary_keys: yes の使用について、次の点に注意してください。

  • autogenerate_primary_keys を有効にすると、既存のクエリの動作が変更される可能性があります。主キーがないために Looker がクエリから削除していた指標が、結果に含まれるようになります。これは、一部のレポートで重大な変更となる可能性があります。
  • 主キーを自動生成すると、必要な計算が増えるため、クエリ時間が長くなることがあります。
  • Looker がクエリの主キーを生成する場合、その主キーは一時的なランタイム主キーであり、Explore で選択または可視化することはできません。

autogenerate_primary_keys の言語サポート

autogenerate_primary_keys を使用できるかどうかは、Looker 接続で使用されているデータベース言語によって異なります。Looker の最新リリースでは、次の言語で autogenerate_primary_keys がサポートされています。

  • Google BigQuery Standard SQL
  • Amazon Redshift
  • Amazon Redshift 2.1 以降
  • Amazon Redshift サーバーレス 2.1 以降
  • Google Cloud PostgreSQL
  • Greenplum
  • Microsoft Azure PostgreSQL
  • MySQL 8.0.12+
  • PostgreSQL 9.5 より前