En el caso de las conexiones de Looker a Snowflake o Google BigQuery, la función de calendario personalizado de Looker te permite definir un calendario personalizado en tu base de datos, como un calendario fiscal o de comercio minorista específico, y, luego, aplicar el calendario a un grupo de dimensiones basado en fechas en tu modelo de LookML. Luego, tus usuarios podrán crear consultas de Explorar con tus períodos personalizados, como custom_week y custom_period, como si fueran períodos estándar.
Requisitos previos
Antes de usar calendarios personalizados, asegúrate de que se cumplan los siguientes requisitos previos:
- Debes tener una conexión de Looker a Snowflake o Google BigQuery.
- Debes crear una tabla de calendario en tu base de datos que luego puedas modelar como una vista en Looker. Looker usa la tabla de calendario de tu base de datos para calcular períodos personalizados. Consulta la sección Crea una tabla de calendario en tu base de datos para obtener más información.
- Tu proyecto de LookML debe usar el nuevo entorno de ejecución de LookML. Si la función heredada Use Legacy LookML Runtime está habilitada en tu instancia, debes agregar la instrucción
new_lookml_runtime: yesal archivo de manifiesto de tu proyecto.
Cómo crear un calendario personalizado
Para implementar un calendario personalizado, debes realizar estos pasos generales que se describen en las siguientes secciones:
- Crea tu tabla de calendario en tu base de datos
- Define tu vista de calendario personalizada en LookML
- Crea un grupo de dimensiones de calendario personalizado
Crea una tabla de calendario en tu base de datos
Para calcular las fechas de los calendarios personalizados, Looker necesita una tabla de calendario exclusiva en tu base de datos que defina tus períodos personalizados. Tu tabla debe tener una columna de fecha de referencia que use la fecha de calendario estándar. Looker une tu tabla de calendario a tus tablas de datos (como una tabla orders) según la columna de fecha de referencia.
Los nombres de las columnas de la tabla de calendario son flexibles. Cuando definas la vista de calendario personalizada en LookML, usarás el bloque calendar_definition para asignar las columnas de tu base de datos a nombres de períodos personalizados estándar.
A continuación, se muestra un ejemplo de esquema de tabla para una tabla de calendario llamada fiscal_calendar_table.
| Nombre de la columna | Tipo de datos | Descripción |
|---|---|---|
reference_date |
DATE |
Fecha del calendario estándar (por ejemplo, "2023-01-01"). Se usa para unirse. Debe ser una clave primaria o única. |
fiscal_year |
VARCHAR |
Es el año fiscal (por ejemplo, "FY2023"). |
fiscal_year_num |
INTEGER |
Es el año fiscal numérico (por ejemplo, 2023). |
fiscal_quarter_of_year |
VARCHAR |
Es el trimestre fiscal (por ejemplo, "FQ1"). |
fiscal_quarter_of_year_num |
INTEGER |
Es el trimestre fiscal numérico (por ejemplo, 1). |
fiscal_week_of_year |
VARCHAR |
Es la semana fiscal del año (por ejemplo, "Week01" o "FW01"). |
fiscal_week_of_year_num |
INTEGER |
Es la semana fiscal numérica del año (por ejemplo, 1). |
fiscal_period_of_year |
VARCHAR |
Es un nombre de período personalizado (por ejemplo, "P01"). |
fiscal_period_of_year_num |
INTEGER |
Es el período personalizado numérico (por ejemplo, 1). |
season |
VARCHAR |
Nombre de la temporada personalizado (por ejemplo, "Invierno"). |
season_num |
INTEGER |
Temporada personalizada numérica (por ejemplo, 1). |
Para ilustrarlo, a continuación, se muestran algunas filas de muestra de la tabla fiscal_calendar_table:
reference_date |
fiscal_year |
fiscal_year_num |
fiscal_period |
fiscal_period_num |
|---|---|---|---|---|
2023-12-25 |
FY2024 |
2024 |
P01 |
1 |
2023-12-26 |
FY2024 |
2024 |
P01 |
1 |
2024-01-01 |
FY2024 |
2024 |
P02 |
2 |
2024-01-02 |
FY2024 |
2024 |
P02 |
2 |
Define tu vista de calendario personalizada en LookML
Después de crear una tabla de calendario en tu base de datos, debes crear una vista de LookML para modelar la tabla de calendario de la base de datos.
El archivo de vista de calendario personalizada debe incluir lo siguiente:
- Parámetro
sql_table_nameque apunta a la tabla de calendario personalizada en tu base de datos. - El bloque
calendar_definitionpara asignar las columnas de tu tabla a los tipos de períodos personalizados de Looker - Parámetros
dimensionpara modelar las columnas de la tabla de calendario personalizada en tu base de datos
A continuación, se muestra un archivo de vista de ejemplo llamado fiscal_calendar.view.lkml que modela el ejemplo fiscal_calendar_table:
view: fiscal_calendar {
sql_table_name: fiscal_calendar_table ;;
calendar_definition: {
reference_date: reference_date
timeframe_mapping: {
custom_year: fiscal_year
custom_quarter: fiscal_quarter_of_year
custom_date: fiscal_date
custom_week: fiscal_week_of_year
custom_period: fiscal_period_of_year
custom_season: season
}
timeframe_ordinal_mapping: {
custom_year: fiscal_year_num
custom_quarter: fiscal_quarter_of_year_num
custom_date: fiscal_date_num
custom_week: fiscal_week_of_year_num
custom_period: fiscal_period_of_year_num
custom_season: season_num
}
}
dimension: reference_date {
type: date
primary_key: yes
sql: ${TABLE}.reference_date ;; # Assuming column name is reference_date
}
dimension: fiscal_date {
type: string
sql: FORMAT_TIMESTAMP('%Y-%m-%d', ${TABLE}.reference_date) ;;
}
dimension: fiscal_year {
type: string
sql: ${TABLE}.fiscal_year ;;
}
dimension: fiscal_year_num {
type: number
sql: ${TABLE}.fiscal_year_num ;;
}
# ... other dimensions for quarters, weeks, periods, seasons, etc. ...
# Example placeholder dimensions for unused timeframes
dimension: season {
type: string
sql: 'N/A' ;;
hidden: yes
}
dimension: season_num {
type: number
sql: 0 ;;
hidden: yes
}
}
Consulta la página de parámetros de calendar_definition para obtener detalles sobre los parámetros de calendar_definition.
Crea un grupo de dimensiones de calendario personalizado
Después de crear una tabla de calendario en tu base de datos y modelar la tabla de calendario de la base de datos en LookML, puedes crear un grupo de dimensiones de type: custom_calendar que se base en la vista de calendario personalizada.
Por ejemplo, aquí hay un archivo de vista llamado orders.view.lkml que define un grupo de dimensiones de calendario personalizadas.
include: "/views/fiscal_calendar.view"
view: orders {
sql_table_name: public.orders ;;
dimension_group: created {
type: custom_calendar
# Optional list of allowed timeframes
custom_timeframes: [
custom_date,
custom_week,
custom_year
]
sql: ${TABLE}.created_at ;;
based_on_calendar: fiscal_calendar # This links to your calendar view
}
}
Con este LookML, Looker creará automáticamente un nuevo conjunto de períodos personalizados para el grupo de dimensiones created (como "Año personalizado creado" y "Semana personalizada creada"). Luego, los usuarios pueden usar estos campos para explorar, generar informes y filtrar.
Consulta la página de documentación de dimension_group para obtener detalles sobre cómo crear un grupo de dimensiones para calendarios personalizados.
Aspectos para tener en cuenta
Ten en cuenta las siguientes limitaciones de los calendarios personalizados:
- Medidas filtradas: Los calendarios personalizados no se admiten para las medidas filtradas. No puedes hacer referencia a una dimensión de calendario personalizado en el parámetro
filtersde una medida. - Filtros avanzados: Los calendarios personalizados no se admiten en los filtros avanzados: No puedes hacer referencia a una dimensión de calendario personalizado en las expresiones de filtro de Looker.
- Agregaciones simétricas: En algunos casos complejos de combinación, es posible que las agregaciones simétricas no se admitan por completo para las consultas que involucran dimensiones de calendario personalizadas.
- Completado de dimensiones: Looker no puede completar dimensiones con fechas faltantes para las dimensiones de calendario personalizadas.
- Filtrado más allá de los límites del calendario: Si se aplica un filtro a un período personalizado que genera una fecha que no está en el calendario, es posible que se muestren resultados inesperados. Esto se relaciona con la aritmética ordinal que se usa para calcular el comienzo de un período.
- Comportamiento de conversión de zona horaria: Looker respeta la semántica de conversión de zona horaria existente. Es decir, si la zona horaria de la base de datos y la de la consulta coinciden, no se aplica ninguna conversión de zona horaria. Si no está de acuerdo, Looker aplica la conversión de zona horaria. Puedes anular este comportamiento especificando
convert_tz: noen tu grupo de dimensiones de calendario personalizado. - Orden predeterminado: Looker aplica un orden predeterminado al primer campo de fecha cuando se seleccionan campos de calendario personalizados. Luego, el usuario puede especificar una clasificación de datos diferente.