calendar_definition

Utilisation

view: retail_custom_calendar {
  calendar_definition: {
    reference_date: ref_date
    timeframe_mapping: {
      custom_date: custom_date
      custom_period: custom_period
      custom_quarter: custom_quarter
      custom_season: custom_season
      custom_week: custom_week
      custom_year: custom_year
    }
    timeframe_ordinal_mapping: {
      custom_date: custom_date
      custom_period: custom_period
      custom_quarter: custom_quarter
      custom_season: custom_season
      custom_week: custom_week
      custom_year: custom_year
    }
    previous_ordinal_mapping: {
      custom_date: custom_date
      custom_week: custom_week
    }
  }
Hiérarchie
calendar_definition

Définition

Lorsque vous utilisez des calendriers personnalisés dans Looker, le paramètre calendar_definition vous permet de mapper les périodes de votre calendrier personnalisé aux colonnes d'une table de calendrier personnalisé que vous avez créée dans votre base de données.

Pour savoir comment configurer un fichier d'affichage de calendrier personnalisé, consultez la page Utiliser des calendriers personnalisés dans Looker.

Dans le fichier de vue de votre calendrier personnalisé, ajoutez le bloc de paramètres calendar_definition. Exemple :

  calendar_definition: {
    reference_date: ref_date
    timeframe_mapping: {
      custom_date: custom_date
      custom_period: custom_period
      custom_quarter: custom_quarter
      custom_season: custom_season
      custom_week: custom_week
      custom_year: custom_year
    }
    timeframe_ordinal_mapping: {
      custom_date: ordinal_custom_date
      custom_period: ordinal_custom_period
      custom_quarter: ordinal_custom_quarter
      custom_season: ordinal_custom_season
      custom_week: ordinal_custom_week
      custom_year: ordinal_custom_year
    }
    previous_ordinal_mapping: {
      custom_date: prev_day_num
      custom_week: prev_week_num
    }
  }

Notez les éléments suivants concernant le bloc de paramètres calendar_definition :

  • Le paramètre reference_date est obligatoire.
  • Les paramètres timeframe_mapping et timeframe_ordinal_mapping, ainsi que tous leurs sous-paramètres, sont obligatoires. Pour en savoir plus, consultez la section Périodes obligatoires.
  • Le bloc de paramètres previous_ordinal_mapping est utilisé pour les calendriers personnalisés avec des mesures d'une période à l'autre. Il indique à Looker comment traiter la semaine précédente lorsque la semaine en cours est la première et comment traiter le jour précédent lorsque le jour en cours est le premier. Le paramètre previous_ordinal_mapping est facultatif à partir de Looker 26.8.

Consultez la section Exemple sur cette page.

Après avoir modélisé la table de calendrier personnalisé dans LookML, vous pouvez créer un groupe de dimensions de type: custom_calendar basé sur la vue de calendrier personnalisé. Vos utilisateurs finaux peuvent ensuite créer des requêtes d'exploration à l'aide des périodes de la dimension de calendrier personnalisé.

reference_date

Le paramètre reference_date spécifie une dimension dans votre vue de calendrier personnalisé qui correspond à la colonne de votre table de base de données de calendrier personnalisé fournissant une date de calendrier standard, telle que 2026-01-01.

Notez les éléments suivants concernant le paramètre reference_date :

  • Le paramètre reference_date est obligatoire, car Looker l'utilise pour calculer les jointures de vos tables de données à votre table de calendrier personnalisé afin de fournir des résultats de requête qui utilisent vos périodes personnalisées.
  • Le paramètre reference_date doit être unique ou une clé primaire.

Consultez la section Exemple sur cette page pour voir comment le reference_date pointe vers une dimension qui modélise une colonne de votre table de calendrier personnalisé.

timeframe_mapping

Le bloc timeframe_mapping mappe chaque période personnalisée de Looker à la dimension qui modélise la colonne équivalente de votre table de base de données de calendrier personnalisé.

timeframe_mapping: {
  custom_date: field-ref
  custom_period: field-ref
  custom_quarter: field-ref
  custom_season: field-ref
  custom_week: field-ref
  custom_year: field-ref
}

Consultez la section Exemple sur cette page pour voir comment chaque timeframe_mapping sous-paramètre spécifie une dimension qui modélise une colonne de votre table de calendrier personnalisé.

timeframe_ordinal_mapping

Le bloc timeframe_ordinal_mapping mappe chaque période personnalisée de Looker à la dimension qui modélise la colonne ordinale appropriée de votre table de base de données de calendrier personnalisé.

timeframe_ordinal_mapping: {
  custom_date: field-ref
  custom_period: field-ref
  custom_quarter: field-ref
  custom_season: field-ref
  custom_week: field-ref
  custom_year: field-ref
}

Consultez la section Exemple sur cette page pour voir comment chaque timeframe_ordinal_mapping sous-paramètre spécifie une dimension qui modélise une colonne de votre table de calendrier personnalisé.

previous_ordinal_mapping

Si vous souhaitez créer des mesures d'une période à l'autre qui utilisent votre calendrier personnalisé, vous pouvez également ajouter un bloc previous_ordinal_mapping à votre calendar_definition. Le bloc previous_ordinal_mapping mappe les périodes Looker custom_date et custom_week aux dimensions qui modélisent les colonnes de votre table de base de données de calendrier personnalisé où sont spécifiés le jour précédent et la semaine précédente.

previous_ordinal_mapping: {
  custom_date: field-ref
  custom_week: field-ref
}
  • Le paramètre custom_date indique à Looker comment traiter le jour précédent lorsque le jour en cours est le premier.
  • Le paramètre custom_week indique à Looker comment traiter la semaine précédente lorsque la semaine en cours est la première.

Le paramètre previous_ordinal_mapping est facultatif à partir de Looker 26.8. Si le bloc previous_ordinal_mapping est omis, Looker suppose une année de 52 semaines, où la valeur précédente de la semaine 1 est 52 et la valeur précédente du jour 1 est 364.

Périodes obligatoires

Les sous-paramètres de période de timeframe_mapping et timeframe_ordinal_mapping sont obligatoires. Si une période spécifique, telle que custom_season, n'est pas pertinente pour votre calendrier personnalisé, vous devez quand même l'inclure en définissant une dimension d'espace réservé dans votre vue de calendrier. Exemple :

 dimension: season {
    type: string
    sql: 'N/A' ;;
    hidden: yes
  }
  dimension: season_num {
    type: number
    sql: 0 ;;
    hidden: yes
  }

Exemple

Voici un exemple de fichier de vue appelé fiscal_calendar.view.lkml qui modélise une table de calendrier personnalisé appelée 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_of_month
      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_of_month_num
      custom_week: fiscal_week_of_year_num
      custom_period: fiscal_period_of_year_num
      custom_season: season_num
    }
    previous_ordinal_mapping: {
          custom_date: prev_custom_date
          custom_week: prev_custom_week
    }
  }

  dimension: reference_date {
    type: date
    primary_key: yes
    sql: ${TABLE}.reference_date ;; # Name of the column in your database table that shows the standard date, such as `2026-01-01`
  }

  dimension: fiscal_year {
    type: string
    sql: ${TABLE}.fiscal_year ;;
  }

  dimension: fiscal_year_num {
    type: number
    sql: ${TABLE}.fiscal_year_num ;;
  }

  dimension: prev_custom_week {
          type: number
          sql: ${TABLE}.prev_custom_week ;;
        }

  # ... 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
  }
}