pubblica_come_db_vista

Questo è un argomento avanzato che presuppone che il lettore abbia una solida conoscenza di LookML e tabelle derivate permanenti (PDT). Per informazioni preliminari su LookML, consulta la pagina della documentazione Prepararsi allo sviluppo. Per ulteriori informazioni sulle PDT, consulta la pagina della documentazione Tabelle derivate in Looker.

Utilizzo

view: my_view {
derived_table: {
publish_as_db_view:
...
}
}
Gerarchia
publish_as_db_view
Valore predefinito
no

Accetta
Un valore booleano (yes o no)

Regole speciali

Definizione

Il parametro publish_as_db_view è supportato solo per le PDT che utilizzano la memorizzazione nella cache di datagroup o sql_trigger_value. Le PDT non sono supportate con persist_for.

Inoltre, l'account che Looker utilizza per connettersi al tuo database deve disporre delle autorizzazioni CREATE VIEW per lo schema temporaneo sul database. Per ulteriori informazioni, consulta la sezione La connessione al database deve avere le autorizzazioni CREATE VIEW in questa pagina.

Il parametro publish_as_db_view consente di contrassegnare una PDT per eseguire query al di fuori di Looker. Per le PDT con publish_as_db_view impostato su yes, Looker crea una visualizzazione stabile del database sul PDT. La visualizzazione stabile del database viene creata nel database stesso, in modo da poter eseguire query all'esterno di Looker. Il concetto di vista database stabile è diverso dal concetto di vista LookML, poiché le viste LookML esistono sull'istanza di Looker e non nel database stesso.

La visualizzazione del database stabile verrà pubblicata (creata) nel ciclo successivo del rigeneratore Looker dopo che è stato implementato in produzione il codice LookML della PDT con publish_as_db_view: yes.

Dopo che Looker ha creato la visualizzazione del database stabile nel database, è necessario creare la PDT per poter eseguire query sulla visualizzazione del database stabile nel database.

Esempio

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 il deployment in produzione della LookML della PDT. Una volta che Looker ha creato la PDT, puoi eseguire query sulla visualizzazione stabile del database sul database.

Accesso alla visualizzazione del database stabile PDT

Quando viene pubblicata la visualizzazione del database stabile, puoi eseguire query direttamente su quest'ultimo dopo aver ricevuto il nome stabile. Esistono due modi per ottenere il nome della visualizzazione stabile per la PDT:

Gli amministratori o gli utenti con l'autorizzazione see_pdts possono recuperare il nome della visualizzazione del database stabile dalla pagina Persistent Derived Tables (Tabelle derivate permanenti) nella sezione Admin (Amministrazione) di Looker. Fai clic sul menu con tre puntini della PDT e seleziona PDT Details (Dettagli PDT):

Per eseguire una query direttamente su questa tabella, aggiungi il nome dello schema temporaneo prima del nome della tabella. Ad esempio, se il nome dello schema temporaneo è tmp, puoi eseguire una query sulla visualizzazione stabile del database 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 delle tabelle derivate permanenti, puoi utilizzare le informazioni fornite nella scheda SQL di un'esplorazione per determinare il nome della visualizzazione stabile. Il nome della visualizzazione stabile utilizza questo formato:

[scratch schema name].[connection registration key]_[model_name]_[view_name]

Ad esempio, se nel modello denominato faa hai una PDT e una vista denominata e_flights_pdt, ti servono soltanto il nome dello schema temporaneo e la chiave di registrazione della connessione. Puoi trovare entrambe le opzioni nella scheda SQL della sezione Dati di una query sulla PDT. Nell'istruzione CREATE TABLE o FROM nella scheda SQL:

  • La chiave di registrazione della connessione è di due caratteri: a seconda del dialetto del database, segue il simbolo del dollaro o il primo trattino basso nel nome della tabella PDT.
  • Il nome dello schema temporaneo è l'inizio della stringa che segue CREATE TABLE o FROM, prima di "."

In tutti gli esempi seguenti la chiave di registrazione della connessione è LB e il nome dello schema temporaneo è tmp.

Di seguito è riportato un esempio con un'istruzione CREATE TABLE per un dialetto che utilizza il simbolo del dollaro prima della chiave di registrazione della connessione:

Di seguito è riportato un esempio con un'istruzione FROM per un dialetto che utilizza il trattino basso prima della chiave di registrazione della connessione:

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 del database stabile di PDT:

tmp.LB_faa_e_flights_pdt

Dopo aver ottenuto il nome stabile della vista del database, puoi eseguire query direttamente su di esso. 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, parentesi o una sintassi simile nella 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, dopo il punto devi inserire le virgolette intorno alla seconda parte del nome della tabella stabile. Quindi le query nel database avranno il seguente aspetto:


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 avere le autorizzazioni CREATE VIEW

Per creare una vista sul database, l'account che Looker utilizza 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 vedere se i nomi delle viste stabili sono supportati. Se il tuo linguaggio supporta i nomi delle viste stabili e se le PDT sono abilitate sulla connessione, Looker testa la connessione per vedere se consentirà le visualizzazioni 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 le 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 del dialetto per la visualizzazione del database stabile PDT

La possibilità di creare una visualizzazione di database stabile PDT dipende dal dialetto del database utilizzato dalla connessione di Looker. Nell'ultima release di Looker i seguenti dialetti supportano la visualizzazione del database stabile PDT: