使用時區設定

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

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

Looker 中的多個設定可指定如何轉換以時間為準的資料:

系統時區

系統時區是指執行 Looker 的伺服器所使用的時區。Looker 的內部資料庫會儲存「系統活動」探索中提供的資訊,並以系統時區儲存時間相關資料。

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

資料庫時區

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

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

使用者專屬時區

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

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

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

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

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

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

這個下拉式選單中的選項如下:

  • 每個資訊方塊的時區 (僅限儀表板):所有查詢都會在儲存時指定的時區執行。
  • 觀眾時區:所有查詢都會在使用者目前的時區設定中執行。
  • 列出所有時區,使用者可視需要手動選擇。

所有查詢預設會使用建立查詢時的時區。換句話說,如果麗麗建立的查詢含有「美國/洛杉磯」時區,並傳送給小明,小明就會看到含有「美國/洛杉磯」時區的查詢,即使小明的時區設為「美國/紐約」也一樣。同樣地,鑽研作業一律會預設為使用查詢建立時所使用的時區。

查看查詢時,使用者可以使用下拉式選單覆寫時區,選擇「查看者時區」或任何其他時區,用於該查詢或儀表板的查詢。

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

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

舉例來說,last month 時間範圍的確切時間會因時區而異,因此如果使用者位於不同時區,但都以 last month 做為篩選條件,他們可能會看到不同的資料值。

應用程式時區

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

「Application Time Zone」內容提交的預設時區。用於內容提交作業的時區不會影響查詢傳回的時間資料,只會影響資料傳送的時間。

如果您啟用使用者專屬時區選項,則對於未為帳戶設定時區值的使用者,應用程式時區會是預設時區。

查詢時區

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

如果停用使用者專屬時區,所有以時間為準的資料查詢都會使用查詢時區,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 會使用驅動程式設定選取目標時區。這可能會影響 SQL Runner 與 pgAdmin 處理查詢的方式,因為 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
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