用量
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 會自動為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 之前的版本