Looker facilite la compréhension des données temporelles en les convertissant en différents fuseaux horaires. Les utilisateurs peuvent consulter les résultats des requêtes et créer des filtres avec des données temporelles converties dans leur fuseau horaire local. Par exemple, un utilisateur résidant à Orléans qui a vu une annonce diffusée 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 SQL lors d'une requête portant sur un aperçu, 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 des données temporelles:
- Fuseau horaire du système
- Fuseau horaire de la base de données
- Fuseaux horaires spécifiques à l'utilisateur
- Fuseau horaire de l'application
- Fuseau horaire des requêtes
convert_tz
Paramètre LookMLsql
Paramètre LookML
Fuseau horaire du système
Le fuseau horaire du système est celui pour lequel le serveur exécutant Looker est configuré. La base de données interne de Looker, qui stocke les informations disponibles dans les sections 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 différent. Modifier le fuseau horaire du système n'est pas simple et n'est pas recommandé. Si vous devez ajuster les codes temporels dans un objet i__looker
ou dans une activité système, Looker recommande d'utiliser des calculs de table pour créer des colonnes ajustées en fonction de l'heure. Par exemple, pour passer de l'UTC à l'EST, vous pouvez créer une colonne avec le calcul de la 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 correspond au fuseau horaire dans lequel se trouve votre base de données, généralement le temps universel coordonné (UTC). Si vous définissez cette valeur sur un autre fuseau horaire que celui 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 significatif pour la conversion des données temporelles est l'option Fuseaux horaires spécifiques à l'utilisateur, disponible sur la page Paramètres généraux de la section Administration de Looker:
Vous pouvez activer ou désactiver des fuseaux spécifiques à l'utilisateur:
- Lorsque cette option est activée, chaque utilisateur Looker est attribué à un fuseau horaire, qui spécifie l'apparence des résultats de sa requête.
- Lorsque ce paramètre est désactivé, aucun fuseau horaire individuel n'est attribué aux comptes des utilisateurs. Toutes les requêtes sont exécutées à l'aide de la valeur Fuseau horaire des requêtes.
Lorsque les fuseaux spécifiques à l'utilisateur sont activés, un utilisateur peut définir son fuseau horaire sur sa 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 est défini par défaut sur le paramètre Fuseau horaire de l'application de Looker.
Chaque fois qu'un utilisateur crée une requête, cette requête est générée dans son fuseau horaire. Par conséquent, lorsqu'une requête renvoie des données basées sur l'heure, Looker convertit les données du fuseau horaire de la base de données en fonction du fuseau horaire de l'utilisateur. Lorsqu'un utilisateur utilise des valeurs de filtre liées au temps 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 dans les options Explorations et Looks:
Les options de cette liste déroulante sont les suivantes:
- Fuseau horaire de chaque carte (tableaux de bord uniquement) : toutes les requêtes s'exécutent dans le fuseau horaire avec lequel elles ont été enregistrées.
- Fuseau horaire du spectateur: toutes les requêtes sont exécutées avec le fuseau horaire actuel de l'utilisateur.
- Une liste de chaque fuseau horaire que les utilisateurs peuvent choisir manuellement s'ils le souhaitent.
Toutes les requêtes utilisent par défaut le fuseau horaire avec lequel elles ont été créées. En d'autres termes, si Alice crée une requête dont le fuseau horaire est "Amérique/Los Angeles" et l'envoie à Bob, il verra la requête avec le fuseau horaire "America/Los Angeles" même si le fuseau horaire de Bob est défini sur "Amérique/New York". De même, l'exploration est toujours définie par défaut sur le fuseau horaire dans lequel la requête a été créée.
Lorsqu'une requête est affichée, la liste déroulante permet de remplacer le fuseau horaire en choisissant son fuseau horaire de visionnage ou tout autre fuseau horaire pour cette requête ou l'ensemble de requêtes du tableau de bord.
Éléments à prendre en compte avec les fuseaux horaires spécifiques à l'utilisateur
Lorsque vous activez l'option Fuseaux horaires spécifiques à l'utilisateur,les données sont affichées différemment selon les fuseaux horaires, selon la façon dont les filtres sont appliqués à chaque fuseau horaire. Par exemple, la requête suivante utilise le filtre last month
et a été exécutée dans le fuseau horaire de New York:
La même requête exécutée dans le fuseau horaire de Séoul renvoie des résultats différents:
Les données sous-jacentes ne sont pas différentes. Les heures exactes qui composent la période last month
sont légèrement différentes.
Fuseau horaire de l'application
Le paramètre Fuseau horaire de l'application se trouve 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 contenus n'a aucune incidence sur les données temporelles renvoyées par une requête. Il a une incidence uniquement sur l'heure d'envoi des données.
Si vous activez l'option Fuseaux horaires spécifiques à l'utilisateur, le fuseau horaire de l'application est le fuseau horaire par défaut des utilisateurs pour lesquels aucun paramètre de fuseau horaire n'est défini pour leurs comptes.
Requête Fuseau horaire
L'option Requête de fuseau horaire n'est visible que si vous avez désactivé les fuseaux spécifiques à l'utilisateur. Dans ce cas, vous définissez la valeur Query Time Zone (Fuseau horaire de la requête) lorsque vous ajoutez une connexion à une base de données sur la page Connection Settings (Paramètres de connexion) :
Si vous désactivez les fuseaux spécifiques à l'utilisateur,toutes les requêtes de données basées sur l'heure utilisent le fuseau horaire des requêtes 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
Par défaut, Looker effectue la conversion de fuseau horaire. Pour désactiver la conversion de 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 sur le paramètre convert_tz
.
Paramètre LookML sql
Vous pouvez également définir manuellement la conversion des fuseaux horaires à 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 de fuseau horaire dans MySQL, vous pouvez utiliser le LookML suivant:
dimension_group: created {
type: time
timeframes: [time, date]
sql: CONVERT_TZ(${TABLE}.created_at,'UTC','PST') ;;
}
Notes de dialecte MySQL
MySQL requiert une table de fuseaux horaires pour que sa fonction de conversion de fuseau horaire fonctionne. Il peut être exécuté par un administrateur. Pour en savoir plus, consultez la documentation MySQL.
Notes sur le 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 l'exécuteur SQL par rapport à pgAdmin, car Looker utilise la date et l'heure actuelles dans le fuseau horaire sélectionné.
Compatibilité avec le dialecte de la base de données pour la conversion des fuseaux horaires
Pour que Looker convertit les fuseaux horaires de votre projet Looker, le dialecte de votre base de données doit permettre la conversion de fuseau horaire. Le tableau suivant indique les dialectes compatibles avec la conversion des fuseaux horaires dans la dernière version de Looker: