dimension_group

Uso

view: view_name {
  dimension_group:  field_name { ... }
}
Hierarquia
dimension_group
Aceita
Um identificador do Looker (para servir como a primeira parte do nome de cada dimensão criada pelo grupo de dimensões)

Regras especiais

Definição

O parâmetro dimension_group é usado para criar um conjunto de dimensões baseadas em tempo ou duração de uma só vez. Você define o grupo de dimensões, que cria um conjunto de dimensões individuais para diferentes intervalos ou períodos. Por exemplo, é possível especificar um grupo de dimensões de type: time com base em uma coluna de carimbo de data/hora. Assim, o grupo vai criar dimensões correspondentes para expressar os dados em tempo, data, semana, hora, trimestre e ano.

A forma e a função do grupo de dimensões variam de acordo com o valor type:

Grupos de dimensões de tipo de duração

type: duration é usado com um dimension_group para calcular um conjunto de dimensões de duração com base em intervalos.

A forma de um grupo de dimensões de type: duration é a seguinte:

dimension_group: dimension_group_name {
  type: duration
  sql_start: SQL expression ;;  # often this is a single database column
  sql_end: SQL expression ;;  # often this is a single database column
  intervals: [interval, interval, …] # see following explanation for valid intervals
}

Para grupos de dimensões de type: duration:

  • Os parâmetros sql_start e sql_end fornecem expressões SQL que definem o horário de início e de término da duração. Consulte a seção Como definir o início e o fim de uma duração nesta página para mais detalhes.

  • O parâmetro intervals especifica uma ou mais unidades de intervalo que devem ser usadas para medir a diferença de tempo. As opções possíveis estão listadas na seção Opções de intervalo desta página.

  • Os valores de duração são arredondados para baixo até o número inteiro mais próximo.

  • O parâmetro datatype é opcional. Se o grupo de dimensões não for baseado em um carimbo de data/hora, especifique um formato de época, carimbo de data/hora, data ou aaaammdd. Para grupos de dimensões de type: duration, o parâmetro datatype se aplica aos parâmetros sql_start e sql_end. Portanto, verifique se sql_start e sql_end são do tipo de dados especificado. Odatatype O parâmetro é descrito com mais detalhes emEspecificando o banco de dadosdatatype seção nesta página.

Embora não estejam listados aqui, muitos dos parâmetros no nível do campo também podem ser usados com grupos de dimensões.

Por exemplo, se você tiver colunas para enrollment_date e graduation_date, poderá criar um grupo de dimensões de duração para ver quanto tempo os alunos passaram na escola, calculado em intervalos de semana e ano:

dimension_group: enrolled {
  type: duration
  intervals: [week, year]
  sql_start: ${TABLE}.enrollment_date ;;
  sql_end: ${TABLE}.graduation_date ;;
}

Na interface de Explorar, isso geraria um grupo de dimensões chamado Duração de Matrícula, com dimensões individuais chamadas Semanas de Matrícula e Anos de Matrícula.

Opções de intervalo

O parâmetro intervals indica ao grupo de dimensões quais unidades de intervalo devem ser usadas para medir a diferença de tempo entre o tempo sql_start e o tempo sql_end. Ointervals O parâmetro é suportado apenas para grupos de dimensões detype: duration.

Se intervals não for incluído, o grupo de dimensão vai incluir todos os intervalos possíveis.

As opções para o parâmetro intervals são as seguintes:

Intervalo Descrição Exemplo de resposta
day Calcula uma diferença de tempo em dias. 9 days
hour Calcula uma diferença de tempo em horas. 171 hours
minute Calcula uma diferença de tempo em minutos. 10305 minutes
month Calcula uma diferença de tempo em meses. 3 months
quarter Calcula a diferença de tempo em trimestres do ano. 2 quarters
second Calcula uma diferença de tempo em segundos. 606770 seconds
week Calcula a diferença de tempo em semanas. 6 weeks
year Calcula uma diferença de tempo em anos. 2 years

Definir o início e o fim de uma duração

