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 stabile del database viene pubblicata (creata) nel ciclo successivo del rigeneratore Looker dopo che il codice LookML della tabella persistente è stato implementato in produzione con publish_as_db_view: yes
  • Le viste di database stabili sono supportate solo per le tabelle persistenti che utilizzano strategie di persistenza datagroup o sql_trigger_value . Le tabelle persistenti che utilizzano persist_for non sono supportate.
  • Le viste di 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 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:

  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, potresti dover fare clic sulla freccia indietro per visualizzare il menu Amministrazione.
  2. Nel menu Amministrazione, seleziona Tabelle derivate persistenti.
  3. Nella pagina Tabelle derivate permanenti, cerca il nome della tabella persistente.
  4. Fai clic sul menu con tre puntini per la tabella persistente e poi seleziona Dettagli PDT.
  5. 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 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.

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 come CREATE 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