publier_sous_vue_db

Il s'agit d'un sujet avancé qui suppose que le lecteur possède une connaissance approfondie de LookML et des tables dérivées persistantes (PDT). Pour en savoir plus sur LookML, consultez la page de documentation Préparer le développement. Pour en savoir plus sur les tables dérivées persistantes, consultez la page Tables dérivées dans Looker.

Utilisation

view: my_view {
derived_table: {
publish_as_db_view: oui
...
}
}
Hiérarchie
publish_as_db_view
Valeur par défaut
no

Acceptation
Une valeur booléenne (yes ou no)

Règles spéciales
  • La vue de la base de données stable est publiée (créée) lors du prochain cycle du régénérateur Looker une fois que le LookML d'une table dérivée persistante (PDT) a été déployé en production avec publish_as_db_view: yes.
  • Les vues stables de la base de données ne sont compatibles qu'avec les disques persistants qui utilisent la mise en cache datagroup ou sql_trigger_value. Les PDT utilisant persist_for ne sont pas compatibles.
  • Les vues stables de la base de données ne sont compatibles qu'avec les connexions à la base de données disposant des autorisations CREATE VIEW pour le schéma temporaire.

Définition

Le paramètre publish_as_db_view n'est compatible qu'avec les PDT qui utilisent la mise en cache datagroup ou sql_trigger_value. Les PDT utilisant persist_for ne sont pas compatibles.

En outre, le compte utilisé par Looker pour se connecter à votre base de données doit disposer des autorisations CREATE VIEW pour le schéma temporaire sur votre base de données. Pour en savoir plus, consultez la section La connexion à la base de données doit disposer des autorisations CREATE VIEW sur cette page.

Le paramètre publish_as_db_view vous permet de signaler un PDT pour les requêtes en dehors de Looker. Pour les PDT dont le paramètre publish_as_db_view est défini sur yes, Looker crée une vue de base de données stable sur la base de données pour le PDT. La vue de la base de données stable est créée sur la base de données elle-même, de sorte qu'elle puisse être interrogée en dehors de Looker. Le concept de vue de base de données stable est différent d'une vue LookML, car les vues LookML existent sur votre instance Looker et non sur votre base de données.

La vue de la base de données stable sera publiée (créée) lors du prochain cycle du regénérateur Looker une fois que le LookML du disque persistant sera déployé en production avec publish_as_db_view: yes.

Une fois que Looker a créé la vue de base de données stable sur la base de données, vous devez créer le PDT pour pouvoir interroger la vue de base de données stable sur la base de données.

Exemple

Créez le disque persistant e_flights_pdt pour lequel une vue de base de données stable est créée sur la base de données:


view: e_flights_pdt {
  derived_table: {
    publish_as_db_view: yes
    datagroup_trigger: e_flights_default_datagroup
    explore_source: ontime {
      timezone: "America/Los_Angeles"
      column: flight_num {}
      column: carrier {}
      column: arr_date {}
    }
  }
  dimension: flight_num {}
  dimension: carrier {}
  dimension: arr_date {
    type: date
  }
}

La vue de base de données stable pour e_flights_pdt sera publiée lors du prochain cycle du générateur de Looker, une fois que le LookML de PDT sera déployé en production. Une fois que Looker a créé le PDT, vous pouvez interroger la vue stable de la base de données.

Accéder à la vue de la base de données stable du disque persistant

Lorsque la vue de la base de données stable est publiée, vous pouvez l'interroger directement une fois que vous avez obtenu son nom. Il existe deux façons d'obtenir le nom de la vue stable pour le PDT:

Les administrateurs ou les utilisateurs disposant de l'autorisation see_pdts peuvent obtenir le nom de la vue de base de données stable sur la page Tables dérivées persistantes de la section Administration de Looker. Cliquez sur le menu à trois points du PDT et sélectionnez Détails du PDT :

Pour interroger directement cette table, il vous suffit d'ajouter le nom du schéma de travail avant le nom de la table. Par exemple, si le nom du schéma de travail est tmp, vous pouvez interroger la vue de la base de données stable à l'aide d'une commande telle que celle-ci:


SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt

Onglet SQL d'une ressource Explorer

