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 會為每個探索的檢視區塊產生主鍵,這些主鍵是探索查詢的必要條件,可避免資料列重複:

    • 如果「探索」中的檢視區塊沒有以 primary_key: yes 定義的欄位,Looker 只會為這些檢視區塊產生主鍵。如果檢視區塊有以 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 之前的版本