Como usar as configurações de fuso horário

O Looker pode facilitar a compreensão de dados baseados em tempo, convertendo-os em diferentes fusos horários. Os usuários podem conferir os resultados da consulta e criar filtros com dados baseados em tempo convertidos para os fusos horários locais. Por exemplo, um usuário em Nova York que visualiza dados criados na Califórnia não precisa subtrair manualmente três horas para filtrar ou interpretar as consultas.

O Looker converte dados baseados em tempo quando gera SQL durante uma consulta para um Look, uma análise ou um painel. Os dados subjacentes não são afetados. Em vez disso, os resultados da consulta são convertidos usando as configurações de fuso horário do Looker. Isso também significa que as consultas executadas usando o SQL Runner não convertem dados baseados em tempo.

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

Fuso horário do sistema

O fuso horário do sistema é aquele para o qual o servidor que executa o Looker está configurado. O banco de dados interno do Looker, que armazena as informações disponíveis nas análises de atividade do sistema, armazena dados baseados em tempo no fuso horário do sistema.

O fuso horário do sistema não pode ser configurado pelo aplicativo Looker. Para instâncias hospedadas pelo Looker, o fuso horário do sistema é sempre definido como UTC. As instâncias hospedadas pelo cliente podem estar em um fuso horário do sistema diferente. A alteração do fuso horário do sistema não é trivial e não é recomendada.

Se você precisar ajustar os carimbos de data/hora em uma análise de atividade do sistema, use cálculos de tabela para criar colunas ajustadas pelo tempo. Por exemplo, para converter de UTC para EST, crie uma coluna com o cálculo de tabela add_hours(-5, ${time}).

Como os cálculos de tabela são realizados após o retorno dos resultados da consulta, eles não podem ser usados para agrupar ou dinamizar dados por componentes de tempo específicos (como hora do dia ou dia da semana). Para ajustar os carimbos de data/hora de atividade do sistema para visualizações que exigem dinamização ou agrupamento por componentes de tempo, use dimensões personalizadas em vez disso. As dimensões personalizadas são processadas antes da visualização, o que permite o agrupamento adequado. Por exemplo, para ajustar os dados de UTC para GMT-3, primeiro crie uma dimensão personalizada para o horário ajustado usando a expressão do Looker add_hours(-3, ${user_facts.last_ui_login_hour}). Em seguida, crie dimensões personalizadas subsequentes para extrair o dia da semana ou a hora necessária com base nesse campo de horário ajustado.

Fuso horário do banco de dados

Ao adicionar uma conexão a um banco de dados, defina o valor do fuso horário do banco de dados na página Configurações de conexão.

Essa configuração representa o fuso horário em que o banco de dados está, que normalmente é o Tempo Universal Coordenado (UTC). Definir esse valor para algo diferente do fuso horário do banco de dados pode gerar resultados inesperados.

Fuso horário específico do usuário

A configuração mais importante para a conversão de dados baseados em tempo é a opção Fuso horário específico do usuário, que está na página Configurações gerais na seção Administrador do Looker.

É possível ativar ou desativar os fusos horários específicos do usuário:

  • Quando ativada, cada usuário do Looker é atribuído a um fuso horário, e esse fuso horário especifica a aparência dos resultados da consulta.
  • Quando desativados, os usuários não têm fusos horários individuais atribuídos às contas. Em vez disso, todas as consultas são executadas usando o valor do fuso horário de consultas.

Com os fusos horários específicos do usuário ativados, um usuário pode definir o fuso horário na página Conta ou os administradores do Looker podem atribuir fusos horários aos usuários na página Usuários. Se um fuso horário não estiver definido para um usuário, a conta será definida como a configuração Fuso horário do aplicativo padrão do Looker.

Sempre que um usuário cria uma consulta, ela é criada no fuso horário do usuário. Como resultado, quando uma consulta retorna dados baseados em tempo, o Looker converte os dados do fuso horário do banco de dados para o fuso horário do usuário. Quando um usuário usa valores de filtro relacionados ao tempo em uma consulta, o Looker converte os valores do filtro para o fuso horário do banco de dados.