Para grupos de dimensões de type: duration, os parâmetros sql_start e sql_end fornecem as informações de início e fim usadas para calcular uma diferença de tempo. Esses campos podem aceitar qualquer expressão SQL válida que contenha dados nos formatos timestamp, datetime, date, epoch ou yyyymmdd. Os campos sql_start e sql_end podem ser qualquer um dos seguintes:

  • Uma referência a um período raw de um grupo de dimensão type: time atual
  • Uma referência a uma dimensão de type: date_raw
  • Uma expressão SQL que é um carimbo de data/hora, como uma referência a uma coluna SQL que é um carimbo de data/hora
  • Uma expressão SQL que extrai um horário do seu banco de dados usando a expressão adequada para seu dialeto
  • Uma referência de campo LookML usando o tipo de referência de campo ::datetime ou ::date

Por exemplo, suponha que você tenha uma dimensão chamada faa_event_date_raw que contém informações de data e hora:

dimension: faa_event_date_raw {
  type: date_raw
  sql: ${TABLE}.event_date ;;
}

Você pode criar um grupo de dimensões de type: duration que calcula o tempo decorrido desde a data do evento da FAA. Para isso, use a dimensão faa_event_date_raw como o horário de início do cálculo e a expressão SQL do seu dialeto para o horário atual como o horário de término. Este exemplo é para um banco de dados MySQL:

dimension_group: since_event {
  type: duration
  intervals: [hour, day]
  sql_start: ${faa_event_date_raw} ;;
  sql_end: CURRENT_TIMESTAMP();;
}

Na interface de Explorar, isso geraria um grupo de dimensões chamado Duração desde o evento, com dimensões individuais chamadas Horas desde o evento e Dias desde o evento.

Referenciando intervalos de outro campo LookML

Para referenciar um valor interval em um dimension_group de type: duration, use a sintaxe ${interval_fieldname}, usando a versão plural do valor interval. Por exemplo, no exemplo LookML a seguir, a medida average_days_since_event usa ${days_since_event} para referenciar o intervalo day no grupo de dimensões since_event:


dimension_group: since_event {
  type: duration
  intervals: [hour, day, week, month, quarter, year]
  sql_start: ${faa_event_date_raw} ;;
  sql_end: CURRENT_TIMESTAMP();;
}

measure: average_days_since_event {
  type: average
  sql: ${days_since_event} ;;
}

Como usar referências de tipo de campo do LookML com campos de duração

Para criar um campo de duração personalizado, você pode especificar um::date ou::datetime tipo de referência para as dimensões referenciadas emsql_start esql_end parâmetros de um grupo de dimensão detype: duration. A sintaxe view_name.field_name::type, descrita na página de documentação Incorporar SQL e se referir a objetos do LookML, permite criar uma versão ::date ou ::datetime de um campo sem converter as referências a essas dimensões em strings.

Por exemplo, suponha que você tenha um grupo de dimensões created de type: time com períodos de time, date, week, month e raw, definidos da seguinte maneira:


dimension_group: created {
  type: time
  timeframes: [time, date, week, month, raw]
  sql: ${TABLE}.created_at ;;
}

Usando as dimensões created_month e created_time, você pode criar um grupo de dimensões type: duration que calcula o período entre uma data do campo created_date e o primeiro dia do mês em que essa data ocorreu, medido em semanas, dias e horas:


dimension_group: since_first_of_month {
  type: duration
  intervals: [week, day, hour]
  sql_start: ${created_month::datetime} ;;
  sql_end: ${created_time::datetime} ;;
}

Na interface de Explorar, isso cria um grupo de dimensões chamado Duração desde o primeiro dia do mês, com dimensões individuais Semanas desde o primeiro dia do mês, Dias desde o primeiro dia do mês e Horas desde o primeiro dia do mês. Especificar o tipo de referência ::datetime para os campos referenciados nos parâmetros sql_start e sql_end permite que as dimensões created_month e created_time sejam tratadas como carimbos de data/hora no SQL gerado.

Por exemplo, suponha que um usuário selecione as dimensões Data de criação e Dias desde o primeiro dia do mês no seletor de campos. Se um dos valores retornados para Data de criação for 2019-03-10, o valor retornado para Dias desde o primeiro dia do mês será 9 dias.

Grupos de dimensões de tipo de tempo