Si vous n'avez pas accès à la page d'administration Tables dérivées persistantes, vous pouvez utiliser les informations fournies dans l'onglet SQL d'une fonction Explorer pour déterminer le nom de la vue stable. Le nom de la vue stable utilise le format suivant:

[scratch schema name].[connection registration key]_[model_name]_[view_name]

Par exemple, si vous disposez d'un PDT dans le modèle nommé faa et d'une vue nommée e_flights_pdt, vous n'avez besoin que du nom du schéma de travail et de la clé d'enregistrement de connexion. Vous pouvez les trouver dans l'onglet SQL de la section Data (Données) d'une requête sur le disque persistant. Dans l'instruction CREATE TABLE ou FROM de l'onglet SQL:

  • La clé d'enregistrement de la connexion est composée de deux caractères. Selon le dialecte de votre base de données, elle suit soit le signe dollar, soit le premier trait de soulignement dans le nom de la table du disque persistant.
  • Le nom du schéma de travail se trouve au début de la chaîne après CREATE TABLE ou FROM, avant ".".

Dans tous les exemples suivants, la clé d'enregistrement de la connexion est LB et le nom du schéma de travail est tmp.

Voici un exemple d'instruction CREATE TABLE pour un dialecte utilisant un signe dollar avant la clé d'enregistrement de la connexion:

Voici un exemple avec une instruction FROM pour un dialecte qui utilise un trait de soulignement avant la clé d'enregistrement de la connexion:

Là encore, la vue de la base de données stable présente le format suivant:

[scratch schema name].[connection registration key]_[model_name]_[view_name]

Voici toutes les valeurs:

  • [scratch schema name] correspond à tmp.
  • [connection registration key] correspond à LB.
  • [model_name] correspond à faa.
  • [view_name] correspond à e_flights_pdt.

Il s'agit alors du nom de vue de base de données stable du disque persistant:

tmp.LB_faa_e_flights_pdt

Une fois que vous disposez du nom de la vue de base de données stable, vous pouvez l'interroger directement. Exemple :


SELECT * from tmp.LB_faa_e_flights_pdt

Éléments à prendre en compte

Certains dialectes nécessitent une syntaxe supplémentaire

Si la clé d'enregistrement de connexion commence par un nombre, certains dialectes nécessitent des guillemets doubles, des accents graves, des crochets ou une syntaxe similaire autour de la deuxième partie du nom de la vue de base de données stable. Par exemple, Amazon Redshift nécessite des guillemets doubles. Ainsi, si votre clé d'enregistrement de connexion commence par un nombre, voici le format:

[scratch schema name]."[connection registration key]_[model_name]_[view_name]"

Par exemple, si la clé d'enregistrement de connexion est 84, vous devez placer des guillemets autour de la deuxième partie du nom de la table stable, après le point. Vos requêtes à la base de données ressembleraient donc à ceci:


SELECT * from tmp."84_faa_e_flights_pdt"

Consultez la documentation de votre dialecte pour en savoir plus sur la syntaxe spécifique requise.

La connexion à la base de données doit disposer des autorisations CREATE VIEW

Pour créer une vue de votre base de données, le compte que Looker utilise pour se connecter à votre base de données doit disposer des autorisations CREATE VIEW pour le schéma temporaire de la base de données.

Le nom d'utilisateur, le mot de passe et le schéma temporaire de la base de données sont configurés lorsque vous associez Looker à votre base de données.

Vous pouvez tester votre connexion pour vérifier si elle est compatible avec les noms de vues stables. Si votre dialect est compatible avec les noms de vue stables et si les PDT sont activés sur la connexion, Looker va tester la connexion pour voir si elle autorise les vues stables:

  • Si la connexion autorise des vues stables, le test de connexion renvoie un résultat tel que Can use stable views in temp schema "docsexamples_scratch" in database "flightstats".
  • Si la connexion n'autorise pas les vues stables, le test de connexion renvoie un résultat tel que Cannot use stable views in temp schema "docsexamples" in database "flightstats", ainsi que des informations supplémentaires telles que CREATE VIEW command denied to user 'docsexamples'.

Dialecte compatible avec la vue de base de données stable PDT

La possibilité de créer une vue de base de données stable (PDT) dépend du dialecte de la base de données utilisé par votre connexion Looker. Dans la dernière version de Looker, les dialectes suivants sont compatibles avec la vue de base de données stable PDT: