タイムゾーンの設定の使用

Looker では、時間ベースのデータを異なるタイムゾーンに変換して、より理解しやすくすることができます。ユーザーは、ローカル タイムゾーンに変換された時間ベースのデータでクエリ結果を確認し、フィルタを作成できます。たとえば、ニューヨークのユーザーがカリフォルニア州で作成されたデータを閲覧している場合、クエリのフィルタリングや解釈を行うために手作業で 3 時間差し引く必要はありません。

Look、Explore、ダッシュボードのクエリ中に SQL を生成する際に、Looker が時間ベースのデータを変換します。基礎となるデータは影響を受けません。クエリ結果は Looker のタイムゾーン設定を使用して変換されます。これは、SQL Runner を使用して実行されるクエリは、時間ベースのデータは変換しないということでもあります。

Looker 内のいくつかの設定では、時間ベースのデータを変換する方法を指定します。

システム タイムゾーン

システム タイムゾーンは、Looker を実行するサーバーが構成されているタイムゾーンです。i__looker および System Activity Explore で利用可能な情報を格納する Looker の内部データベースは、システム タイムゾーンで時間ベースのデータを格納します。

システムのタイムゾーンは Looker アプリケーションからは構成できません。Looker がホストするインスタンスの場合、システム タイムゾーンは常に UTC に設定されます。セルフホスト型インスタンスは、別のシステム タイムゾーンに存在する可能性があります。システム タイムゾーンの変更は簡単ではなく、おすすめしません。i__looker または System Activity Explore でタイムスタンプを調整する必要がある場合は、表計算を使用して時間調整列を作成することをおすすめします。たとえば、UTC から EST に変換するには、表計算の add_hours(-5, ${time}) という列を作成します。

データベースのタイムゾーン

データベースに接続を追加するときに、[接続設定] で [データベースのタイムゾーン] の値を設定します。

この設定は、データベースが存在するタイムゾーンを表します。通常は協定世界時(UTC)です。この値を、データベースが存在しているタイムゾーン以外に設定すると、予期しない結果が生じる可能性があります。

ユーザー固有のタイムゾーン

時間ベースのデータ変換で最も重要な設定は、ユーザー固有のタイムゾーンオプションで、Looker の [全般設定] ページの [管理] セクションにあります。

[ユーザー固有のタイムゾーン] を有効または無効にすることができます。

  • 有効にすると、各 Looker ユーザーはタイムゾーンに割り当てられ、そのタイムゾーンによってクエリ結果の表示方法が指定されます。
  • 無効にすると、ユーザーのアカウントには個別のタイムゾーンが割り当てられません。代わりに、すべてのクエリが [クエリのタイムゾーン] 値を使用して実行されます。

[ユーザー固有のタイムゾーン] を有効にすると、ユーザーが [アカウント] ページでタイムゾーンを設定することも、Looker 管理者が [ユーザー] ページでユーザーにタイムゾーンを割り当てることもできます。ユーザーのタイムゾーンが設定されていない場合、ユーザーのアカウントは Looker の [アプリケーションのタイムゾーン] 設定のデフォルトになります。

ユーザーがクエリを作成すると、そのクエリはユーザーのタイムゾーンで作成されます。その結果、クエリによって時間ベースのデータが返されると、Looker はデータを [データベースのタイムゾーン] からユーザーのタイムゾーンに変換します。ユーザーがクエリで時間関連のフィルタ値を使用すると、Looker はフィルタ値を [データベースのタイムゾーン] に変換します。

さらに、このオプションを有効にすると、Looker の [Explore] と [Look] に [タイムゾーン] プルダウン メニューが表示されます。

このプルダウンには、次のオプションがあります。

  • 各タイルのタイムゾーン(ダッシュボードのみ): すべてのクエリは、それらが保存されたタイムゾーンで実行されます。
  • ビューアのタイムゾーン: クエリはすべて、ユーザーの現在のタイムゾーンの設定で実行されます。
  • 個々のタイムゾーンのリスト。ユーザーは必要に応じて手作業で選択できます。

すべてのクエリは、デフォルトでクエリが作成されたタイムゾーンになります。言い換えると、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 はドライバの設定を使用して、ターゲット タイムゾーンを選択します。Looker では選択したタイムゾーンの現在の日時が使用されるため、これは pgAdmin と比較した SQL Runner でのクエリの処理方法に影響する可能性があります。

タイムゾーン変換に対するデータベース言語のサポート

Looker で Looker プロジェクトのタイムゾーンを変換するには、データベース言語がタイムゾーンの変換をサポートしている必要があります。次の表に、Looker の最新リリースでタイムゾーンの変換がサポートされている言語を示します。

方言 サポート対象
Actian Avalanche
いいえ
Amazon Athena
はい
Amazon Aurora MySQL
はい
Amazon Redshift
はい
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+
はい
ネイティブ ドライバを使用した Cloudera Impala
はい
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 9.5 より前
はい
PrestoDB
はい
PrestoSQL
はい
SAP HANA 2+
いいえ
SingleStore
はい
SingleStore 7+
はい
Snowflake
はい
Teradata
いいえ
Trino
はい
Vector
いいえ
Vertica
はい