使用時區設定

Looker 可將時間資料轉換為不同時區,方便您解讀。使用者可以查看查詢結果,並使用轉換為當地時區的時間資料建立篩選器。舉例來說,如果紐約的使用者查看加州建立的資料,就不必手動減去三小時,即可篩選或解讀查詢。

在查詢 Look、探索或資訊主頁時,Looker 會在產生 SQL 時轉換時間資料。基礎資料不會受到影響,而是查詢結果會使用 Looker 的時區設定進行轉換。這也表示使用 SQL Runner 執行的查詢不會轉換時間資料。

Looker 中有幾項設定可指定如何轉換時間資料:

系統時區

系統時區是指執行 Looker 的伺服器所設定的時區。Looker 的內部資料庫會儲存「系統活動」Explore 中提供的資訊,並以系統時區儲存時間資料。

您無法透過 Looker 應用程式設定系統時區。如果是 Looker 代管的執行個體,系統時區一律設為世界標準時間。客戶代管的執行個體可能位於不同的系統時區。變更系統時區並非易事,因此不建議這麼做。如要在「系統活動」探索中調整時間戳記,請使用表格計算建立時間調整欄。舉例來說,如要將 UTC 轉換為 EST,可以建立含有資料表計算 add_hours(-5, ${time}) 的資料欄。

資料庫時區

將連線新增至資料庫時,請在「連線設定頁面設定「資料庫時區」的值。

這項設定代表資料庫所在的時區,通常是世界標準時間 (UTC)。如果將這個值設為資料庫時區以外的任何時區,可能會導致非預期的結果。

使用者專屬時區

以時間為準的資料轉換最重要的一項設定是「使用者專屬時區」選項,位於 Looker「管理」部分的「一般設定」頁面。

您可以啟用或停用「使用者專屬時區」

  • 啟用後,系統會為每位 Looker 使用者指派時區,並根據該時區顯示查詢結果。
  • 如果停用這項設定,系統就不會為使用者的帳戶指派個別時區。而是使用「查詢時區」值執行所有查詢。

啟用「使用者專屬時區」後,使用者可以在「帳戶」頁面設定時區,Looker 管理員則可以在「使用者」頁面為使用者指派時區。如果未設定使用者的時區,帳戶會預設為 Looker 應用程式時區設定。

使用者建立查詢時,系統會依據使用者的時區建立查詢。因此,當查詢傳回以時間為準的資料時,Looker 會將資料從「資料庫時區」轉換為使用者的時區。使用者在查詢中採用與時間相關的篩選值時,Looker 會將篩選值轉換為資料庫時區

此外,啟用這個選項後,Looker 會在「探索」和「資料檢視」中顯示「時區」下拉式選單。

這個下拉式選單的選項包括:

  • 每個圖塊的時區 (僅限資訊主頁):所有查詢都會在儲存時的時區中執行。
  • 檢視者時區:所有查詢都會在使用者目前的時區設定中執行。
  • 列出所有時區,使用者可手動選擇。

所有查詢預設都會使用建立查詢時的時區。換句話說,如果 Alice 建立查詢時使用的時區是「美國/洛杉磯」,並將查詢傳送給 Bob,即使 Bob 的時區設為「美國/紐約」,Bob 看到的查詢時區仍是「美國/洛杉磯」。同樣地,系統一律會預設使用建立查詢時的時區進行向下切入。

查看查詢時,使用者可以透過下拉式選單覆寫時區,為該查詢或該儀表板的一組查詢選取「檢視者時區」或任何其他時區。

使用者專屬時區的注意事項

啟用「使用者專屬時區」後,不同時區的使用者可能會看到不同的資料。

舉例來說,不同時區的確切時數可能不同,因此如果使用者位於不同時區,但都篩選 last month,可能會看到不同的資料值。last month

應用程式時區

您可以在 Looker 的「管理」部分,透過「一般設定」頁面設定「應用程式時區」

「應用程式時區」內容交付的預設時區。內容傳送時使用的時區不會影響查詢傳回的時間資料,只會影響資料傳送時間。

如果啟用「使用者專屬時區」選項,系統會將「應用程式時區」設為預設時區,供帳戶未設定時區值的使用者使用。

查詢時區

只有在停用「使用者專屬時區」時,系統才會顯示「查詢時區」選項。在這種情況下,您可以在「連線設定頁面將連線新增至資料庫時,設定「查詢時區」值。

如果停用「使用者專屬時區」,所有以時間為準的資料查詢都會使用「查詢時區」,且 Looker 會將所有以時間為準的資料從「資料庫時區」轉換為「查詢時區」

convert_tz LookML 參數

Looker 預設會轉換時區。如要停用個別欄位的時區轉換功能,可以使用 convert_tz LookML 參數。例如:

dimension_group: created {
  type: time
  timeframes: [time, date]
  convert_tz: no
}

詳情請參閱 convert_tz 參數說明文件頁面。

sql LookML 參數

您也可以在 LookML 維度的 sql 參數中,使用資料庫方言的函式手動定義時區轉換。舉例來說,如要在 MySQL 中手動定義時區轉換,可以使用下列 LookML:

dimension_group: created {
 type: time
 timeframes: [time, date]
 sql: CONVERT_TZ(${TABLE}.created_at,'UTC','PST') ;;
}

MySQL 方言注意事項

MySQL 必須先有時區表,時區轉換函式才能運作。管理員可以執行這項作業。詳情請參閱 MySQL 說明文件

Postgres 方言注意事項

Looker 會使用驅動程式設定選取目標時區。與 pgAdmin 相比,這可能會影響 SQL Runner 處理查詢的方式,因為 Looker 會使用所選時區的目前日期時間。

支援時區轉換的資料庫方言

如要讓 Looker 在 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
Firebolt
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