Além disso, quando você ativa essa opção, o Looker mostra um menu suspenso Fuso horário nas análises e nos Looks.

As opções nesse menu suspenso são:

  • Fuso horário de cada bloco (somente painéis): todas as consultas são executadas no fuso horário em que foram salvas.
  • Fuso horário do leitor: todas as consultas são executadas na configuração de fuso horário atual do usuário.
  • Uma lista de todos os fusos horários individuais, que os usuários podem escolher manualmente, se quiserem.

Todas as consultas são definidas como o fuso horário em que foram criadas. Em outras palavras, se Alice criar uma consulta com o fuso horário "America/Los Angeles" e enviá-la para Bob, Bob verá a consulta com o fuso horário "America/Los Angeles", mesmo que o fuso horário de Bob esteja definido como "America/New York". Da mesma forma, a detalização sempre é definida como o fuso horário em que a consulta foi criada.

Ao visualizar uma consulta, os usuários podem usar o menu suspenso para substituir o fuso horário, escolhendo o fuso horário do leitor ou qualquer outro fuso horário para essa consulta ou o conjunto de consultas do painel.

O que considerar com os fusos horários específicos do usuário

Quando você ativa os fusos horários específicos do usuário, os usuários em diferentes fusos horários podem ver os dados de maneira diferente.

Por exemplo, as horas exatas que compõem o período last month variam entre os fusos horários. Portanto, os usuários podem ver valores de dados diferentes se estiverem em fusos horários diferentes, mas ambos estiverem filtrando em last month.

Fuso horário do aplicativo

A configuração de fuso horário do aplicativo pode ser configurada na página Configurações gerais na seção Administrador do Looker.

O fuso horário do aplicativo é o fuso horário padrão para entregas de conteúdo. O fuso horário usado para entregas de conteúdo não afeta os dados baseados em tempo retornados por uma consulta. Ele afeta apenas o horário em que uma entrega de dados é enviada.

Se você ativar a opção Fuso horário específico do usuário, o fuso horário do aplicativo será o fuso horário padrão para usuários que não têm um valor de fuso horário definido para as contas.

Fuso horário de consultas

A opção Fuso horário de consultas só será mostrada se você tiver desativado os fusos horários específicos do usuário. Nesse caso, defina o valor do fuso horário de consultas ao adicionar uma conexão a um banco de dados na página Configurações de conexão.

Se você desativar os fusos horários específicos do usuário, todas as consultas de dados baseados em tempo usarão o fuso horário de consultas e o Looker converterá todos os dados baseados em tempo do fuso horário do banco de dados para o fuso horário de consultas.

Parâmetro convert_tz do LookML

O Looker faz a conversão de fuso horário por padrão. Para desativar a conversão de fuso horário para um campo individual, use o parâmetro convert_tz do LookML. 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 sql do LookML

Também é possível definir manualmente a conversão de fuso horário usando as funções do dialeto do banco de dados no parâmetro sql em uma dimensão do LookML. Por exemplo, para definir manualmente a conversão de fuso horário no MySQL, use o seguinte LookML:

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

Observações sobre o dialeto do MySQL

O MySQL exige uma tabela de fuso horário para que a função de conversão de fuso horário funcione. Isso pode ser executado por um administrador. Saiba mais na documentação do MySQL.

Observações sobre o dialeto do Postgres

O Looker usa a configuração do driver para selecionar o fuso horário de destino. Isso pode afetar a forma como as consultas são processadas no SQL Runner em comparação com o pgAdmin, porque o Looker usará a data e hora atuais no fuso horário selecionado.

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

Para que o Looker converta fusos horários no seu projeto do Looker, o dialeto do banco de dados precisa oferecer suporte à conversão de fuso horário. A tabela a seguir mostra quais dialetos oferecem suporte à conversão de fuso horário na versão mais recente do Looker:

Dialeto Compatível?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13.x - 0.17.x
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 AlloyDB for PostgreSQL
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
MongoSQL
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