Usar as definições de fuso horário

O Looker pode facilitar a compreensão dos dados baseados no tempo convertendo-os em diferentes fusos horários. Os utilizadores podem ver os resultados das consultas e criar filtros com dados baseados na hora que são convertidos nos respetivos fusos horários locais. Por exemplo, um utilizador em Nova Iorque que veja dados criados na Califórnia não tem de subtrair manualmente três horas para filtrar ou interpretar as respetivas consultas.

O Looker converte dados baseados no tempo quando gera SQL durante uma consulta para um Look, uma exploração ou um painel de controlo. Os dados subjacentes não são afetados. Em vez disso, os resultados da consulta são convertidos através das definições de fuso horário do Looker. Isto também significa que as consultas executadas com o SQL Runner não convertem dados baseados no tempo.

Várias definições no Looker especificam como converter dados baseados no tempo:

Fuso horário do sistema

O fuso horário do sistema é o fuso horário para o qual o servidor que executa o Looker está configurado. A base de dados interna do Looker, que armazena as informações disponíveis nas análises detalhadas de Atividade do sistema, armazena dados baseados no tempo no fuso horário do sistema.

O fuso horário do sistema não é configurável através da aplicação Looker. Para instâncias alojadas no Looker, o fuso horário do sistema está sempre definido como UTC. As instâncias alojadas pelo cliente podem estar num fuso horário do sistema diferente. Alterar o fuso horário do sistema não é trivial e não é recomendado. Se precisar de ajustar as datas/horas num Explore de atividade do sistema, use cálculos de tabelas para criar colunas com ajuste de tempo. Por exemplo, para converter de UTC para EST, pode criar uma coluna com o cálculo de tabela add_hours(-5, ${time}).

Fuso horário da base de dados

Quando adiciona uma ligação a uma base de dados, define o valor do Fuso horário da base de dados na página Definições de ligação.

Esta definição representa o fuso horário em que a sua base de dados se encontra, que é normalmente o Tempo Universal Coordenado (UTC). Se definir este valor para algo diferente do fuso horário em que a sua base de dados se encontra, pode ter resultados inesperados.

Fusos horários específicos do utilizador

A definição mais significativa para a conversão de dados baseados na hora é a opção Fusos horários específicos do utilizador, que se encontra na página Definições gerais na secção Administração do Looker.

Pode ativar ou desativar os fusos horários específicos do utilizador:

  • Quando ativada, cada utilizador do Looker é atribuído a um fuso horário, e esse fuso horário especifica o aspeto dos respetivos resultados da consulta.
  • Quando esta opção está desativada, os utilizadores não têm fusos horários individuais atribuídos às respetivas contas. Em vez disso, todas as consultas são executadas com o valor Fuso horário da consulta.

Com a opção Fusos horários específicos do utilizador ativada, um utilizador pode definir o respetivo fuso horário na página Conta, ou os administradores do Looker podem atribuir fusos horários aos utilizadores na página Utilizadores. Se não for definido um fuso horário para um utilizador, a respetiva conta usa a predefinição da definição Fuso horário da aplicação do Looker.

Sempre que um utilizador cria uma consulta, esta é criada no fuso horário do utilizador. Como resultado, quando uma consulta devolve dados baseados no tempo, o Looker converte os dados do fuso horário da base de dados para o fuso horário do utilizador. Quando um utilizador usa valores de filtro relacionados com o tempo numa consulta, o Looker converte os valores de filtro no fuso horário da base de dados.

Além disso, quando ativa esta opção, o Looker apresenta um menu pendente Fuso horário em Explores e Looks.

As opções neste menu pendente são:

  • Fuso horário de cada mosaico (apenas em painéis de controlo): todas as consultas são executadas no fuso horário com o qual foram guardadas.
  • Fuso horário do visitante: todas as consultas são executadas na definição de fuso horário atual do utilizador.
  • Uma lista de todos os fusos horários individuais, que os utilizadores podem escolher manualmente, se quiserem.

Todas as consultas têm como predefinição o fuso horário com o qual foram criadas. Por outras palavras, se a Alice criar uma consulta com o fuso horário "America/Los Angeles" e a enviar ao Rui, o Rui vê a consulta com o fuso horário "America/Los Angeles", mesmo que o fuso horário do Rui esteja definido como "America/New York". Da mesma forma, a detalização tem sempre como predefinição o fuso horário com o qual a consulta foi criada.

Sempre que visualizam uma consulta, os utilizadores podem usar o menu pendente para substituir o fuso horário, escolhendo o seu fuso horário do visualizador ou qualquer outro fuso horário para essa consulta ou o conjunto de consultas do painel de controlo.

Aspetos a considerar com os fusos horários específicos do utilizador

