Utilisation
view: my_view {
derived_table: {
publish_as_db_view: yes
...
}
}
|
Hiérarchie
publish_as_db_view- ou - publish_as_db_view |
Valeur par défaut
no
Acceptation
Booléen (yes ou no)
Règles spéciales
|
Définition
Le paramètre publish_as_db_view vous permet de signaler les tables persistantes (qui incluent les tables dérivées persistantes et les tables agrégées) pour les interroger en dehors de Looker. Pour les tables persistantes 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 la table persistante. La vue de base de données stable est créée dans la base de données elle-même afin de pouvoir être interrogée en dehors de Looker. Le concept de vue de base de données stable est différent de celui de vue LookML, car les vues LookML existent dans votre instance Looker et non dans votre base de données elle-même.
La vue de base de données stable sera publiée (créée) lors du prochain cycle du régénérateur Looker une fois que le code LookML de la table persistante aura été déployé en production avec publish_as_db_view: yes.
Exemples
Créer une vue de base de données stable pour une PDT
Créez la PDT e_flights_pdt pour laquelle une vue de base de données stable est créée dans 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 régénérateur Looker après le déploiement du code LookML de la table PDT en production. Une fois que Looker a créé la PDT, vous pouvez interroger la vue stable de la base de données.
Créer une vue de base de données stable pour une table agrégée
Créez la table agrégée weekly_orders pour laquelle une vue de base de données stable est créée dans la base de données :
explore: orders {
aggregate_table: weekly_orders {
materialization: {
sql_trigger_value: SELECT CURDATE() ;;
publish_as_db_view: yes
}
query: {
dimensions: [orders.status, orders.created_week]
measures: [orders.count]
}
}
}
La vue de base de données stable pour la table agrégée weekly_orders sera publiée lors du prochain cycle du régénérateur Looker après le déploiement du code LookML de la table agrégée en production. Une fois que Looker a créé la table agrégée, vous pouvez interroger la vue stable de la base de données.
Accéder à la vue stable de la base de données
Lorsque la vue de base de données stable est publiée pour une table persistante, vous pouvez l'interroger directement une fois que vous avez obtenu le nom stable. Il existe deux façons d'obtenir le nom de vue stable pour une table persistante :
Fenêtre modale des détails de la PDT
Si vous êtes administrateur ou utilisateur disposant de l'autorisation see_pdts, vous pouvez utiliser la page Tables dérivées persistantes de la section Admin de Looker pour obtenir le nom de la vue de base de données stable d'une table persistante :
- Cliquez sur l'icône Menu principal Looker , puis sélectionnez Admin si le menu Admin n'est pas déjà affiché. (Si vous vous trouvez dans la section Explorer ou Développer du menu principal de Looker, vous devrez peut-être cliquer sur la flèche Retour pour afficher le menu Admin.)
- Dans le menu Admin, sélectionnez Tables dérivées persistantes.
- Sur la page Tables dérivées persistantes, recherchez le nom de votre table persistante.
- Cliquez sur le menu à trois points de votre table persistante, puis sélectionnez Détails du PDT.
- Dans la modalité Détails du PDT, recherchez le champ Nom stable.
Pour interroger directement la table de vue stable, ajoutez le nom du schéma temporaire avant le nom de la table. Par exemple, si le nom du schéma temporaire est tmp, vous pouvez interroger la vue de base de données stable avec une commande comme celle-ci :
SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt
Onglet "SQL" d'une exploration
Si vous n'avez pas accès à la page d'administration Persistent Derived Tables (Tables dérivées persistantes), vous pouvez utiliser les informations incluses dans l'onglet SQL d'une exploration pour déterminer le nom de vue stable d'une table persistante. Le nom de la vue stable utilise le format suivant :
[scratch schema name].[connection registration key]_[model_name]_[view_name]
Par exemple, si vous avez une table persistante dans le modèle nommé faa et une vue nommée e_flights_pdt, vous n'avez besoin que du nom du schéma temporaire et de la clé d'enregistrement de la connexion. Vous pouvez les trouver dans l'onglet SQL de la section Données d'une requête sur la table persistante. Dans l'instruction CREATE TABLE ou FROM de l'onglet SQL, vous trouverez les informations suivantes :
- La clé d'enregistrement de la connexion comporte deux caractères. Selon le dialecte de votre base de données, elle sera précédée d'un signe dollar ou du premier trait de soulignement dans le nom de la table persistante.
- Le nom du schéma temporaire correspond au début de la chaîne après
CREATE TABLEouFROM, avant ".".
Dans tous les exemples de requêtes suivants, la clé d'enregistrement de la connexion est LB et le nom du schéma temporaire est tmp.
Voici un exemple de requête SQL générée par Looker avec une instruction CREATE TABLE pour un dialecte qui utilise un signe dollar avant la clé d'enregistrement de la connexion. Le nom de la vue est e_flights_pdt et le nom de la table dérivée générée est tmp.LR$LBC5Q1576702903774_e_flights_pdt.
generate derived table e_flights_pdt
Building e_flight::e_flights_pdt in dev mode on instance b6ff28049851f1954156526c66ca9912
CREATE TABLE tmp.LR$LBC5Q1576702903774_e_flights_pdt (INDEX(flight_num)) SELECT
ontime.flight_num AS `flight_num`
ontime.carrier AS `carrier,
(TIMESTAMP(DATE (CONVERT_TZ(ontime.arr_time, 'UTC', 'America/Los_Angeles')))) AS
`arr_date``
FROM `flightstats`.`ontime` AS `ontime`
GROUP BY
1,
2,
3
-- finished e_flights_pdt => tmp.LR$LBC5Q1576702903774_e_flights_pdt
SELECT
e_flights_pdt.flight_num AS `e_flights_pdt.flight_num`,
e_flights_pdt.carrier AS `e_flights_pdt.carrier`
FROM tmp.LR$LBC5Q1576702903774_e_flights_pdt AS e_flights_pdt
GROUP BY
1,
2
ORDER BY
e_flights_pdt.flight_num
LIMIT 5
Voici un exemple de requête SQL générée par Looker avec une instruction FROM pour un dialecte qui utilise un trait de soulignement avant la clé d'enregistrement de la connexion. Le nom de la vue est e_flights_pdt et le nom de la table dérivée générée est tmp.LR_LBFIM1580333699953_e_flights_pdt.
--use existing e flights pdt in tmp.LR_LBFIM1580333699953_e_flights_pdt
SELECT
e_flights_pdt.id AS `e_flights_pdt.id`,
DATE(e_flights_pdt.faa_event_date) AS `e_flights_pdt. faa_event_date`
FROM tmp.LR_LBFIM1580333699953_e_flights_pdt AS e_flights_pdt
GROUP BY 1,2
ORDER BY DATE(e_flights_pdt.faa_event_date) DESC
LIMIT 5
Une fois encore, la vue de 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.
Voici le nom stable de la vue de base de données de la table persistante :
tmp.LB_faa_e_flights_pdt
Une fois que vous avez le 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 la connexion commence par un chiffre, certains dialectes exigent 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 exige des guillemets doubles. Par conséquent, si votre clé d'enregistrement de connexion commence par un chiffre, le format sera le suivant :
[scratch schema name]."[connection registration key]_[model_name]_[view_name]"
Par exemple, si la clé d'enregistrement de la connexion est 84, vous devez mettre des guillemets autour de la deuxième partie du nom de table stable, après le point. Vos requêtes à la base de données ressembleraient à 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 dans 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 connectez Looker à votre base de données.
Vous pouvez tester votre connexion pour voir si les noms de vues stables sont compatibles avec votre connexion. Si votre dialecte est compatible avec les noms de vues stables et si les PDT sont activées sur la connexion, Looker testera la connexion pour voir si elle autorise les vues stables :
- Si la connexion permet 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 d'autres détails tels queCREATE VIEW command denied to user 'docsexamples'.
Prise en charge des dialectes pour les vues de base de données stables
La possibilité de créer une vue de base de données stable pour une table persistante 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 la vue de base de données stable des tables persistantes :
| Dialecte | Compatibilité |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| 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 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 | |
| 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 |