用量
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 就不會為該檢視區塊產生主鍵。
- 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 會自動為orders或order_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 之前的版本