publish_as_db_view

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
  • La visualizzazione del database stabile viene 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
  • Le visualizzazioni del database stabili sono supportate solo per le tabelle permanenti che utilizzano le strategie di permanenza datagroup o sql_trigger_value persistence strategies. Le tabelle permanenti che utilizzano persist_for non sono supportate.
  • Le visualizzazioni del database stabili sono supportate solo per le connessioni al database con autorizzazioni CREATE VIEW per lo schema temporaneo.

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:

  1. 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.)
  2. Dal menu Amministrazione, seleziona Tabelle derivate permanenti.
  3. Nella pagina Tabelle derivate permanenti, cerca il nome della tabella permanente.
  4. Fai clic sul menu con tre puntini per la tabella permanente, quindi seleziona Dettagli PDT.
  5. 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 TABLE o FROM, 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 come CREATE 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