veröffentlichen_als_db_view

Dies ist ein fortgeschrittenes Thema, bei dem davon ausgegangen wird, dass der Leser über fundiertes Wissen zu LookML und nichtflüchtigen abgeleiteten Tabellen (PDAs) verfügt. Weitere Informationen zu LookML finden Sie auf der Seite Vorbereitung für die Entwicklung. Weitere Informationen zu PDTs finden Sie auf der Dokumentationsseite Abgeleitete Tabellen in Looker.

Nutzung

view: my_view {
derived_table: {
publish_as_db_view: Ja
...
}
}
Hierarchie
publish_as_db_view
Standardwert
no

Akzeptiert
Ein boolescher Wert (yes oder no)

Sonderregeln
  • Die stabile Datenbankansicht wird im nächsten Zyklus des Looker-Regenerators veröffentlicht (erstellt), nachdem die LookML einer persistenten abgeleiteten Tabelle (PDT) mit publish_as_db_view: yes bereitgestellt wurde.
  • Stabile Datenbankansichten werden nur für PDTs unterstützt, die Datagroup- oder sql_trigger_value-Caching verwenden. PDTs mit persist_for werden nicht unterstützt.
  • Stabile Datenbankansichten werden nur für Datenbankverbindungen mit CREATE VIEW-Berechtigungen für das temporäre Schema unterstützt.

Definition

Der Parameter publish_as_db_view wird nur für PDTs unterstützt, die datagroup- oder sql_trigger_value-Caching verwenden. PDTs mit persist_for werden nicht unterstützt.

Darüber hinaus muss das Konto, mit dem Looker eine Verbindung zu Ihrer Datenbank herstellt, CREATE VIEW-Berechtigungen für das temporäre Schema in Ihrer Datenbank haben. Weitere Informationen finden Sie im Abschnitt Die Datenbankverbindung muss CREATE VIEW-Berechtigungen haben auf dieser Seite.

Mit dem Parameter publish_as_db_view können Sie ein PDT-Objekt für Abfragen außerhalb von Looker kennzeichnen. Für PDTs, bei denen publish_as_db_view auf yes gesetzt ist, erstellt Looker eine stabile Datenbankansicht in der Datenbank für das PDT. Die stabile Datenbankansicht wird in der Datenbank selbst erstellt, damit sie außerhalb von Looker abgefragt werden kann. Das Konzept einer stabilen Datenbankansicht unterscheidet sich von einer LookML-Ansicht, da LookML-Ansichten auf Ihrer Looker-Instanz und nicht in Ihrer Datenbank selbst vorhanden sind.

Die stabile Datenbankansicht wird im nächsten Zyklus des Looker-Regenerators veröffentlicht (erstellt), nachdem der LookML des PDT mit publish_as_db_view: yes in der Produktion bereitgestellt wurde.

Nachdem Looker die stabile Datenbankansicht in der Datenbank erstellt hat, muss das PDT erstellt werden, bevor Sie die stabile Datenbankansicht in der Datenbank abfragen können.

Beispiel

Erstellen Sie die PDT e_flights_pdt, für die eine stabile Datenbankansicht in der Datenbank erstellt wird:


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
  }
}

Die stabile Datenbankansicht für e_flights_pdt wird im nächsten Zyklus des Looker-Regenerators veröffentlicht, nachdem LookML für die Produktion des PDT bereitgestellt wurde. Nachdem Looker das PDT erstellt hat, können Sie die stabile Datenbankansicht der Datenbank abfragen.

Stabile PDT-Datenbankansicht aufrufen

Wenn die stabile Datenbankansicht veröffentlicht wurde, können Sie sie direkt abfragen, sobald Sie den stabilen Namen erhalten. Es gibt zwei Möglichkeiten, den Namen der stabilen Ansicht für die PDT zu erhalten:

Administratoren oder Nutzer mit der Berechtigung see_pdts können den stabilen Namen der Datenbankansicht auf der Seite Persistent abgeleitete Tabellen im Abschnitt Admin von Looker abrufen. Klicken Sie auf das Dreipunkt-Menü und wählen Sie PDT-Details aus:

Wenn Sie die Tabelle direkt abfragen möchten, fügen Sie einfach den Namen des Scratch-Schemas vor dem Tabellennamen ein. Wenn der Name des Scratch-Schemas beispielsweise tmp lautet, können Sie die stabile Datenbankansicht mit einem Befehl wie diesem abfragen:


SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt

Tab „SQL“ im Bereich „Erkunden“

Wenn Sie keinen Zugriff auf die Admin-Seite Persistente abgeleitete Tabellen haben, können Sie anhand der Informationen auf dem Tab SQL einer explorativen Datenanalyse den Namen der stabilen Ansicht ermitteln. Der Name der stabilen Ansicht hat folgendes Format:

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