type: timeé usado em conjunto com umdimension_group e otimeframes parâmetro para criar um conjunto de dimensões baseadas no tempo. Por exemplo, você pode criar uma dimensão de data, semana e mês com base em uma única coluna de registro de data e hora.

A forma de um grupo de dimensões de type: time é a seguinte:

dimension_group: dimension_group_name {
  type: time
  timeframes: [timeframe, timeframe, …] # see following explanation for valid timeframes
  sql: SQL expression ;;  # often this is a single database column
  datatype: epoch| timestamp | datetime | date | yyyymmdd # defaults to datetime
  convert_tz: yes | no   # defaults to yes
}

Para grupos de dimensões de type: time:

  • Otimeframes O parâmetro é opcional, mas raramente é omitido. Especifica um ou mais períodos de tempo que devem ser gerados pelo grupo de dimensões. Setimeframes Nem todas as opções de período de tempo incluídas serão adicionadas ao grupo de dimensões. As opções possíveis estão listadas na seção Opções de período desta página.

  • O parâmetro sql para grupos de dimensões type: time pode usar qualquer expressão SQL válida que contenha dados em um carimbo de data/hora, data/hora, data, época ou formato aaaammdd.

  • O parâmetro datatype é opcional. Se o seu grupo de dimensões não for baseado em uma data e hora, você poderá especificar um formato de época, carimbo de data/hora, data ou aaaammdd. Ela é descrita em mais detalhes na seção Especificar o banco de dados datatype nesta página.

  • O parâmetro convert_tz é opcional e permite evitar a conversão automática de fuso horário. Ela é descrita em mais detalhes na seção Conversões de fuso horário e convert_tz nesta página.

Embora não estejam listados aqui, muitos dos parâmetros no nível do campo também podem ser usados com grupos de dimensões.

Por exemplo, suponha que você tenha uma coluna chamada created_at que contenha informações de data e hora. Você quer criar uma dimensão de data, semana e mês com base nesse carimbo de data/hora. Você pode usar:

dimension_group: created {
  type: time
  timeframes: [date, week, month]
  sql: ${TABLE}.created_at ;;
}

Na interface do recurso "Explorar", isso geraria três dimensões com os nomes Data de criação, Semana de criação e Mês de criação. Observe como o nome dimension_group é combinado com os períodos para gerar os nomes das dimensões.

Opções de período de tempo

Otimeframes O parâmetro é suportado apenas para grupos de dimensões detype: time. Para grupos de dimensões de type: duration, use o parâmetro intervals.

O parâmetro timeframes informa ao grupo de dimensões quais dimensões ele deve gerar e inclui as seguintes opções:

Se você não usar o parâmetro timeframes para um grupo de dimensões de type: time ou deixar o parâmetro timeframes em branco (timeframes: []), a análise vai incluir o conjunto padrão de períodos para o grupo de dimensões:

Períodos especiais

Período Descrição Exemplo de resposta
raw O valor bruto do seu banco de dados, sem conversão de tipo ou fuso horário. raw é acessível apenas dentro do LookML e não aparecerá na página Explorar. O período de tempo raw retorna um carimbo de data/hora, diferentemente da maioria dos outros períodos de tempo que retornam uma string formatada. É utilizado principalmente para realizar operações com datas em um campo. 2014-09-03 17:15:00 +0000
yesno Uma dimensão yesno, que retorna "Sim" se a data e hora tiverem um valor, caso contrário, "Não". Ao contrário de outros períodos de tempo, quando você se refere a uma dimensão de período de tempo yesno de outro campo, não inclua o período de tempo na referência. Por exemplo, para se referir a um período de tempo yesno no dimension_group: created, use a sintaxe ${created}, não ${created_yesno}. Yes

prazos

