autogenerate_primary_keys

用量

  autogenerate_primary_keys: yes
階層
autogenerate_primary_keys

- 或 -

autogenerate_primary_keys
預設值

特別規則

定義

啟用 autogenerate_primary_keys 參數後,如果 LookML 中未明確定義檢視區塊的索引鍵,Looker 會為檢視區塊產生暫時的專屬索引鍵。系統會自動產生主鍵,正確計算對稱匯總一對多計數,完全不需變更基礎資料庫表格。系統會在查詢執行階段產生主鍵,且不會在查詢之間保留主鍵。

兩種檢視畫面和「探索」都支援 autogenerate_primary_keys 參數:

  • 如果是檢視區塊,如果您使用 autogenerate_primary_keys: yes 定義檢視區塊,Looker 會為檢視區塊的查詢產生主鍵,避免資料列重複。如果您將 autogenerate_primary_keys: yes 新增至已定義為主鍵的檢視區塊,Looker IDE 會顯示 LookML 驗證警告。
  • 如果是探索,如果您使用 autogenerate_primary_keys: yes 定義探索,Looker 會為每個探索的檢視區塊產生主鍵,探索查詢需要主鍵才能避免重複資料列:

    • Looker 只會為「探索」中沒有以 primary_key: yes 定義欄位的檢視區塊產生主鍵。如果檢視區塊有以 primary_key: yes 定義的欄位,Looker 會使用檢視區塊的主鍵。
    • 只有透過探索查詢檢視區塊時,Looker 才會為該檢視區塊產生主鍵。如果透過未以 autogenerate_primary_keys: yes 定義的其他探索查詢相同檢視區塊,且檢視區塊本身未以 autogenerate_primary_keys: yes 定義,Looker 就不會為該檢視區塊產生主鍵。

範例

以下是彙整order_items檢視區塊的orders探索。「探索」定義為 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「探索」查詢需要對稱彙整或計算,且檢視表中的資料列可能會重複,Looker 會自動為ordersorder_items檢視表產生不重複的鍵。

注意事項

使用 autogenerate_primary_keys: yes 時,請注意下列事項:

  • 啟用 autogenerate_primary_keys 可能會改變現有查詢的行為。如果缺少主鍵,Looker 之前會從查詢中捨棄的指標,現在會納入結果中,這可能會對部分報表造成重大變更。
  • 由於需要額外運算,自動產生主鍵可能會增加查詢時間。
  • 當 Looker 為查詢產生主鍵時,該主鍵是暫時的執行階段主鍵,無法在「探索」中選取或以視覺化方式呈現。

支援 autogenerate_primary_keys 方言

能否使用 autogenerate_primary_keys 取決於 Looker 連線使用的資料庫方言。在最新版 Looker 中,下列方言支援 autogenerate_primary_keys

  • Google BigQuery 標準 SQL
  • Amazon Redshift
  • Amazon Redshift 2.1 以上版本
  • Amazon Redshift Serverless 2.1 以上版本
  • Google Cloud PostgreSQL
  • Greenplum
  • Microsoft Azure PostgreSQL
  • MySQL 8.0.12 以上版本
  • PostgreSQL 9.5 之前的版本