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 persistenti (che includono sia le tabelle derivate persistenti che le tabelle aggregate) per le query al di fuori di Looker. Per le tabelle persistenti con publish_as_db_view impostato su yes, Looker crea una vista stabile del database per la tabella persistente. La visualizzazione stabile del database viene creata nel database stesso in modo che possa essere interrogata al di fuori di Looker. Il concetto di vista stabile del database è diverso da quello di vista LookML, in quanto le viste LookML esistono nell'istanza di Looker e non nel database stesso.
La visualizzazione stabile del database verrà pubblicata (creata) nel ciclo successivo del generatore Looker dopo che il LookML della tabella persistente è stato implementato in produzione con publish_as_db_view: yes.
Esempi
Creazione di una visualizzazione del database stabile per un PDT
Crea il PDT e_flights_pdt per cui viene creata una visualizzazione stabile del 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 stabile del database per e_flights_pdt verrà pubblicata nel ciclo successivo del rigeneratore Looker dopo che il LookML della PDT è stato implementato in produzione. Una volta creata la PDT, puoi eseguire query sulla visualizzazione stabile del database.
Creazione di una visualizzazione stabile del database per una tabella aggregata
Crea la weekly_orders tabella aggregata per la quale viene creata una visualizzazione stabile del 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 stabile del database per la tabella aggregata weekly_orders verrà pubblicata nel ciclo successivo del generatore Looker dopo il deployment del codice LookML della tabella aggregata in produzione. Una volta creata la tabella aggregata, puoi eseguire query sulla visualizzazione stabile del database.
Accedere alla visualizzazione stabile del database
Quando la visualizzazione stabile del database viene pubblicata per una tabella persistente, puoi eseguire query direttamente una volta ottenuto il nome stabile. Esistono due modi per ottenere il nome della visualizzazione stabile per una tabella persistente:
Finestra modale dei dettagli PDT
Se sei un amministratore o un utente con l'autorizzazione see_pdts, puoi utilizzare la pagina Tabelle derivate persistenti nella sezione Amministrazione di Looker per ottenere il nome della visualizzazione stabile del database per una tabella persistente:
- 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, potresti dover fare clic sulla freccia indietro per visualizzare il menu Amministrazione.
- Nel menu Amministrazione, seleziona Tabelle derivate persistenti.
- Nella pagina Tabelle derivate permanenti, cerca il nome della tabella persistente.
- Fai clic sul menu con tre puntini per la tabella persistente e poi seleziona Dettagli PDT.
- Nella modale Dettagli PDT, cerca il campo Nome stabile.
Per eseguire query direttamente sulla tabella della visualizzazione stabile, aggiungi il nome dello schema di scratch prima del nome della tabella. Ad esempio, se il nome dello schema temporaneo è tmp, puoi eseguire una query sulla visualizzazione del database stabile con un comando come questo:
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 persistente. Il nome della visualizzazione stabile utilizza questo formato:
[scratch schema name].[connection registration key]_[model_name]_[view_name]
Ad esempio, se hai una tabella persistente nel modello denominato faa e una vista con il nome e_flights_pdt, ti servono solo il nome dello schema scratch e la chiave di registrazione della connessione. Puoi trovarli entrambi nella scheda SQL della sezione Dati di una query sulla tabella persistente. Nell'istruzione CREATE TABLE o FROM nella scheda SQL, puoi trovare le informazioni nel seguente modo:
- La chiave di registrazione della connessione è composta da due caratteri; a seconda del dialetto del database, seguirà un segno del dollaro o il primo trattino basso nel nome della tabella persistente.
- 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.
Ecco un esempio di query SQL generata da Looker con un'istruzione CREATE TABLE per un dialetto che utilizza il simbolo del 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 segno di sottolineatura 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 è il nome della visualizzazione stabile del database della tabella persistente:
tmp.LB_faa_e_flights_pdt
Una volta ottenuto il nome della visualizzazione del database stabile, puoi eseguire query direttamente. 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 o una sintassi simile intorno alla seconda parte del nome della visualizzazione del database stabile. Ad esempio, Amazon Redshift richiede le 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 racchiudere tra virgolette la seconda parte del nome della tabella stabile, dopo il punto. Pertanto, le query al database avranno un aspetto simile al seguente:
SELECT * from tmp."84_faa_e_flights_pdt"
Consulta la documentazione del tuo dialetto per informazioni sulla sintassi specifica richiesta.
La connessione al database deve disporre delle autorizzazioni CREATE VIEW
Per creare una vista nel tuo database, l'account utilizzato da Looker per connettersi al tuo 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 tuo database.
Puoi testare la connessione per verificare se i nomi delle visualizzazioni 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 consente le viste stabili:
- Se la connessione consente visualizzazioni 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 visualizzazioni stabili, il test di connessione restituirà un risultato come
Cannot use stable views in temp schema "docsexamples" in database "flightstats", insieme a ulteriori dettagli comeCREATE VIEW command denied to user 'docsexamples'.
Supporto dei dialetti per le visualizzazioni di database stabili
La possibilità di creare una visualizzazione stabile del database della tabella persistente dipende dal dialetto del database utilizzato dalla connessione Looker. Nell'ultima release di Looker, i seguenti dialetti supportano la visualizzazione stabile del database della tabella persistente:
| 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 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 |