Período Descrição Exemplo de resposta
time Data e hora do campo subjacente. Alguns dialetos SQL mostram a mesma precisão que o banco de dados, enquanto outros mostram apenas até o segundo. 2014-09-03 17:15:00
time_of_day Hora do dia 17:15
hour Data e hora truncadas para a hora mais próxima 2014-09-03 17
hour_of_day Hora inteira do dia do campo subjacente 17
hourX Divide cada dia em intervalos com o número especificado de horas. Consulte Como usar hourX.
minute Data e hora truncadas para o minuto mais próximo 2014-09-03 17:15
minuteX Divide cada hora em intervalos com o número especificado de minutos. Consulte Como usar minuteX.
second Data e hora truncadas para o segundo mais próximo 2014-09-03 17:15:00
millisecond Data e hora truncadas para o milissegundo mais próximo. Consulte a seção Suporte a dialetos para milissegundos e microssegundos nesta página para mais informações. 2014-09-03 17:15:00.000
millisecondX Divide cada segundo em intervalos com o número especificado de milissegundos (consulte a seção Suporte de dialetos para milissegundos e microssegundos nesta página para obter informações sobre suporte de dialetos). Consulte Como usar millisecondX.
microsecond Data e hora truncadas para o microssegundo mais próximo (consulte a seção Suporte de dialeto para milissegundos e microssegundos nesta página para obter informações sobre suporte de dialeto). 2014-09-03 17:15:00.000000

Períodos de tempo

Período Descrição Exemplo de resposta
date Data do campo subjacente 2017-09-03

Prazos semanais

Período Descrição Exemplo de resposta
week Data da semana que começa em uma segunda-feira da data e hora subjacente 2017-09-01
day_of_week Dia da semana sozinho Wednesday
day_of_week_index Índice do dia da semana (0 = segunda-feira, 6 = domingo) 2

Períodos mensais

Período Descrição Exemplo de resposta
month Ano e mês da data e hora 2014-09
month_num Número inteiro do mês da data e hora subjacente 9
fiscal_month_num Número inteiro do mês fiscal da data e hora subjacente 6
month_name Nome do mês September
day_of_month Dia do mês 3

Para usar os períodos fiscal_month_num, o parâmetro fiscal_month_offset precisa ser definido no modelo.

Períodos trimestrais

Período Descrição Exemplo de resposta
quarter Ano e trimestre da data e hora 2017-Q3
fiscal_quarter Ano fiscal e trimestre da data e hora 2017-Q3
quarter_of_year Trimestre do ano precedido por um "T" Q3
fiscal_quarter_of_year Trimestre fiscal do ano precedido por um "T" Q3

Para usar ofiscal_quarter efiscal_quarter_of_year prazos, ofiscal_month_offset O parâmetro deve ser definido no modelo.

Períodos anuais

Período Descrição Exemplo de resposta
year Ano inteiro da data e hora subjacente. 2017
fiscal_year Ano fiscal inteiro da data e hora FY2017
day_of_year Dia do ano 143
week_of_year Semana do ano como um número 17

Para usar o período fiscal_year, o parâmetro fiscal_month_offset precisa ser definido no modelo.

Como usar o hourX

Em hourX, o X é substituído por 2, 3, 4, 6, 8 ou 12.

Isso vai dividir cada dia em intervalos com o número especificado de horas. Por exemplo, hour6 dividirá cada dia em segmentos de 6 horas, que aparecerão da seguinte forma:

  • 2014-09-01 00:00:00
  • 2014-09-01 06:00:00
  • 2014-09-01 12:00:00
  • 2014-09-01 18:00:00

Por exemplo, uma linha com um time de 2014-09-01 08:03:17 teria um hour6 de 2014-09-01 06:00:00.

Como usar o minuteX

Em minuteX, o X é substituído por 2, 3, 4, 5, 6, 10, 12, 15, 20 ou 30.

Isso vai dividir cada hora em intervalos com o número de minutos especificado. Por exemplo, minute15 divide cada hora em segmentos de 15 minutos, que aparecem da seguinte forma:

  • 2014-09-01 01:00:00
  • 2014-09-01 01:15:00
  • 2014-09-01 01:30:00
  • 2014-09-01 01:45:00

Por exemplo, uma linha com um time de 2014-09-01 01:17:35 teria um minute15 de 2014-09-01 01:15:00.

Como usar o millisecondX

Em millisecondX, X é substituído por 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250 ou 500.

Isso dividirá cada segundo em intervalos com o número especificado de milissegundos. Por exemplo, millisecond250 divide cada segundo em segmentos de 250 milissegundos, que aparecem da seguinte forma:

  • 2014-09-01 01:00:00.000
  • 2014-09-01 01:00:00.250
  • 2014-09-01 01:00:00.500
  • 2014-09-01 01:00:00.750

Por exemplo, uma linha com um time de 2014-09-01 01:00:00.333 teria um millisecond250 de 2014-09-01 01:00:00.250.

Conversões de fuso horário e convert_tz

Em geral, os cálculos de tempo (diferenças, durações etc.) só funcionam corretamente quando você opera em valores de tempo que são convertidos para o mesmo fuso horário. Por isso, é importante ter fusos horários em mente ao escrever LookML.

O Looker tem várias configurações de fuso horário que convertem dados com base em tempo entre diferentes fusos horários. O Looker realiza a conversão de fuso horário por padrão. O parâmetro convert_tz é compatível com grupos de dimensões de type: time. Se você não quiser que o Looker faça uma conversão de fuso horário para uma dimensão ou um grupo de dimensões específico, use o parâmetro convert_tz descrito na página de documentação do parâmetro convert_tz.

Suporte a dialetos para milissegundos e microssegundos

O Looker suporta precisão de tempo em microssegundos; no entanto, alguns bancos de dados suportam precisão apenas em segundos. Se um banco de dados encontrar um período mais preciso do que ele pode oferecer suporte, ele vai arredondar para segundos.

Na versão mais recente do Looker, os seguintes dialetos são compatíveis com milissegundos:

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

Na versão mais recente do Looker, os seguintes dialetos são compatíveis com microssegundos:

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

Como especificar o banco de dados datatype

O parâmetro datatype permite especificar o tipo de dados de tempo na tabela do banco de dados que você está fornecendo ao grupo de dimensões, o que pode aumentar o desempenho da consulta.

Para grupos de dimensões de type: time, o parâmetro datatype se aplica ao parâmetro sql do grupo de dimensões.

Para grupos de dimensões de type: duration, o parâmetro datatype se aplica aos parâmetros sql_start e sql_end. Portanto, verifique se sql_start e sql_end são do tipo de dados especificado.

O parâmetro datatype aceita os seguintes valores:

  • epoch: um campo de época do SQL (ou seja, um número inteiro que representa o número de segundos desde a época do Unix).
  • date: um campo de data SQL (ou seja, um que não contém informações de hora do dia).
  • datetime: um campo de data e hora SQL.
  • timestamp: um campo de carimbo de data/hora SQL.
  • yyyymmdd: um campo SQL que contém um número inteiro que representa uma data no formato AAAAMMDD.

O valor padrão de datatype é timestamp.

Grupos de dimensões de tipo de calendário personalizado

Se você implementou calendários personalizados no seu projeto do LookML, use type: custom_calendar com o parâmetro dimension_group para criar um conjunto de dimensões com base no tempo usando uma tabela de calendário personalizada definida no banco de dados. Consulte a página de documentação Como usar calendários personalizados no Looker para informações sobre como configurar calendários personalizados no seu projeto do LookML.

A forma de um grupo de dimensões de type: custom_calendar é a seguinte:

dimension_group: dimension_group_name {
  type: custom_calendar
  custom_timeframes: [custom_timeframe, custom_timeframe, …] # see the following section for valid custom timeframes
  sql: SQL expression ;;  # often this refers to a single database column
  based_on_calendar: custom_calendar_view
}

Para grupos de dimensões de type: custom_calendar:

  • O parâmetro custom_timeframes é opcional. Ele especifica um ou mais períodos personalizados que devem ser gerados pelo grupo de dimensões. Se custom_timeframes não for especificado, o grupo de dimensões vai criar todos os períodos personalizados. Os períodos personalizados possíveis estão listados na seção custom_timeframes desta página.

  • O parâmetro sql para grupos de dimensões type: custom_calendar pode usar qualquer expressão SQL válida que contenha dados em um carimbo de data/hora, data/hora, data, época ou formato aaaammdd.

  • O parâmetro based_on_calendar especifica o nome da visualização do calendário personalizado que você modelou em LookML.

  • O parâmetro convert_tz é opcional e permite evitar a conversão automática de fuso horário. Ela é descrita em mais detalhes na seção Conversões de fuso horário e convert_tz nesta página.

  • O parâmetro datatype é opcional. Se o seu grupo de dimensões não for baseado em uma data e hora, você poderá especificar um formato de época, carimbo de data/hora, data ou aaaammdd. Ele é descrito em mais detalhes na seção Especificar o tipo de dados do banco de dados nesta página.

Embora não estejam listados aqui, muitos dos parâmetros no nível do campo também podem ser usados com grupos de dimensões.

Confira um exemplo de um grupo de dimensões de calendário personalizado em um arquivo orders.view do LookML:

view: orders

include: "/views/retail_custom_calendar.view"

dimension_group: created {
  type: custom_calendar
  sql: ${TABLE}.created_at ;;
  custom_timeframes: [custom_year, custom_quarter]
  based_on_calendar: retail_custom_calendar
}

Observe os seguintes elementos neste grupo de dimensões de calendário personalizado:

  • type: custom_calendar: o grupo de dimensões é definido como um tipo de calendário personalizado.
  • sql: ${TABLE}.created_at ;;: o grupo de dimensões usa informações de data e hora da coluna orders.created_at do banco de dados.
  • custom_timeframes: [custom_year, custom_quarter] - O grupo de dimensões será rotulado como Calendário Personalizado Criado e conterá períodos rotulados como Ano Fiscal e Trimestre Fiscal. Consulte Rótulos para grupos de dimensões de calendário personalizados para mais informações.
  • based_on_calendar: retail_custom_calendar: o grupo de dimensões vai unir os dados do calendário personalizado definidos na visualização retail_custom_calendar do projeto LookML aos dados na coluna orders.created_at desse banco de dados para fornecer resultados de consulta usando o calendário personalizado. Consulte a página de documentação Como usar calendários personalizados no Looker para informações sobre como definir um calendário personalizado.

custom_timeframes

Para grupos de dimensões definidos como type: custom_calendar, se você não quiser incluir todos os períodos de tempo personalizados possíveis no grupo de dimensões, você pode usar o parâmetro custom_timeframes para especificar quais períodos de tempo você deseja no grupo de dimensões. Os seguintes períodos personalizados são compatíveis:

Prazo Descrição Suposições (para tipos de _num)

custom_date

A data específica da visualização de calendário.

custom_day_num

O dia numérico da visualização de calendário. Assume até 371 dias

custom_period

Um período genérico no calendário (como calendários 4-4-5).

custom_period_num

O valor numérico do período personalizado. Assume 12 períodos por ano.

custom_quarter

O trimestre da visualização de calendário.

custom_quarter_num

O trimestre numérico do ano. Considera quatro trimestres por ano.

custom_season

Um período sazonal personalizado.

custom_season_num

O valor numérico da temporada personalizada. Considerando duas estações por ano.

custom_week

A semana na visualização de agenda.

custom_week_of_year

A semana numérica do ano. Considera-se um período de até 53 semanas por ano.

custom_year

O ano na visualização de calendário.

custom_year_num

O valor numérico do ano personalizado.

based_on_calendar

Para grupos de dimensões definidos como type: custom_calendar, o parâmetro based_on_calendar especifica o nome da visualização do calendário personalizado que você modelou em LookML.

Rótulos para grupos de dimensões de calendário personalizadas

O Looker gera rótulos de campos de dimensão e rótulos de grupo no seletor de campos Explorar com base em se olabel ougroup_label Os parâmetros são usados ​​notype: custom_calendar grupo de dimensões:

  • Padrão (nem label nem group_label especificados):
    • O Looker agrupa os períodos do grupo de dimensões no rótulo padrão do grupo de dimensões, que é o nome do grupo concatenado com Calendário personalizado (por exemplo, Calendário personalizado criado).
    • O Looker adiciona Fiscal ao início de cada nome de período (por exemplo, Data fiscal, Semana fiscal, Ano fiscal).
  • Somente group_label:
    • O Looker agrupa os períodos do grupo de dimensões no valor group_label especificado.
    • O Looker adiciona o nome do grupo de dimensões e Fiscal a cada nome de período (por exemplo, Data fiscal de criação, Semana fiscal de criação, Ano fiscal de criação).
  • Somente label:
    • O Looker agrupa os períodos do grupo de dimensões sob o valor label anexado por Calendário Personalizado (por exemplo, para um grupo de dimensões definido com label: "My Label", os períodos seriam agrupados sob Meu Rótulo Calendário Personalizado).
    • O Looker adiciona Fiscal ao início de cada nome de período (por exemplo, Data fiscal, Semana fiscal, Ano fiscal).
  • Ambos group_label e label são especificados:
    • O Looker agrupa os períodos do grupo de dimensões no valor group_label especificado.
    • O Looker adiciona o valor label a cada período. Por exemplo, para um grupo de dimensões definido com label: "My Label", os períodos seriam chamados de Data do meu rótulo, Semana do meu rótulo e Ano do meu rótulo.

Localizar grupos de dimensões

Você pode usar a localização do modelo para personalizar e traduzir os nomes de períodos, intervalos ou períodos personalizados gerados por um grupo de dimensões. Consulte Localizar grupos de dimensões para mais informações.

Informações importantes

Os grupos de dimensões precisam ser referenciados pelas dimensões individuais

Como um grupo de dimensões representa um grupo de dimensões, e não apenas uma, não é possível se referir a ele diretamente em LookML. Em vez disso, consulte as dimensões que ele cria.

Por exemplo, considere este grupo de dimensões:

dimension_group: created {
  type: time
  timeframes: [date, week, month]
  sql: ${TABLE}.created_at ;;
}

Para se referir a uma dessas dimensões em outro campo do LookML, use a referência ${created_date}, ${created_week} ou ${created_month}. Se você tentar usar apenas ${created}, o Looker não saberá a que período você está se referindo, e um erro vai ocorrer.

Pelo mesmo motivo, não use o parâmetro primary_key em um grupo de dimensões se você especificar mais de um timeframe.

Dica da equipe de chat: recebemos muitas perguntas sobre o erro de validação que pode ocorrer se você estiver usando primary_key em um dimension_group com mais de um timeframe. Para mais informações, confira a postagem na comunidade Períodos e grupos de dimensões no Looker .

Dados de carimbo de data/hora que incluem informações de fuso horário

Alguns dialetos de banco de dados têm opções de carimbo de data/hora que incluem informações de fuso horário. Isso permite armazenar dados de data e hora em um único campo que pode conter vários fusos horários. Uma linha de dados pode ser armazenada em UTC, outra em horário do leste. Por exemplo, consulte a documentação de carimbo de data/hora do Snowflake TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ para informações sobre as opções de carimbo de data/hora do dialeto do Snowflake.

Nesse caso, quando o Looker realiza conversões de fuso horário, podem ocorrer erros. Para evitar isso, no parâmetro sql da dimensão, converta explicitamente os dados de carimbo de data/hora para um tipo que não faça conversão de fuso horário. Por exemplo, no dialeto Snowflake, é possível usar a função TO_TIMESTAMP para converter os dados de carimbo de data/hora.

É possível criar dimensões individuais de tempo ou duração

É possível criar uma dimensão para cada período ou duração que você quer incluir, em vez de gerar todas em um único dimension_group. Em geral, é possível evitar a criação de dimensões individuais, a menos que você queira mudar a convenção de nomenclatura de período do Looker ou já tenha pré-calculado colunas de tempo no seu banco de dados. Para mais informações, consulte a página de documentação Tipos de dimensões, filtros e parâmetros.

É possível mudar o primeiro dia da semana

Por padrão, as semanas no Looker começam na segunda-feira. Para mudar isso, use o parâmetro week_start_day no nível do modelo.

Lembre-se de que week_start_day não funciona com o período week_of_year porque ele é baseado no norma ISO, que usa semanas de segunda-feira.

Filtros e campos personalizados não são compatíveis com todos os períodos de tempo.

Os períodos day_of_week, fiscal_quarter_of_year, millisecond, millisecondX, microsecond, month_name, quarter_of_year e time_of_day são indisponíveis em filtros personalizados nem campos personalizados.

Os intervalos de mês, trimestre e ano só contam períodos completos

O intervalo month em um grupo de dimensões duration só considera que um mês se passou se o dia de término for maior ou igual ao dia de início. Exemplo:

  • A diferença em meses entre 26 de setembro e 25 de outubro do mesmo ano é 0.
  • A diferença em meses entre 26 de setembro e 26 de outubro do mesmo ano é 1.

Os intervalos quarter e year seguem a mesma lógica.