用量
view: my_view {
derived_table: {
publish_as_db_view: yes
...
}
}
|
階層
publish_as_db_view- 或 - publish_as_db_view |
預設值
no
接受
布林值 (yes 或 no)
特別規則
|
定義
publish_as_db_view 參數可讓您標記持續性資料表 (包括持續性衍生資料表和匯總資料表),以便在 Looker 以外查詢。如果永久資料表的 publish_as_db_view 設為 yes,Looker 會在資料庫中為永久資料表建立穩定的資料庫檢視區塊。穩定資料庫檢視畫面是在資料庫本身建立,因此可以在 Looker 外部查詢。穩定資料庫檢視區塊的概念與 LookML 檢視區塊不同,因為 LookML 檢視區塊位於 Looker 執行個體,而非資料庫本身。
在持續性資料表的 LookML 部署至正式環境後,Looker 再生器會在下一個週期發布 (建立) 穩定資料庫檢視區塊。publish_as_db_view: yes
範例
為 PDT 建立穩定的資料庫檢視區塊
建立 e_flights_pdt PDT,並在資料庫中建立穩定的資料庫檢視區塊:
view: e_flights_pdt {
derived_table: {
publish_as_db_view: yes
datagroup_trigger: e_flights_default_datagroup
explore_source: ontime {
timezone: "America/Los_Angeles"
column: flight_num {}
column: carrier {}
column: arr_date {}
}
}
dimension: flight_num {}
dimension: carrier {}
dimension: arr_date {
type: date
}
}
將 PDT 的 LookML 部署至正式版後,e_flights_pdt 的穩定資料庫檢視畫面會在下一個 Looker 重新產生器週期發布。Looker 建構 PDT 後,您就可以在資料庫中查詢穩定的資料庫檢視區塊。
為匯總資料表建立穩定的資料庫檢視畫面
建立weekly_orders匯總資料表,並在資料庫中建立穩定的資料庫檢視畫面:
explore: orders {
aggregate_table: weekly_orders {
materialization: {
sql_trigger_value: SELECT CURDATE() ;;
publish_as_db_view: yes
}
query: {
dimensions: [orders.status, orders.created_week]
measures: [orders.count]
}
}
}
將匯總資料表的 LookML 部署至正式環境後,Looker 重新產生器會在下一個週期發布 weekly_orders 匯總資料表的穩定資料庫檢視區塊。Looker 建構匯總資料表後,您就可以在資料庫中查詢穩定的資料庫檢視畫面。
存取穩定資料庫檢視畫面
為持續性資料表發布穩定資料庫檢視畫面後,您只要取得穩定名稱,即可直接查詢。如要取得持續性資料表的穩定檢視區塊名稱,有兩種做法:
PDT 詳細資料模式
如果您是管理員或具備 see_pdts 權限的使用者,可以透過 Looker「管理」部分的「永久衍生資料表」頁面,取得永久資料表的穩定資料庫檢視名稱:
- 按一下 Looker「主選單」圖示 ,然後選取「管理」(如果「管理」選單尚未顯示)。(如果您位於 Looker 主選單的「探索」或「開發」部分,可能需要按一下返回箭頭,才能看到「管理」選單)。
- 在「管理」選單中,選取「永久衍生資料表」。
- 在「永久衍生資料表」頁面中,搜尋永久資料表的名稱。
- 按一下持續性衍生資料表的三點選單,然後選取「PDT 詳細資料」。
- 在「PDT Details」模式中,找出「Stable Name」欄位。
如要直接查詢穩定檢視表資料表,請在資料表名稱前加上暫存結構定義名稱。舉例來說,如果暫存結構定義名稱為 tmp,您可以使用類似下列的指令查詢穩定版資料庫檢視畫面:
SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt
「探索」的「SQL」分頁
如果無法存取「永久衍生資料表」管理頁面,可以透過「探索」的「SQL」分頁中包含的資訊,判斷永久資料表的穩定檢視區塊名稱。穩定版檢視區塊名稱的格式如下:
[scratch schema name].[connection registration key]_[model_name]_[view_name]
舉例來說,如果您有名為 faa 的模型中含有持續性資料表,以及名為 e_flights_pdt 的檢視區塊,您只需要暫存結構定義名稱和連線註冊金鑰。您可以在持續性資料表查詢的「資料」部分,找到「SQL」分頁。在「SQL」分頁的 CREATE TABLE 或 FROM 陳述式中,您可以找到下列資訊:
- 連線註冊金鑰為兩個字元,視資料庫方言而定,會接在持續性資料表名稱中的美元符號或第一個底線後面。
- 臨時結構定義名稱是
CREATE TABLE或FROM後方字串的開頭,位於「.」之前
在下列所有查詢範例中,連線註冊金鑰為 LB,而暫時性結構定義名稱為 tmp。
以下是 Looker 生成的 SQL 查詢範例,其中包含 CREATE TABLE 陳述式,適用於在連線註冊金鑰前使用貨幣符號的方言。檢視區塊名稱為 e_flights_pdt,產生的衍生資料表名稱為 tmp.LR$LBC5Q1576702903774_e_flights_pdt。
generate derived table e_flights_pdt
Building e_flight::e_flights_pdt in dev mode on instance b6ff28049851f1954156526c66ca9912
CREATE TABLE tmp.LR$LBC5Q1576702903774_e_flights_pdt (INDEX(flight_num)) SELECT
ontime.flight_num AS `flight_num`
ontime.carrier AS `carrier,
(TIMESTAMP(DATE (CONVERT_TZ(ontime.arr_time, 'UTC', 'America/Los_Angeles')))) AS
`arr_date``
FROM `flightstats`.`ontime` AS `ontime`
GROUP BY
1,
2,
3
-- finished e_flights_pdt => tmp.LR$LBC5Q1576702903774_e_flights_pdt
SELECT
e_flights_pdt.flight_num AS `e_flights_pdt.flight_num`,
e_flights_pdt.carrier AS `e_flights_pdt.carrier`
FROM tmp.LR$LBC5Q1576702903774_e_flights_pdt AS e_flights_pdt
GROUP BY
1,
2
ORDER BY
e_flights_pdt.flight_num
LIMIT 5
以下是 Looker 產生的 SQL 查詢範例,其中包含 FROM 陳述式,適用於在連線註冊金鑰前使用底線符號的方言。檢視區塊名稱為 e_flights_pdt,產生的衍生資料表名稱為 tmp.LR_LBFIM1580333699953_e_flights_pdt。
--use existing e flights pdt in tmp.LR_LBFIM1580333699953_e_flights_pdt
SELECT
e_flights_pdt.id AS `e_flights_pdt.id`,
DATE(e_flights_pdt.faa_event_date) AS `e_flights_pdt. faa_event_date`
FROM tmp.LR_LBFIM1580333699953_e_flights_pdt AS e_flights_pdt
GROUP BY 1,2
ORDER BY DATE(e_flights_pdt.faa_event_date) DESC
LIMIT 5
同樣地,穩定版資料庫檢視區塊的格式如下:
[scratch schema name].[connection registration key]_[model_name]_[view_name]
所有值如下:
- 「
[scratch schema name]」這個價格tmp - 「
[connection registration key]」這個價格LB - 「
[model_name]」這個價格faa - 「
[view_name]」這個價格e_flights_pdt
因此,這是持續性資料表的穩定資料庫檢視名稱:
tmp.LB_faa_e_flights_pdt
取得穩定資料庫檢視區塊名稱後,即可直接查詢。例如:
SELECT * from tmp.LB_faa_e_flights_pdt
注意事項
部分方言需要額外語法
如果連線註冊金鑰開頭為數字,部分方言會在穩定資料庫檢視名稱的第二部分加上雙引號、反引號、方括號或類似語法。舉例來說,Amazon Redshift 需要雙引號,因此如果連線註冊金鑰以數字開頭,格式會如下所示:
[scratch schema name]."[connection registration key]_[model_name]_[view_name]"
舉例來說,如果連線註冊金鑰為 84,您會在穩定資料表名稱的第二部分 (句點後方) 加上引號。因此,您對資料庫的查詢會如下所示:
SELECT * from tmp."84_faa_e_flights_pdt"
如需特定語法資訊,請參閱方言的說明文件。
資料庫連線必須具備 CREATE VIEW 權限
如要在資料庫中建立檢視區塊,Looker 用來連線至資料庫的帳戶必須具備資料庫暫時結構定義的 CREATE VIEW 權限。
將 Looker 連線至資料庫時,系統會設定資料庫使用者名稱、密碼和暫時結構定義。
您可以測試連線,確認連線是否支援穩定檢視畫面名稱。如果您的方言支援穩定檢視區塊名稱,且連線已啟用 PDT,Looker 會測試連線,確認是否允許穩定檢視區塊:
- 如果連線可穩定觀看,連線測試會傳回
Can use stable views in temp schema "docsexamples_scratch" in database "flightstats"等結果。 - 如果連線無法提供穩定的觀看體驗,連線測試會傳回
Cannot use stable views in temp schema "docsexamples" in database "flightstats"等結果,以及CREATE VIEW command denied to user 'docsexamples'等詳細資料。
穩定資料庫檢視區塊的方言支援
建立持續性資料表穩定資料庫檢視區塊的功能,取決於 Looker 連線使用的資料庫方言。在最新版 Looker 中,下列方言支援持續性資料表穩定資料庫檢視畫面:
| 方言 | 是否支援? |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |