Uso
view: view_name {
dimension_group: field_name { ... }
}
|
Jerarquía
dimension_group |
Acepta
Un identificador de Looker (para que sirva como la primera parte del nombre de cada dimensión creada por el grupo de dimensiones)
Reglas especiales
|
Definición
El parámetro dimension_group se usa para crear un conjunto de dimensiones basadas en el tiempo o la duración de una sola vez. Tú defines el grupo de dimensiones, y este creará un conjunto de dimensiones individuales para diferentes intervalos o períodos. Por ejemplo, puedes especificar un grupo de dimensiones de type: time basado en una columna de marca de tiempo, y el grupo de dimensiones creará dimensiones correspondientes para expresar los datos en hora, fecha, semana, hora, trimestre y año.
La forma y la función del grupo de dimensiones son diferentes dependiendo del valor type del grupo de dimensiones:
Grupos de dimensiones de tipo de duración
type: duration se usa junto con un dimension_group para calcular un conjunto de dimensiones de duración basadas en intervalos.
La forma de un grupo de dimensión de type: duration es la siguiente:
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 los grupos de dimensiones de type: duration, haz lo siguiente:
Los parámetros
sql_startysql_endproporcionan expresiones SQL que definen la hora de inicio y la hora de finalización de la duración. Consulte la sección Definición del inicio y el final de una duración en esta página para obtener más detalles.El parámetro
intervalsespecifica una o más unidades de intervalo que se deben usar para medir la diferencia de tiempo. Las opciones posibles se enumeran en la sección Opciones de intervalo de esta página.Los valores de duración se redondean hacia abajo al número entero más cercano.
El parámetro
datatypees opcional. Si tu grupo de dimensiones no se basa en una fecha y hora, puedes especificar un formato de época, marca de tiempo, fecha o aaaammdd. Para grupos de dimensiones detype: duration, el parámetrodatatypese aplica tanto a los parámetrossql_startcomo a lossql_end, así que asegúrese de que tantosql_startcomosql_endsean del tipo de datos especificado. El parámetrodatatypese describe con más detalle en la sección Cómo especificar la base de datosdatatypede esta página.
Aunque no se enumeran aquí, muchos de los parámetros a nivel del campo también se pueden usar con grupos de dimensiones.
Por ejemplo, si tienes columnas para enrollment_date y graduation_date, puedes crear un grupo de dimensiones de duración para ver cuánto tiempo pasaron los estudiantes en la escuela, calculado en intervalos semanales y anuales:
dimension_group: enrolled {
type: duration
intervals: [week, year]
sql_start: ${TABLE}.enrollment_date ;;
sql_end: ${TABLE}.graduation_date ;;
}
En la interfaz de usuario de Explorar, esto generaría un grupo de dimensiones llamado Duración Inscrita, con dimensiones individuales llamadas Semanas Inscritas y Años Inscritos.
Opciones de intervalo
El parámetro intervals indica al grupo de dimensiones qué unidades de intervalo debe usar para medir la diferencia de tiempo entre el tiempo sql_start y el tiempo sql_end. El parámetro intervals solo se admite para los grupos de dimensiones de type: duration.
Si no se incluye intervals, el grupo de dimensiones incluirá todos los intervalos posibles.
Las opciones para el parámetro intervals son las siguientes:
| Intervalo | Descripción | Resultado de ejemplo |
|---|---|---|
day |
Calcula la diferencia horaria en días. | 9 days |
hour |
Calcula la diferencia horaria en horas. | 171 hours |
minute |
Calcula la diferencia horaria en minutos. | 10305 minutes |
month |
Calcula la diferencia horaria en meses. | 3 months |
quarter |
Calcula una diferencia de tiempo en trimestres del año. | 2 quarters |
second |
Calcula una diferencia de tiempo en segundos. | 606770 seconds |
week |
Calcula la diferencia horaria en semanas. | 6 weeks |
year |
Calcula la diferencia horaria en años. | 2 years |
Definir el inicio y el final de una duración
En el caso de los grupos de dimensiones de type: duration, los parámetros sql_start y sql_end proporcionan la información de inicio y finalización que se usa para calcular una diferencia de tiempo. Estos campos pueden tomar cualquier expresión SQL válida que contenga datos en formato de marca de tiempo, fecha y hora, fecha, época o aaaammdd. Los campos sql_start y sql_end pueden ser cualquiera de los siguientes:
- Una referencia a un intervalo de tiempo
rawde un grupo de dimensiones existente detype: time - Una referencia a una dimensión de
type: date_raw - Una expresión SQL que es una marca de tiempo, como una referencia a una columna SQL que es una marca de tiempo
- Una expresión SQL que extrae una hora de su base de datos, utilizando la expresión apropiada para su dialecto.
- Referencia de campo de LookML que usa la referencia de tipo de campo
::datetimeo::date
Por ejemplo, supongamos que tiene una dimensión llamada faa_event_date_raw que contiene información de fecha y hora:
dimension: faa_event_date_raw {
type: date_raw
sql: ${TABLE}.event_date ;;
}
Puedes crear un grupo de dimensiones de type: duration que calcule la cantidad de tiempo transcurrido desde la fecha del evento de la FAA. Para ello, puede utilizar la dimensión faa_event_date_raw como hora de inicio del cálculo y, a continuación, para la hora de finalización del cálculo, puede utilizar la expresión SQL de su dialecto para la hora actual. Este ejemplo es para una base de datos MySQL:
dimension_group: since_event {
type: duration
intervals: [hour, day]
sql_start: ${faa_event_date_raw} ;;
sql_end: CURRENT_TIMESTAMP();;
}
En la IU de Explorar, esto generaría un grupo de dimensiones llamado Duración desde el evento, con dimensiones individuales llamadas Horas desde el evento y Días desde el evento.
Cómo hacer referencia a intervalos desde otro campo de LookML
Para hacer referencia a un valor de interval en un dimension_group de type: duration, usa la sintaxis ${interval_fieldname}, con la versión plural del valor de interval. Por ejemplo, en el siguiente ejemplo de LookML, la medida average_days_since_event utiliza ${days_since_event} para hacer referencia al intervalo day en el grupo de dimensiones 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} ;;
}
Usa referencias de tipo de campo LookML con campos de duración
Para crear un campo de duración personalizado, puedes especificar un tipo de referencia ::date o ::datetime para las dimensiones a las que se hace referencia en los parámetros sql_start y sql_end de un grupo de dimensiones de type: duration. La sintaxis view_name.field_name::type, que se describe en la página de documentación Incorporación de SQL y referencia a objetos de LookML, te permite crear una versión ::date o ::datetime de un campo sin convertir las referencias a esas dimensiones en cadenas.
Por ejemplo, supongamos que tiene un grupo de dimensión created de type: time con marcos temporales de time, date, week, month y raw, definidos de la siguiente manera:
dimension_group: created {
type: time
timeframes: [time, date, week, month, raw]
sql: ${TABLE}.created_at ;;
}
Utilizando las dimensiones created_month y created_time, puede crear un grupo de dimensiones type: duration que calcule la cantidad de tiempo entre una fecha del campo created_date y el primer día del mes en que ocurrió esa fecha, medido en semanas, días y horas:
dimension_group: since_first_of_month {
type: duration
intervals: [week, day, hour]
sql_start: ${created_month::datetime} ;;
sql_end: ${created_time::datetime} ;;
}
En la interfaz de usuario de Explorar, esto crea un grupo de dimensiones llamado Duración desde el primero del mes, con dimensiones individuales Semanas desde el primero del mes, Días desde el primero del mes y Horas desde el primero del mes. Especificar el tipo de referencia ::datetime para los campos a los que se hace referencia en los parámetros sql_start y sql_end permite que las dimensiones created_month y created_time se traten como marcas de tiempo en el SQL generado.
Como ejemplo, supongamos que un usuario selecciona las dimensiones Fecha de creación y Días desde el primero del mes del selector de campos. Si uno de los valores devueltos para Fecha de creación es 2019-03-10, el valor devuelto para Días desde el primer día del mes será 9 días.
Grupos de dimensiones de tipo de período
type: time se utiliza junto con un dimension_group y el parámetro timeframes para crear un conjunto de dimensiones basadas en el tiempo. Por ejemplo, podrías crear una dimensión de fecha, semana y mes basada en una única columna de marca de tiempo.
La forma de un grupo de dimensiones de type: time es la siguiente:
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 los grupos de dimensiones de type: time, haz lo siguiente:
El parámetro
timeframeses opcional, pero rara vez se omite. Especifica uno o más períodos que debe generar el grupo de dimensiones. Si no se incluyetimeframes, se agregará cada opción de período al grupo de dimensiones. Las opciones posibles se enumeran en la sección Opciones de marco temporal de esta página.El parámetro
sqlpara los grupos de dimensionestype: timepuede tomar cualquier expresión de SQL válida que contenga datos en formato de marca de tiempo, fecha y hora, fecha, época o aaaammdd.El parámetro
datatypees opcional. Si su grupo de dimensiones no se basa en una fecha y hora, puede especificar un formato de época, marca de tiempo, fecha o aaaammdd. Se describe con más detalle en la sección Cómo especificar la base de datosdatatypede esta página.El parámetro
convert_tzes opcional y permite evitar la conversión automática de la zona horaria. Se describe con más detalle en la sección Conversiones de zona horaria yconvert_tzde esta página.
Aunque no se enumeran aquí, muchos de los parámetros a nivel del campo también se pueden usar con grupos de dimensiones.
Por ejemplo, supongamos que tienes una columna llamada created_at que contiene información de fecha y hora. Desea crear una dimensión de fecha, semana y mes basada en esta fecha y hora. Podrías usar:
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
En la interfaz de usuario de Explorar, esto generaría tres dimensiones con los nombres Fecha de creación, Semana de creación y Mes de creación. Observe cómo el nombre dimension_group se combina con los intervalos de tiempo para generar los nombres de las dimensiones.
Opciones de plazo
El parámetro timeframes solo se admite para los grupos de dimensiones de type: time. Para los grupos de dimensiones de type: duration, usa el parámetro intervals en su lugar.
El parámetro timeframes le indica al grupo de dimensiones qué dimensiones debe generar y tiene las siguientes opciones:
- Plazos especiales
- Períodos
- Períodos
- Plazos semanales
- Períodos mensuales
- Períodos trimestrales
- Periodos de tiempo anuales
- Períodos de
hourX - Períodos de
minuteX - Períodos de
millisecondX
Si no utiliza el parámetro timeframes para un grupo de dimensiones de type: time, o si deja el parámetro timeframes en blanco (timeframes: []), la exploración incluirá el conjunto predeterminado de períodos de tiempo para el grupo de dimensiones:
dateday_of_monthday_of_weekday_of_week_indexday_of_yearhourhour_of_dayminutemonthmonth_namemonth_numquarterquarter_of_yeartimetime_of_dayweekweek_of_yearyear
Plazos especiales
Períodos
| Plazo | Descripción | Resultado de ejemplo |
|---|---|---|
time |
Fecha y hora del campo subyacente (algunos dialectos SQL muestran tanta precisión como la que contiene la base de datos, mientras que otros solo muestran hasta el segundo). | 2014-09-03 17:15:00 |
time_of_day |
Hora del día | 17:15 |
hour |
Fecha y hora truncadas a la hora más cercana | 2014-09-03 17 |
hour_of_day |
Hora del día (número entero) del campo subyacente | 17 |
hourX |
Divide cada día en intervalos con la cantidad de horas especificada. | Consulta Cómo usar hourX. |
minute |
Fecha y hora truncadas al minuto más cercano | 2014-09-03 17:15 |
minuteX |
Divide cada hora en intervalos con la cantidad de minutos especificada. | Consulta Cómo usar minuteX. |
second |
Fecha y hora truncadas al segundo más cercano | 2014-09-03 17:15:00 |
millisecond |
Fecha y hora truncadas al milisegundo más cercano (consulta la sección Compatibilidad de dialectos con milisegundos y microsegundos en esta página para obtener información sobre la compatibilidad de dialectos). | 2014-09-03 17:15:00.000 |
millisecondX |
Divide cada segundo en intervalos con la cantidad especificada de milisegundos (consulta la sección Compatibilidad de dialectos con milisegundos y microsegundos en esta página para obtener información sobre la compatibilidad de dialectos). | Consulta Cómo usar millisecondX. |
microsecond |
Fecha y hora truncadas al microsegundo más cercano (consulta la sección Compatibilidad de dialectos con milisegundos y microsegundos en esta página para obtener información sobre la compatibilidad de dialectos). | 2014-09-03 17:15:00.000000 |
Períodos
| Plazo | Descripción | Resultado de ejemplo |
|---|---|---|
date |
Fecha del campo subyacente | 2017-09-03 |
Plazos semanales
Plazos mensuales
Para usar los períodos fiscal_month_num, se debe configurar el parámetro fiscal_month_offset en el modelo.
plazos trimestrales
Para usar los períodos fiscal_quarter y fiscal_quarter_of_year, se debe configurar el parámetro fiscal_month_offset en el modelo.
Períodos anuales
Para utilizar el intervalo de tiempo fiscal_year, se debe configurar el parámetro fiscal_month_offset en el modelo.
Usa hourX
En hourX, el X se reemplaza por 2, 3, 4, 6, 8 o 12.
Esto dividirá cada día en intervalos con la cantidad de horas especificada. Por ejemplo, hour6 dividirá cada día en segmentos de 6 horas, que aparecerán de la siguiente manera:
2014-09-01 00:00:002014-09-01 06:00:002014-09-01 12:00:002014-09-01 18:00:00
Por ejemplo, una fila con un time de 2014-09-01 08:03:17 tendría un hour6 de 2014-09-01 06:00:00.
Usa minuteX
En minuteX, el X se reemplaza por 2, 3, 4, 5, 6, 10, 12, 15, 20 o 30.
Esto dividirá cada hora en intervalos con la cantidad de minutos especificada. Por ejemplo, minute15 dividirá cada hora en segmentos de 15 minutos, que aparecerán de la siguiente manera:
2014-09-01 01:00:002014-09-01 01:15:002014-09-01 01:30:002014-09-01 01:45:00
Por ejemplo, una fila con un time de 2014-09-01 01:17:35 tendría un minute15 de 2014-09-01 01:15:00.
Usa millisecondX
En millisecondX el X se reemplaza por 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250 o 500.
Esto dividirá cada segundo en intervalos con la cantidad especificada de milisegundos. Por ejemplo, millisecond250 dividirá cada segundo en segmentos de 250 milisegundos, que aparecerán de la siguiente manera:
2014-09-01 01:00:00.0002014-09-01 01:00:00.2502014-09-01 01:00:00.5002014-09-01 01:00:00.750
Por ejemplo, una fila con un time de 2014-09-01 01:00:00.333 tendría un millisecond250 de 2014-09-01 01:00:00.250.
Conversiones de zona horaria y convert_tz
En general, los cálculos de tiempo (diferencias, duraciones, etc.) solo funcionan correctamente cuando se opera con valores de tiempo que se convierten a la misma zona horaria, por lo que es importante tener en cuenta las zonas horarias cuando se escribe LookML.
Looker tiene varios parámetros de configuración de zona horaria que convierten los datos basados en el tiempo entre diferentes zonas horarias. De forma predeterminada, Looker realiza la conversión de zona horaria. El parámetro convert_tz se admite para los grupos de dimensiones de type: time. Si no quieres que Looker realice una conversión de zona horaria para una dimensión o un grupo de dimensiones en particular, puedes usar el parámetro convert_tz que se describe en la página de documentación del parámetro convert_tz.
Compatibilidad con dialectos para milisegundos y microsegundos
Looker admite la precisión de períodos hasta microsegundos; sin embargo, algunas bases de datos solo admiten la precisión hasta el segundo. Si una base de datos encuentra un período más preciso de lo que puede admitir, se redondeará a segundos.
En la versión más reciente de Looker, los siguientes dialectos admiten milisegundos:
| Dialecto | ¿Es compatible? |
|---|---|
| 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 |
En la versión más reciente de Looker, los siguientes dialectos admiten microsegundos:
| Dialecto | ¿Es compatible? |
|---|---|
| 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 |
Cómo especificar la base de datos datatype
El parámetro datatype te permite especificar el tipo de datos de tiempo de la tabla de la base de datos que proporcionas al grupo de dimensiones, lo que puede aumentar el rendimiento de las consultas.
Para los grupos de dimensiones de type: time, el parámetro datatype se aplica al parámetro sql del grupo de dimensiones.
Para los grupos de dimensiones de type: duration, el parámetro datatype se aplica a los parámetros sql_start y sql_end, por lo que debes asegurarte de que sql_start y sql_end sean del tipo de datos especificado.
El parámetro datatype acepta los siguientes valores:
epoch: Es un campo de época de SQL (es decir, un número entero que representa la cantidad de segundos desde la época de Unix).date: Es un campo de fecha de SQL (es decir, uno que no contiene información de la hora del día).datetime: Es un campo de fecha y hora de SQL.timestamp: Es un campo de marca de tiempo de SQL.yyyymmdd: Un campo SQL que contiene un número entero que representa una fecha con el formato YYYYMMDD.
El valor predeterminado para datatype es timestamp.
Grupos de dimensiones de tipo de calendario personalizado
Si implementaste calendarios personalizados en tu proyecto de LookML, puedes usar type: custom_calendar junto con el parámetro dimension_group para crear un conjunto de dimensiones basadas en el tiempo según una tabla de calendario personalizada que definas en tu base de datos. Consulta la página de documentación Uso de calendarios personalizados en Looker para obtener información sobre cómo configurar calendarios personalizados en tu proyecto de LookML.
La forma de un grupo de dimensiones de type: custom_calendar es la siguiente:
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 los grupos de dimensiones de type: custom_calendar, haz lo siguiente:
El parámetro
custom_timeframeses opcional. Especifica uno o más periodos de tiempo personalizados que debe generar el grupo de dimensiones. Si no se especificacustom_timeframes, el grupo de dimensiones creará todos los períodos personalizados. Los períodos personalizados posibles se enumeran en la seccióncustom_timeframesde esta página.El parámetro
sqlpara los grupos de dimensionestype: custom_calendarpuede tomar cualquier expresión de SQL válida que contenga datos en formato de marca de tiempo, fecha y hora, fecha, época o aaaammdd.El parámetro
based_on_calendarespecifica el nombre de la vista del calendario personalizado que modelaste en LookML.El parámetro
convert_tzes opcional y permite evitar la conversión automática de la zona horaria. Se describe con más detalle en la sección Conversiones de zona horaria yconvert_tzde esta página.El parámetro
datatypees opcional. Si su grupo de dimensiones no se basa en una fecha y hora, puede especificar un formato de época, marca de tiempo, fecha o aaaammdd. Se describe con más detalle en la sección Cómo especificar el tipo de datos de la base de datos de esta página.
Aunque no se enumeran aquí, muchos de los parámetros a nivel del campo también se pueden usar con grupos de dimensiones.
A continuación, se muestra un ejemplo de un grupo de dimensiones de calendario personalizado en un archivo orders.view de 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
}
Ten en cuenta los siguientes elementos en este grupo de dimensiones de calendario personalizado:
type: custom_calendar: El grupo de dimensiones se define como un tipo de calendario personalizado.sql: ${TABLE}.created_at ;;: El grupo de dimensiones usa información de fecha y hora de la columnaorders.created_atde la base de datos.custom_timeframes: [custom_year, custom_quarter]: El grupo de dimensiones se etiquetará como Calendario personalizado creado y contendrá períodos etiquetados como Año fiscal y Trimestre fiscal. Consulta Etiquetas para grupos de dimensiones de calendario personalizadas para obtener más información.based_on_calendar: retail_custom_calendar: El grupo de dimensiones unirá los datos del calendario personalizado que se define en la vistaretail_custom_calendardel proyecto de LookML a los datos de la columnaorders.created_atde esa base de datos para proporcionar resultados de la consulta con el calendario personalizado. Consulte la página de documentación Uso de calendarios personalizados en Looker para obtener información sobre cómo definir un calendario personalizado.
custom_timeframes
Para los grupos de dimensiones definidos como type: custom_calendar, si no deseas incluir todos los períodos personalizados posibles en el grupo de dimensiones, puedes usar el parámetro custom_timeframes para especificar qué períodos deseas incluir en el grupo de dimensiones. Se admiten los siguientes períodos personalizados:
| Plazo | Descripción | Suposiciones (para tipos _num) |
|---|---|---|
|
Es la fecha específica de la vista de calendario. | |
|
Es el día numérico de la vista del calendario. | Supone hasta 371 días |
|
Es un período genérico dentro del calendario (como en los calendarios 4-4-5). | |
|
El valor numérico del período personalizado. | Se supone que hay 12 períodos por año. |
|
Es el trimestre de la vista de calendario. | |
|
Es el trimestre numérico del año. | Se supone que hay 4 trimestres por año. |
|
Es un período estacional personalizado. | |
|
Es el valor numérico de la temporada personalizada. | Se supone que hay 2 temporadas por año. |
|
Semana de la vista de calendario. | |
|
Es el número de semana del año. | Se supone que hay hasta 53 semanas por año. |
|
El año visto desde el calendario. | |
|
Es el valor numérico del año personalizado. |
based_on_calendar
Para los grupos de dimensiones definidos como type: custom_calendar, el parámetro based_on_calendar especifica el nombre de la vista del calendario personalizado que modelaste en LookML.
Etiquetas para los grupos de dimensiones de calendario personalizadas
Looker genera etiquetas de campos de dimensión y etiquetas de grupo en el selector de campos de Explorar según si se usan los parámetros label o group_label en el grupo de dimensiones type: custom_calendar:
- Predeterminado (no se especifica
labelnigroup_label):- Looker agrupa los períodos del grupo de dimensiones bajo la etiqueta predeterminada del grupo de dimensiones, que es el nombre del grupo de dimensiones concatenado con Calendario personalizado (por ejemplo, Calendario personalizado creado).
- Looker antepone Fiscal a cada nombre de período (por ejemplo, Fecha fiscal, Semana fiscal, Año fiscal).
- Solo
group_label:- Looker agrupa los períodos del grupo de dimensiones según el valor de
group_labelespecificado. - Looker antepone el nombre del grupo de dimensiones y Fiscal a cada nombre de período (por ejemplo, Fecha fiscal de creación, Semana fiscal de creación, Año fiscal de creación).
- Looker agrupa los períodos del grupo de dimensiones según el valor de
- Solo
label:- Looker agrupa los períodos del grupo de dimensiones bajo el valor
labelque agrega Calendario personalizado (por ejemplo, para un grupo de dimensiones definido conlabel: "My Label", los períodos se agruparían bajo Mi etiqueta Calendario personalizado). - Looker antepone Fiscal a cada nombre de período (por ejemplo, Fecha fiscal, Semana fiscal, Año fiscal).
- Looker agrupa los períodos del grupo de dimensiones bajo el valor
- Se especifican tanto
group_labelcomolabel:- Looker agrupa los períodos del grupo de dimensiones según el valor de
group_labelespecificado. - Looker antepone el valor
labela cada período (por ejemplo, para un grupo de dimensiones definido conlabel: "My Label", los períodos se llamarían Mi etiqueta Fecha, Mi etiqueta Semana y Mi etiqueta Año).
- Looker agrupa los períodos del grupo de dimensiones según el valor de
Cómo localizar grupos de dimensiones
Puedes usar la localización del modelo para personalizar y traducir los nombres de los períodos, los intervalos o los períodos personalizados que genera un grupo de dimensiones. Consulta Cómo localizar grupos de dimensiones para obtener más información.
Aspectos para tener en cuenta
Se debe hacer referencia a los grupos de dimensiones por sus dimensiones individuales.
Dado que un grupo de dimensiones representa un grupo de dimensiones, en lugar de solo una, no puedes hacer referencia a él directamente en LookML. En su lugar, deberás consultar las dimensiones que crea.
Por ejemplo, considera este grupo de dimensiones:
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
Para hacer referencia a una de estas dimensiones en otro campo de LookML, usa la referencia ${created_date}, ${created_week} o ${created_month}. Si intentas usar solo ${created}, Looker no sabrá a qué período te refieres y se producirá un error.
Por este mismo motivo, no debes usar el parámetro primary_key en un grupo de dimensiones si especificas más de un timeframe.
Sugerencia del equipo de chat: Con frecuencia, nos preguntan sobre el error de validación que puede ocurrir si usas
primary_keyen undimension_groupcon más de untimeframe. Para obtener más información, consulte la publicación de Comunidad Timeframes and Dimension Groups in Looker .
Datos de marcas de tiempo que incluyen información de zona horaria
Algunos dialectos de bases de datos tienen opciones de marcas de tiempo que incluyen información de la zona horaria. Esto permite almacenar datos de marca de tiempo en un solo campo que puede tener varias zonas horarias. Una fila de datos podría almacenarse en UTC y otra en la hora del este. Como ejemplo, consulta la documentación de la marca de tiempo TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ de Snowflake para obtener información sobre las opciones de marca de tiempo del dialecto de Snowflake.
En este caso, cuando Looker realiza conversiones de zona horaria, pueden producirse errores. Para evitar esto, en el parámetro sql de la dimensión, debes convertir de forma explícita los datos de marca de tiempo a un tipo de marca de tiempo que no realice la conversión de zona horaria. Por ejemplo, en el dialecto de Snowflake, puedes usar la función TO_TIMESTAMP para convertir los datos de marca de tiempo.
Es posible crear dimensiones de tiempo o duración individuales.
Es posible crear una dimensión para cada período de tiempo o duración individual que se desee incluir, en lugar de generarlas todas en un solo dimension_group. En general, puedes evitar crear dimensiones individuales, a menos que quieras cambiar la convención de nomenclatura de períodos de Looker o que ya hayas calculado previamente las columnas de tiempo en tu base de datos. Para obtener más información, consulte la página de documentación Tipos de dimensión, filtro y parámetros.
Puedes cambiar el primer día de la semana
De forma predeterminada, las semanas en Looker comienzan el lunes. Puedes cambiar este comportamiento con el parámetro week_start_day a nivel del modelo.
Solo ten en cuenta que week_start_day no funciona con el marco temporal week_of_year porque ese marco temporal se basa en el estándar ISO, que utiliza semanas que comienzan en lunes.
Los filtros y campos personalizados no admiten todos los períodos
Los períodos day_of_week, fiscal_quarter_of_year, millisecond, millisecondX, microsecond, month_name, quarter_of_year y time_of_day no se admiten en los filtros personalizados ni en los campos personalizados.
Los intervalos de mes, trimestre y año solo cuentan los períodos completos.
El intervalo month en un grupo de dimensión duration solo considera que ha pasado un mes si el día final es mayor o igual que el día inicial.
Por ejemplo:
- La diferencia en meses entre el 26 de septiembre y el 25 de octubre del mismo año es 0.
- La diferencia en meses entre el 26 de septiembre y el 26 de octubre del mismo año es de 1.
Los intervalos quarter y year siguen la misma lógica.