用量
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 部署至正式環境後,Looker 重新產生器會在下一個週期發布 e_flights_pdt 的穩定資料庫檢視畫面。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 部署至正式環境後,weekly_orders 匯總表格的穩定資料庫檢視表,會在 Looker 再生器的下一個週期發布。Looker 建構匯總表格後,您就可以查詢資料庫中穩定的資料庫檢視畫面。
存取穩定的資料庫檢視表
永久性資料表的穩定資料庫檢視表發布後,只要取得穩定名稱,即可直接查詢。如要取得持續性資料表的穩定檢視區塊名稱,有兩種方法:
PDT 詳細資料模式
如果您是管理員或具備 see_pdts 權限的使用者,可以透過 Looker「管理」部分的「永久衍生資料表」頁面,取得永久資料表的穩定資料庫檢視名稱:
- 如果尚未顯示「管理」選單,請點選 Looker 主選單圖示 並選取「管理」。(如果您位於 Looker「主選單」的「探索」或「開發」部分,可能需要點選返回箭頭,才能看到「管理」選單)。
- 在「管理」選單中,選取「永久衍生資料表」。
- 在「永久衍生資料表」頁面,搜尋永久資料表的名稱。
- 按一下永久性資料表的三點圖示選單,然後選取「PDT Details」。
- 在「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.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| ClickHouse 26+ | |
| 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+ | |
| Dremio 26+ with Arrow Flight SQL | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud AlloyDB for PostgreSQL | |
| 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 | |
| MongoSQL | |
| 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 |