Quando ativa os Fusos horários específicos do utilizador, os utilizadores em fusos horários diferentes podem ver os dados de forma diferente.

Por exemplo, as horas exatas que compõem o período last month diferem entre fusos horários, pelo que os utilizadores podem ver valores de dados diferentes se estiverem em fusos horários diferentes, mas ambos estiverem a filtrar por last month.

Fuso horário da aplicação

A definição Fuso horário da aplicação pode ser configurada na página Definições gerais na secção Administração do Looker.

O fuso horário da aplicação é o fuso horário predefinido para as entregas de conteúdo. O fuso horário usado para os envios de conteúdo não afeta os dados baseados na hora devolvidos por uma consulta; afeta apenas a hora em que um envio de dados é enviado.

Se ativar a opção Fusos horários específicos do utilizador, o fuso horário da aplicação é o fuso horário predefinido para os utilizadores que não têm um valor de fuso horário definido para as respetivas contas.

Fuso horário da consulta

A opção Fuso horário da consulta só é apresentada se tiver desativado os fusos horários específicos do utilizador. Nesse caso, define o valor do fuso horário de consulta quando adiciona uma ligação a uma base de dados na página Definições de ligação.

Se desativar os fusos horários específicos do utilizador, todas as consultas de dados baseados na hora usam o fuso horário da consulta, e o Looker converte todos os dados baseados na hora do fuso horário da base de dados para o fuso horário da consulta.

Parâmetro do LookML convert_tz

O Looker faz a conversão do fuso horário por predefinição. Para desativar a conversão do fuso horário para um campo individual, pode usar o convert_tzparâmetro LookML. Por exemplo:

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

Para mais informações, consulte a página de documentação do parâmetro convert_tz.

Parâmetro do LookML sql

Também pode definir manualmente a conversão do fuso horário usando as funções do dialeto da base de dados no parâmetro sql numa dimensão do LookML. Por exemplo, para definir manualmente a conversão do fuso horário no MySQL, pode usar o seguinte LookML:

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

Notas sobre o dialeto MySQL

O MySQL requer uma tabela de fuso horário antes de a respetiva função de conversão de fuso horário funcionar. Esta ação pode ser executada por um administrador. Pode ler mais na documentação do MySQL.

Notas sobre o dialeto do Postgres

O Looker usa a definição do controlador para selecionar o fuso horário de destino. Isto pode afetar a forma como as consultas são processadas no SQL Runner em comparação com o pgAdmin, porque o Looker usa a data/hora atual no fuso horário selecionado.

Suporte de dialeto da base de dados para conversão de fuso horário

Para que o Looker converta fusos horários no seu projeto do Looker, o dialeto da base de dados tem de suportar a conversão de fusos horários. A tabela seguinte mostra os dialetos que suportam a conversão de fusos horários na versão mais recente do Looker:

Dialeto Compatível?
Actian Avalanche
Não
Amazon Athena
Sim
Amazon Aurora MySQL
Sim
Amazon Redshift
Sim
Amazon Redshift 2.1+
Sim
Amazon Redshift Serverless 2.1+
Sim
Apache Druid
Não
Apache Druid 0.13+
Sim
Apache Druid 0.18+
Sim
Apache Hive 2.3+
Sim
Apache Hive 3.1.2+
Sim
Apache Spark 3+
Sim
ClickHouse
Não
Cloudera Impala 3.1+
Sim
Cloudera Impala 3.1+ with Native Driver
Sim
Cloudera Impala with Native Driver
Sim
DataVirtuality
Não
Databricks
Sim
Denodo 7
Não
Denodo 8 & 9
Não
Dremio
Sim
Dremio 11+
Sim
Exasol
Não
Firebolt
Não
Google BigQuery Legacy SQL
Não
Google BigQuery Standard SQL
Sim
Google Cloud PostgreSQL
Sim
Google Cloud SQL
Sim
Google Spanner
Sim
Greenplum
Sim
HyperSQL
Não
IBM Netezza
Sim
MariaDB
Sim
Microsoft Azure PostgreSQL
Sim
Microsoft Azure SQL Database
Sim
Microsoft Azure Synapse Analytics
Sim
Microsoft SQL Server 2008+
Não
Microsoft SQL Server 2012+
Não
Microsoft SQL Server 2016
Sim
Microsoft SQL Server 2017+
Sim
MongoBI
Não
MySQL
Sim
MySQL 8.0.12+
Sim
Oracle
Sim
Oracle ADWC
Sim
PostgreSQL 9.5+
Sim
PostgreSQL pre-9.5
Sim
PrestoDB
Sim
PrestoSQL
Sim
SAP HANA
Não
SAP HANA 2+
Não
SingleStore
Sim
SingleStore 7+
Sim
Snowflake
Sim
Teradata
Não
Trino
Sim
Vector
Não
Vertica
Sim