autogenerate_primary_keys

Utilisation

  autogenerate_primary_keys: yes
Hiérarchie
autogenerate_primary_keys

- ou -

autogenerate_primary_keys
Valeur par défaut
Non

Règles spéciales
  • Non compatible avec les vues contenant un champ défini avec primary_key: yes.
  • Non compatible avec l'environnement d'exécution LookML hérité .

Définition

Lorsque le paramètre autogenerate_primary_keys est activé, Looker génère une clé temporaire et distincte pour une vue lorsqu'aucune clé n'est explicitement définie dans votre LookML. La clé primaire générée automatiquement permet de calculer correctement les agrégats symétriques et les décomptes un-à-plusieurs sans aucune modification de votre table de base de données sous-jacente. La clé primaire est générée au moment de l'exécution de la requête. Elle n'est pas conservée d'une requête à l'autre.

Le paramètre autogenerate_primary_keys est compatible avec les vues et les explorations :

  • Pour les vues, si vous définissez la vue avec autogenerate_primary_keys: yes, Looker génère une clé primaire pour les requêtes sur la vue où une clé primaire est nécessaire pour éviter de dupliquer les lignes. Si vous ajoutez autogenerate_primary_keys: yes à une vue qui comporte déjà un champ défini comme clé primaire, l'IDE Looker affiche un avertissement de validation LookML.
  • Pour les explorations, si vous définissez l'exploration avec autogenerate_primary_keys: yes, Looker génère une clé primaire pour chacune des vues de l'exploration requises pour une requête d'exploration où une clé primaire est nécessaire pour éviter de dupliquer les lignes :

    • Looker génère des clés primaires uniquement pour les vues de l'exploration qui ne comportent pas de champ défini avec primary_key: yes. Si une vue comporte un champ défini avec primary_key: yes, Looker utilise la clé primaire de la vue.
    • Looker génère une clé primaire pour la vue d'une exploration uniquement lorsque la vue est interrogée via cette exploration. Si la même vue est interrogée via une autre exploration qui n'est pas définie avec autogenerate_primary_keys: yes, et que la vue elle-même n'est pas définie avec autogenerate_primary_keys: yes, Looker ne génère pas de clé primaire pour la vue.

Exemple

Voici une exploration orders qui joint une vue order_items. L'exploration est définie avec autogenerate_primary_keys: yes :

explore: orders {
  autogenerate_primary_keys: yes
  join: order_items {
    sql_on: ${orders.id} = ${order_items.order_id} ;;
    relationship: one_to_many
  }
}

Pour les requêtes sur l'exploration orders qui nécessitent des agrégats symétriques ou des calculs dans lesquels les lignes d'une vue peuvent être dupliquées, Looker génère automatiquement une clé distincte pour les vues orders ou order_items.

Bon à savoir

Voici quelques points à noter concernant l'utilisation de autogenerate_primary_keys: yes :

  • L'activation de autogenerate_primary_keys peut modifier le comportement de vos requêtes existantes. Les mesures que Looker devait auparavant supprimer des requêtes en raison d'une clé primaire manquante seront désormais incluses dans les résultats, ce qui pourrait entraîner des modifications importantes pour certains rapports.
  • La génération automatique de clés primaires peut augmenter le temps de requête en raison du calcul supplémentaire requis.
  • Lorsque Looker génère une clé primaire pour une requête, il s'agit d'une clé primaire d'exécution temporaire qui ne peut pas être sélectionnée ni visualisée dans une exploration.

Compatibilité des dialectes avec autogenerate_primary_keys

La possibilité d'utiliser autogenerate_primary_keys dépend du dialecte de base de données utilisé par votre connexion Looker. Dans la dernière version de Looker, les dialectes suivants sont compatibles avec autogenerate_primary_keys :

  • SQL standard de Google BigQuery
  • Amazon Redshift
  • Amazon Redshift 2.1 et versions ultérieures
  • Amazon Redshift Serverless 2.1 et versions ultérieures
  • Google Cloud PostgreSQL
  • Greenplum
  • Microsoft Azure PostgreSQL
  • MySQL 8.0.12 et versions ultérieures
  • PostgreSQL antérieur à la version 9.5