Looker では、時間ベースのデータを異なるタイムゾーンに変換して、より理解しやすくすることができます。ユーザーは、ローカル タイムゾーンに変換された時間ベースのデータでクエリ結果を確認し、フィルタを作成できます。たとえば、ニューヨークのユーザーがカリフォルニア州で作成されたデータを閲覧している場合、クエリのフィルタリングや解釈を行うために手作業で 3 時間差し引く必要はありません。
Look、Explore、ダッシュボードのクエリ中に SQL を生成する際に、Looker が時間ベースのデータを変換します。基礎となるデータは影響を受けません。クエリ結果は Looker のタイムゾーン設定を使用して変換されます。これは、SQL Runner を使用して実行されるクエリは、時間ベースのデータは変換しないということでもあります。
Looker 内のいくつかの設定では、時間ベースのデータを変換する方法を指定します。
- システム タイムゾーン
- データベースのタイムゾーン
- ユーザー固有のタイムゾーン
- アプリケーションのタイムゾーン
- クエリのタイムゾーン
convert_tzLookML パラメータsqlLookML パラメータ
システム タイムゾーン
システム タイムゾーンは、Looker を実行するサーバーが構成されているタイムゾーンです。システム アクティビティ Explore で利用可能な情報を格納する Looker の内部データベースは、システム タイムゾーンで時間ベースのデータを格納します。
システムのタイムゾーンは Looker アプリケーションからは構成できません。Looker がホストするインスタンスの場合、システム タイムゾーンは常に UTC に設定されます。セルフホスト型インスタンスは、別のシステム タイムゾーンに存在する可能性があります。システム タイムゾーンの変更は簡単ではなく、おすすめしません。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 | はい |
| 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 | ○ |