Wenn Sie beispielsweise ein PDT im Modell faa und eine Ansicht namens e_flights_pdt haben, benötigen Sie nur den Scratch-Schemanamen und den Registrierungsschlüssel für die Verbindung. Sie finden beides im Tab SQL im Abschnitt Daten einer Abfrage im PDT. In der Anweisung CREATE TABLE oder FROM auf dem Tab SQL:

  • Der Registrierungsschlüssel für die Verbindung besteht aus zwei Zeichen. Je nach Datenbankdialekt wird entweder ein Dollarzeichen oder der erste Unterstrich im Tabellennamen der PDT verwendet.
  • Der Name des Scratch-Schemas ist der Anfang des Strings, der auf CREATE TABLE oder FROM folgt, vor dem .

In allen folgenden Beispielen lautet der Registrierungsschlüssel der Verbindung LB und der Name des Scratch-Schemas tmp.

Hier ist ein Beispiel mit einer CREATE TABLE-Anweisung für einen Dialekt, in dem ein Dollarzeichen vor dem Verbindungsschlüssel für die Verbindung verwendet wird:

Hier ist ein Beispiel mit einer FROM-Anweisung für einen Dialekt, in dem vor dem Verbindungsregistrierungsschlüssel ein Unterstrich verwendet wird:

Auch hier hat die stabile Datenbankansicht folgendes Format:

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

Hier sind alle Werte:

  • [scratch schema name] ist tmp
  • [connection registration key] ist LB
  • [model_name] ist faa
  • [view_name] ist e_flights_pdt

Das ist dann der Name der stabilen Datenbankansicht der PDT:

tmp.LB_faa_e_flights_pdt

Sobald Sie den stabilen Namen der Datenbankansicht haben, können Sie ihn direkt abfragen. Beispiel:


SELECT * from tmp.LB_faa_e_flights_pdt

Wichtige Punkte

Einige Dialekte erfordern zusätzliche Syntax

Wenn der Registrierungsschlüssel für die Verbindung mit einer Zahl beginnt, sind bei einigen Dialekten doppelte Anführungszeichen, Graviszeichen, Klammern oder eine ähnliche Syntax um den zweiten Teil des Namens der stabilen Datenbankansicht erforderlich. Beispiel: Amazon Redshift erfordert doppelte Anführungszeichen. Wenn Ihr Verbindungsschlüssel für die Registrierung also mit einer Zahl beginnt, wäre dies das folgende Format:

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

Wenn der Registrierungsschlüssel für die Verbindung beispielsweise 84 lautet, müssen Sie den zweiten Teil des stabilen Tabellennamens nach dem Punkt in Anführungszeichen setzen. Ihre Datenbankabfragen sehen dann so aus:


SELECT * from tmp."84_faa_e_flights_pdt"

Informationen zur erforderlichen Syntax finden Sie in der Dokumentation zu Ihrem Dialekt.

Die Datenbankverbindung muss CREATE VIEW-Berechtigungen haben

Zum Erstellen einer Ansicht in Ihrer Datenbank muss das Konto, mit dem Looker eine Verbindung zu Ihrer Datenbank herstellt, CREATE VIEW-Berechtigungen für das temporäre Schema der Datenbank haben.

Der Nutzername, das Passwort und das temporäre Schema der Datenbank werden konfiguriert, wenn Sie Looker mit Ihrer Datenbank verbinden.

Sie können Ihre Verbindung testen, um zu sehen, ob stabile Ansichtsnamen für Ihre Verbindung unterstützt werden. Wenn Ihr Dialekt stabile Ansichtsnamen unterstützt und PDTs für die Verbindung aktiviert sind, testet Looker die Verbindung, um festzustellen, ob stabile Ansichten zulässig sind:

  • Wenn die Verbindung stabile Ansichten ermöglicht, gibt der Verbindungstest ein Ergebnis wie Can use stable views in temp schema "docsexamples_scratch" in database "flightstats" zurück.
  • Wenn die Verbindung keine stabilen Ansichten zulässt, gibt der Verbindungstest ein Ergebnis wie Cannot use stable views in temp schema "docsexamples" in database "flightstats" sowie weitere Details wie CREATE VIEW command denied to user 'docsexamples' zurück.

Dialektunterstützung für die stabile Datenbankansicht von PDT

Die Möglichkeit, eine stabile PDT-Datenbankansicht zu erstellen, hängt vom Dialekt der Looker-Verbindung ab. In der neuesten Version von Looker unterstützen die folgenden Dialekte die stabile PDT-Datenbankansicht: