Utilizzo
view: my_view {
derived_table: {
publish_as_db_view: yes
...
}
}
|
Gerarchia
publish_as_db_view- o - publish_as_db_view |
Valore predefinito
no
Accetta
Un valore booleano (yes o no)
Regole speciali
|
Definizione
Il parametro publish_as_db_view consente di contrassegnare le tabelle permanenti (che includono sia le tabelle derivate permanenti sia le tabelle aggregate) per le query al di fuori di Looker. Per le tabelle permanenti con publish_as_db_view impostato su yes, Looker crea una visualizzazione del database stabile nel database per la tabella permanente. La visualizzazione del database stabile viene creata nel database stesso in modo che possa essere sottoposta a query al di fuori di Looker. Il concetto di visualizzazione del database stabile è diverso da una vista LookML, poiché le viste LookML esistono nell'istanza di Looker e non nel database stesso.
La visualizzazione del database stabile verrà pubblicata (creata) nel ciclo successivo del rigeneratore Looker dopo che il codice LookML della tabella permanente viene implementato in produzione con publish_as_db_view: yes.
Esempi
Creazione di una visualizzazione del database stabile per una PDT
Crea la PDT e_flights_pdt per la quale viene creata una visualizzazione del database stabile nel database:
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 visualizzazione del database stabile per e_flights_pdt verrà pubblicata nel ciclo successivo del rigeneratore Looker dopo che il codice LookML della PDT viene implementato in produzione. Una volta creata la PDT, puoi eseguire query sulla visualizzazione del database stabile nel database.
Creazione di una visualizzazione del database stabile per una tabella aggregata
Crea la tabella aggregata weekly_orders per la quale viene creata una visualizzazione del database stabile nel database:
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 visualizzazione del database stabile per la tabella aggregata weekly_orders verrà pubblicata nel ciclo successivo del rigeneratore Looker dopo che il codice LookML della tabella aggregata viene implementato in produzione. Una volta creata la tabella aggregata, puoi eseguire query sulla visualizzazione del database stabile nel database.
Accesso alla visualizzazione del database stabile
Quando la visualizzazione del database stabile viene pubblicata per una tabella permanente, puoi eseguirne direttamente la query una volta ottenuto il nome stabile. Esistono due modi per ottenere il nome della vista stabile per una tabella permanente:
Finestra modale dei dettagli della PDT
Se sei un amministratore o un utente con l'autorizzazione see_pdts, puoi utilizzare la pagina Tabelle derivate permanenti nella sezione Amministrazione di Looker per ottenere il nome della visualizzazione del database stabile per una tabella permanente:
- Fai clic sull'icona del menu principale di Looker e seleziona Amministrazione, se il menu Amministrazione non è già visualizzato. (Se ti trovi nella sezione Esplora o Sviluppa del menu principale di Looker, potrebbe essere necessario fare clic sulla freccia indietro per visualizzare il menu Amministrazione.)
- Dal menu Amministrazione, seleziona Tabelle derivate permanenti.
- Nella pagina Tabelle derivate permanenti, cerca il nome della tabella permanente.
- Fai clic sul menu con tre puntini per la tabella permanente, quindi seleziona Dettagli PDT.
- Nella finestra modale Dettagli PDT, cerca il campo Nome stabile.
Per eseguire query direttamente sulla tabella della vista stabile, aggiungi il nome dello schema temporaneo prima del nome della tabella. Ad esempio, se il nome dello schema temporaneo è tmp, puoi eseguire query sulla visualizzazione del database stabile con un comando simile al seguente:
SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt
Scheda SQL di un'esplorazione
Se non hai accesso alla pagina di amministrazione Tabelle derivate permanenti, puoi utilizzare le informazioni incluse nella scheda SQL di un'esplorazione per determinare il nome della vista stabile per una tabella permanente. Il nome della vista stabile utilizza questo formato:
[scratch schema name].[connection registration key]_[model_name]_[view_name]
Ad esempio, se hai una tabella permanente nel modello denominato faa e una vista con il nome e_flights_pdt, ti servono solo il nome dello schema temporaneo e la chiave di registrazione della connessione. Puoi trovare entrambi nella scheda SQL nella sezione Dati di una query sulla tabella permanente. Nell'istruzione CREATE TABLE o FROM nella scheda SQL, puoi trovare le informazioni come segue:
- La chiave di registrazione della connessione è composta da due caratteri; a seconda del dialetto del database, sarà preceduta da un segno di dollaro o dal primo trattino basso nel nome della tabella permanente.
- Il nome dello schema temporaneo è l'inizio della stringa che segue
CREATE TABLEoFROM, prima di ".".
In tutte le query di esempio seguenti, la chiave di registrazione della connessione è LB e il nome dello schema temporaneo è tmp.
Di seguito è riportato un esempio di query SQL generata da Looker con un'istruzione CREATE TABLE per un dialetto che utilizza un segno di dollaro prima della chiave di registrazione della connessione. Il nome della vista è e_flights_pdt e il nome della tabella derivata generata è 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
Di seguito è riportato un esempio di query SQL generata da Looker con un'istruzione FROM per un dialetto che utilizza un trattino basso prima della chiave di registrazione della connessione. Il nome della vista è e_flights_pdt e il nome della tabella derivata generata è 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
Anche in questo caso, la visualizzazione del database stabile ha il seguente formato:
[scratch schema name].[connection registration key]_[model_name]_[view_name]
Ecco tutti i valori:
[scratch schema name]ètmp[connection registration key]èLB[model_name]èfaa[view_name]èe_flights_pdt
Questo è quindi il nome della visualizzazione del database stabile della tabella permanente:
tmp.LB_faa_e_flights_pdt
Una volta ottenuto il nome della visualizzazione del database stabile, puoi eseguirne direttamente la query. Ad esempio:
SELECT * from tmp.LB_faa_e_flights_pdt
Aspetti da considerare
Alcuni dialetti richiedono una sintassi aggiuntiva
Se la chiave di registrazione della connessione inizia con un numero, alcuni dialetti richiedono virgolette doppie, apici inversi, parentesi quadre o una sintassi simile intorno alla seconda parte del nome della visualizzazione del database stabile. Ad esempio, Amazon Redshift richiede virgolette doppie; quindi, se la chiave di registrazione della connessione inizia con un numero, il formato sarà il seguente:
[scratch schema name]."[connection registration key]_[model_name]_[view_name]"
Ad esempio, se la chiave di registrazione della connessione è 84, devi inserire le virgolette intorno alla seconda parte del nome della tabella stabile, dopo il punto. Le query al database avranno un aspetto simile al seguente:
SELECT * from tmp."84_faa_e_flights_pdt"
Per informazioni sulla sintassi specifica richiesta, consulta la documentazione del tuo dialetto.
La connessione al database deve disporre delle autorizzazioni CREATE VIEW
Per creare una vista nel database, l'account utilizzato da Looker per connettersi al database deve disporre delle autorizzazioni CREATE VIEW per lo schema temporaneo del database.
Il nome utente, la password e lo schema temporaneo del database vengono configurati quando connetti Looker al database.
Puoi testare la connessione per verificare se i nomi delle viste stabili sono supportati per la tua connessione. Se il tuo dialetto supporta i nomi delle viste stabili e se le PDT sono abilitate nella connessione, Looker testerà la connessione per verificare se consentirà le viste stabili:
- Se la connessione consente le viste stabili, il test di connessione restituirà un risultato come
Can use stable views in temp schema "docsexamples_scratch" in database "flightstats". - Se la connessione non consente le viste stabili, il test di connessione restituirà un risultato come
Cannot use stable views in temp schema "docsexamples" in database "flightstats", insieme ad altri dettagli comeCREATE VIEW command denied to user 'docsexamples'.
Supporto dei dialetti per le visualizzazioni del database stabili
La possibilità di creare una visualizzazione del database stabile della tabella permanente dipende dal dialetto del database utilizzato dalla connessione Looker. Nell'ultima release di Looker, i seguenti dialetti supportano la visualizzazione del database stabile della tabella permanente:
| Dialetto | Supportata? |
|---|---|
| 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 |