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 marquer les tables persistantes (qui incluent à la fois 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 dans 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 est publiée (créée) lors du prochain cycle du régénérateur Looker une fois le code LookML de la table persistante 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 une fois le code LookML de la PDT déployé en production. Une fois que Looker a créé la PDT, vous pouvez interroger la vue de base de données stable dans 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 une fois le code LookML de la table agrégée déployé en production. Une fois que Looker a créé la table agrégée, vous pouvez interroger la vue de base de données stable dans la base de données.
Accéder à la vue de base de données stable
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 :
Modal "Détails de la PDT"
Si vous êtes administrateur ou utilisateur disposant de l'autorisation see_pdts, vous pouvez utiliser la page Persistent Derived Tables (Tables dérivées persistantes) de la section Admin (Administration) de Looker pour obtenir le nom de vue de base de données stable d'une table persistante :
- Cliquez sur l'icône du menu principal de Looker et sélectionnez Admin si le menu Admin n'est pas déjà affiché. (Si vous vous trouvez dans la section Explore (Explorer) ou Develop (Développer) du menu principal de Looker, vous devrez peut-être cliquer sur la flèche de retour pour afficher le menu Admin (Administration).)
- Dans le menu Admin (Administration), sélectionnez Persistent Derived Tables (Tables dérivées persistantes).
- Sur la page Persistent Derived Tables (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 PDT Details (Détails de la PDT).
- Dans la fenêtre modale PDT Details (Détails de la PDT), recherchez le champ Stable Name (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 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 trouver les deux dans l'onglet SQL de la section Data (Données) d'une requête sur la table persistante. Dans l'instruction CREATE TABLE ou FROM de l'onglet SQL, vous pouvez trouver les informations comme suit :
- 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 table de la table persistante.
- Le nom du schéma temporaire correspond au début de la chaîne suivant
CREATE TABLEouFROM, avant le ".".
Dans toutes les requêtes d'exemple suivantes, 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
Encore une fois, 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]esttmp[connection registration key]estLB[model_name]estfaa[view_name]este_flights_pdt
Il s'agit donc du nom de vue de base de données stable de la table persistante :
tmp.LB_faa_e_flights_pdt
Une fois que vous avez le nom de 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 nécessitent des guillemets doubles, des accents graves, des crochets ou une syntaxe similaire autour de la deuxième partie du nom de vue de base de données stable. Par exemple, Amazon Redshift nécessite des guillemets doubles. Par conséquent, si votre clé d'enregistrement de la connexion commence par un chiffre, le format est 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 ressembleront donc à ceci :
SELECT * from tmp."84_faa_e_flights_pdt"
Consultez la documentation de votre dialecte pour obtenir des informations 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 vue stables sont compatibles avec votre connexion. Si votre dialecte est compatible avec les noms de vue 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 autorise les 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'.
Compatibilité des dialectes avec 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 pour une table persistante :
| 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 AlloyDB for PostgreSQL | |
| 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 |