Utiliser les paramètres de fuseau horaire

Looker facilite la compréhension des données temporelles en les convertissant dans différents fuseaux horaires. Les utilisateurs peuvent afficher les résultats des requêtes et créer des filtres avec des données temporelles qui sont converties dans leur fuseau horaire local. Par exemple, un utilisateur situé à New York qui consulte des données créées en Californie n'a pas besoin de soustraire manuellement trois heures pour filtrer ou interpréter ses requêtes.

Looker convertit les données temporelles lorsqu'il génère du code SQL lors d'une requête pour un Look, une exploration ou un tableau de bord. Les données sous-jacentes ne sont pas affectées ; les résultats de la requête sont convertis à l'aide des paramètres de fuseau horaire de Looker. Cela signifie également que les requêtes exécutées à l'aide de l'exécuteur SQL ne convertissent pas les données temporelles.

Plusieurs paramètres de Looker spécifient comment convertir les données temporelles:

Fuseau horaire du système

Le fuseau horaire du système est celui pour lequel le serveur qui exécute Looker est configuré. La base de données interne de Looker, qui stocke les informations disponibles dans les explorations i__looker et Activité du système, stocke les données temporelles dans le fuseau horaire du système.

Le fuseau horaire du système n'est pas configurable via l'application Looker. Pour les instances hébergées par Looker, le fuseau horaire du système est toujours défini sur UTC. Les instances hébergées par le client peuvent se trouver dans un fuseau horaire système différent. La modification du fuseau horaire du système n'est pas simple et n'est pas recommandée. Si vous devez ajuster des codes temporels dans une i__looker ou une exploration de l'activité du système, Looker vous recommande d'utiliser des calculs de table pour créer des colonnes dont l'heure est ajustée. Par exemple, pour convertir l'heure UTC en heure EST, vous pouvez créer une colonne avec le calcul de table add_hours(-5, ${time}).

Fuseau horaire de la base de données

Lorsque vous ajoutez une connexion à une base de données, vous définissez la valeur du fuseau horaire de la base de données sur la page Paramètres de connexion.

Ce paramètre représente le fuseau horaire de votre base de données, qui est généralement Temps universel coordonné (UTC). Si vous définissez cette valeur sur une valeur autre que le fuseau horaire de votre base de données, vous risquez d'obtenir des résultats inattendus.

Fuseaux horaires spécifiques à l'utilisateur

Le paramètre le plus important pour la conversion de données temporelles est l'option Fuseaux horaires spécifiques à l'utilisateur, qui se trouve sur la page Paramètres généraux de la section Administration de Looker.

Vous pouvez activer ou désactiver les fuseaux horaires spécifiques à l'utilisateur:

  • Lorsque cette option est activée, un fuseau horaire est attribué à chaque utilisateur Looker. Ce fuseau horaire définit l'apparence des résultats de la requête.
  • Lorsque cette option est désactivée, aucun fuseau horaire n'est attribué aux comptes des utilisateurs. Toutes les requêtes sont exécutées à l'aide de la valeur Fuseau horaire de la requête.

Lorsque l'option Fuseau horaire spécifique à l'utilisateur est activée, un utilisateur peut définir son fuseau horaire sur la page Compte, ou les administrateurs Looker peuvent attribuer des fuseaux horaires aux utilisateurs sur la page Utilisateurs. Si aucun fuseau horaire n'est défini pour un utilisateur, son compte utilise par défaut le paramètre Looker Fuseau horaire de l'application.

Chaque fois qu'un utilisateur crée une requête, celle-ci est définie dans son fuseau horaire. Par conséquent, lorsqu'une requête renvoie des données temporelles, Looker convertit les données du fuseau horaire de la base de données dans le fuseau horaire de l'utilisateur. Lorsqu'un utilisateur se sert de valeurs de filtre temporelles dans une requête, Looker convertit les valeurs de filtre dans le fuseau horaire de la base de données.

De plus, lorsque vous activez cette option, Looker affiche un menu déroulant Time Zone (Fuseau horaire) dans Explores (Explorations) et Looks (Présentations).

Les options de ce menu déroulant sont les suivantes:

  • Fuseau horaire de chaque vignette (tableaux de bord uniquement) : toutes les requêtes sont exécutées dans le fuseau horaire dans lequel elles ont été enregistrées.
  • Fuseau horaire du lecteur: toutes les requêtes sont exécutées dans le fuseau horaire actuel de l'utilisateur.
  • Liste de tous les fuseaux horaires, que les utilisateurs peuvent choisir manuellement s'ils le souhaitent.

Par défaut, toutes les requêtes utilisent le fuseau horaire avec lequel elles ont été créées. En d'autres termes, si Alice crée une requête avec le fuseau horaire "America/Los Angeles" et l'envoie à Bob, Bob la verra la requête avec le fuseau horaire "America/Los Angeles", même si celui de Bob est défini sur "America/New York". De même, l'analyse détaillée utilise toujours par défaut le fuseau horaire avec lequel la requête a été créée.

Lors de l'affichage d'une requête, les utilisateurs peuvent modifier le fuseau horaire à l'aide de la liste déroulante, en sélectionnant leur Fuseau horaire du lecteur, un autre fuseau horaire pour cette requête ou un ensemble de requêtes du tableau de bord.

Éléments à prendre en compte concernant les fuseaux horaires spécifiques à l'utilisateur

Lorsque vous activez des fuseaux horaires spécifiques à l'utilisateur, les utilisateurs situés dans des fuseaux horaires différents peuvent voir les données différemment.

Par exemple, les horaires exacts de la période last month varient d'un fuseau horaire à l'autre. Par conséquent, les utilisateurs peuvent voir des valeurs de données différentes s'ils se trouvent dans des fuseaux horaires différents, mais si les deux filtres utilisent last month.

Fuseau horaire de l'application

Le paramètre Fuseau horaire de l'application peut être configuré sur la page Paramètres généraux de la section Administration de Looker.

Le fuseau horaire de l'application est le fuseau horaire par défaut pour la diffusion de contenu. Le fuseau horaire utilisé pour la diffusion de contenu n'a aucune incidence sur les données temporelles renvoyées par une requête. Il n'affecte que l'heure d'envoi des données.

Si vous activez l'option Fuseaux horaires spécifiques à l'utilisateur, Fuseau horaire de l'application est le fuseau horaire par défaut des utilisateurs pour lesquels aucune valeur de fuseau horaire n'est définie pour leurs comptes.

Requête Fuseau horaire

L'option Interroger le fuseau horaire ne s'affiche que si vous avez désactivé l'option Fuseaux horaires de l'utilisateur. Dans ce cas, définissez la valeur Fuseau horaire de la requête lorsque vous ajoutez une connexion à une base de données sur la page Paramètres de connexion.

Si vous désactivez l'option Fuseau horaire spécifique à l'utilisateur, toutes les requêtes de données temporelles utilisent le fuseau horaire de la requête, et Looker convertit toutes les données temporelles du fuseau horaire de la base de données en fuseau horaire de la requête.

Paramètre LookML convert_tz

Looker effectue la conversion du fuseau horaire par défaut. Pour désactiver la conversion du fuseau horaire pour un champ individuel, vous pouvez utiliser le paramètre LookML convert_tz. Exemple :

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

Pour en savoir plus, consultez la page de documentation du paramètre convert_tz.

Paramètre LookML sql

Vous pouvez également définir manuellement la conversion du fuseau horaire à l'aide des fonctions de votre dialecte de base de données dans le paramètre sql d'une dimension LookML. Par exemple, pour définir manuellement la conversion du fuseau horaire dans MySQL, vous pouvez utiliser le code LookML suivant:

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

Notes pour les dialectes MySQL

MySQL nécessite une table de fuseau horaire pour que sa fonction de conversion de fuseau horaire fonctionne. Elle peut être exécutée par un administrateur. Pour en savoir plus, consultez la documentation MySQL.

Notes de dialecte Postgres

Looker utilise le paramètre du pilote pour sélectionner le fuseau horaire cible. Cela peut affecter le traitement des requêtes dans SQL Runner par rapport à pgAdmin, car Looker utilisera la date et l'heure actuelles dans le fuseau horaire sélectionné.

Compatibilité des dialectes de base de données pour la conversion du fuseau horaire

Pour que Looker puisse convertir les fuseaux horaires de votre projet Looker, votre dialecte de base de données doit permettre la conversion des fuseaux horaires. Le tableau suivant présente les dialectes prenant en charge la conversion du fuseau horaire dans la dernière version de Looker:

Dialecte Compatible ?
Actian Avalanche
Non
Amazon Athena
Oui
Amazon Aurora MySQL
Oui
Amazon Redshift
Oui
Apache Druid
Non
Apache Druid 0.13 et versions ultérieures
Oui
Apache Druid 0.18 et versions ultérieures
Oui
Apache Hive 2.3 et versions ultérieures
Oui
Apache Hive 3.1.2+
Oui
Apache Spark 3 ou version ultérieure
Oui
ClickHouse
Non
Cloudera Impala 3.1 ou version ultérieure
Oui
Cloudera Impala 3.1 ou version ultérieure avec pilote natif
Oui
Cloudera Impala avec pilote natif
Oui
DataVirtuality
Non
Databricks
Oui
Denodo 7
Non
Denodo 8
Non
Dremio
Oui
Dremio 11 et versions ultérieures
Oui
Exasol
Non
Boulon
Non
Ancien SQL de Google BigQuery
Non
SQL standard Google BigQuery
Oui
Google Cloud PostgreSQL
Oui
Google Cloud SQL
Oui
Google Spanner
Oui
Prune
Oui
HyperSQL
Non
IBM Netezza
Oui
MariaDB
Oui
Microsoft Azure PostgreSQL
Oui
Base de données Microsoft Azure SQL
Oui
Microsoft Azure Synapse Analytics
Oui
Microsoft SQL Server 2008 ou version ultérieure
Non
Microsoft SQL Server 2012 ou version ultérieure
Non
Microsoft SQL Server 2016
Oui
Microsoft SQL Server 2017 ou version ultérieure
Oui
MongoBI
Non
MySQL
Oui
MySQL 8.0.12 et versions ultérieures
Oui
Oracle
Oui
Oracle ADWC
Oui
PostgreSQL 9.5 ou version ultérieure
Oui
PostgreSQL antérieur à la version 9.5
Oui
PrestoDB
Oui
PrestoSQL
Oui
SAP HANA 2+
Non
SingleStore
Oui
SingleStore 7+
Oui
Snowflake
Oui
Teradata
Non
Trino
Oui
Vecteur
Non
Vertica
Oui