publish_as_db_view

Nutzung

view: my_view {
  derived_table: {
    publish_as_db_view: yes
    ...
  }
}
Hierarchie
publish_as_db_view

– oder –

publish_as_db_view
Standardwert
no

Akzeptiert
Ein boolescher Wert (yes oder no)

Besondere Regeln
  • Die stabile Datenbankansicht wird im nächsten Zyklus des Looker-Regenerators veröffentlicht (erstellt), nachdem der LookML-Code der persistenten Tabelle mit publish_as_db_view: yes in der Produktionsumgebung bereitgestellt wurde.
  • Stabile Datenbankansichten werden nur für persistierte Tabellen unterstützt, die Datengruppen- oder sql_trigger_value-Persistenzstrategien verwenden. Persistente Tabellen, die persist_for verwenden, werden nicht unterstützt.
  • Stabile Datenbankansichten werden nur für Datenbankverbindungen mit CREATE VIEW-Berechtigungen für das temporäre Schema unterstützt.

Definition

Mit dem Parameter publish_as_db_view können Sie persistente Tabellen (einschließlich persistenten abgeleiteten Tabellen und Aggregattabellen) für Abfragen außerhalb von Looker kennzeichnen. Für persistent gespeicherte Tabellen, bei denen publish_as_db_view auf yes gesetzt ist, erstellt Looker eine stabile Datenbankansicht in der Datenbank für die persistent gespeicherte Tabelle. Die stabile Datenbankansicht wird in der Datenbank selbst erstellt, sodass sie außerhalb von Looker abgefragt werden kann. Das Konzept einer stabilen Datenbankansicht unterscheidet sich von einer LookML-Ansicht, da LookML-Ansichten in 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-Code der persistenten Tabelle mit publish_as_db_view: yes in der Produktion bereitgestellt wurde.

Beispiele

Stabile Datenbankansicht für einen PDT erstellen

Erstellen Sie die e_flights_pdt-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 die LookML der PDT in der Produktion bereitgestellt wurde. Sobald Looker die PDT erstellt hat, können Sie die stabile Datenbankansicht in der Datenbank abfragen.

Stabile Datenbankansicht für eine zusammengefasste Tabelle erstellen

Erstellen Sie die aggregierte Tabelle weekly_orders, für die eine stabile Datenbankansicht in der Datenbank erstellt wird:

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

Die stabile Datenbankansicht für die Aggregattabelle weekly_orders wird im nächsten Zyklus des Looker-Regenerators veröffentlicht, nachdem der LookML-Code der Aggregattabelle in der Produktionsumgebung bereitgestellt wurde. Sobald Looker die zusammengefasste Tabelle erstellt hat, können Sie die stabile Datenbankansicht in der Datenbank abfragen.

Auf die stabile Datenbankansicht zugreifen

Wenn die stabile Datenbankansicht für eine persistent gespeicherte Tabelle veröffentlicht wird, können Sie sie direkt abfragen, sobald Sie den stabilen Namen erhalten haben. Es gibt zwei Möglichkeiten, den stabilen Ansichtsnamen für eine persistierte Tabelle abzurufen:

Modales Fenster mit PAT-Details

Wenn Sie ein Administrator oder ein Nutzer mit der Berechtigung see_pdts sind, können Sie im Admin-Bereich von Looker auf der Seite Persistente abgeleitete Tabellen den Namen der stabilen Datenbankansicht für eine persistierte Tabelle abrufen:

  1. Klicken Sie auf das Hauptmenü-Symbol  von Looker und wählen Sie Admin aus, falls das Menü Admin nicht bereits angezeigt wird. Wenn Sie sich im Hauptmenü von Looker im Bereich Entdecken oder Entwickeln befinden, müssen Sie möglicherweise auf den Rückwärtspfeil klicken, um das Menü Administrator aufzurufen.
  2. Wählen Sie im Menü Admin die Option Persistente abgeleitete Tabellen aus.
  3. Suchen Sie auf der Seite Persistente abgeleitete Tabellen nach dem Namen der persistenten Tabelle.
  4. Klicken Sie auf das Dreipunkt-Menü für die persistente Tabelle und wählen Sie PDT-Details aus.
  5. Suchen Sie im PDT Details-Modal nach dem Feld Stable Name.

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


SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt

Tab „SQL“ eines Explores

Wenn Sie keinen Zugriff auf die Administratorseite Persistent Derived Tables (Persistent abgeleitete Tabellen) haben, können Sie den stabilen Ansichtsnamen für eine persistent gespeicherte Tabelle anhand der Informationen auf dem Tab SQL eines Explores ermitteln. Der Name der stabilen Ansicht hat folgendes Format:

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

Wenn Sie beispielsweise eine persistente Tabelle im Modell mit dem Namen faa und eine Ansicht mit dem Namen e_flights_pdt haben, benötigen Sie nur den Namen des Scratch-Schemas und den Registrierungsschlüssel der Verbindung. Sie finden beide auf dem Tab SQL im Bereich Daten einer Abfrage für die persistent gespeicherte Tabelle. In der CREATE TABLE- oder FROM-Anweisung auf dem Tab SQL finden Sie die Informationen so:

  • Der Schlüssel für die Verbindungsregistrierung besteht aus zwei Zeichen. Je nach Datenbankdialekt folgt er entweder einem Dollarzeichen oder dem ersten Unterstrich im Tabellennamen der persistenten Tabelle.
  • Der Name des Scratch-Schemas ist der Anfang des Strings nach CREATE TABLE oder FROM, vor dem „.“.

In allen folgenden Beispielabfragen lautet der Schlüssel für die Verbindungsregistrierung LB und der Name des Scratch-Schemas tmp.

Hier sehen Sie ein Beispiel für eine von Looker generierte SQL-Abfrage mit einer CREATE TABLE-Anweisung für einen Dialekt, bei dem vor dem Registrierungsschlüssel der Verbindung ein Dollarzeichen steht. Der Name der Ansicht ist e_flights_pdt und der Name der generierten abgeleiteten Tabelle ist 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

Hier sehen Sie ein Beispiel für eine von Looker generierte SQL-Abfrage mit einer FROM-Anweisung für einen Dialekt, bei dem vor dem Registrierungsschlüssel der Verbindung ein Unterstrich verwendet wird. Der Name der Ansicht ist e_flights_pdt und der Name der generierten abgeleiteten Tabelle ist 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

Die stabile Datenbankansicht hat das folgende 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 der stabile Datenbankansichtsname der persistenten Tabelle:

tmp.LB_faa_e_flights_pdt

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


SELECT * from tmp.LB_faa_e_flights_pdt

Wichtige Punkte

Für einige Dialekte ist zusätzliche Syntax erforderlich

Wenn der Registrierungsschlüssel für die Verbindung mit einer Zahl beginnt, ist in einigen Dialekten für den zweiten Teil des Namens der stabilen Datenbankansicht die Verwendung von doppelten Anführungszeichen, Graviszeichen, eckigen Klammern oder einer ähnlichen Syntax erforderlich. Für Amazon Redshift sind beispielsweise doppelte Anführungszeichen erforderlich. Wenn Ihr Registrierungsschlüssel für die Verbindung mit einer Zahl beginnt, sieht das Format so aus:

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

Wenn der Schlüssel für die Verbindungsregistrierung beispielsweise 84 lautet, setzen Sie den zweiten Teil des stabilen Tabellennamens nach dem Punkt in Anführungszeichen. Ihre Abfragen an die Datenbank würden also in etwa so aussehen:


SELECT * from tmp."84_faa_e_flights_pdt"

Informationen zur erforderlichen Syntax finden Sie in der Dokumentation für Ihren Dialekt.

Die Datenbankverbindung muss die Berechtigungen CREATE VIEW haben.

Wenn Sie eine View in Ihrer Datenbank erstellen möchten, muss das Konto, mit dem Looker eine Verbindung zu Ihrer Datenbank herstellt, die Berechtigungen CREATE VIEW für das temporäre Schema der Datenbank haben.

Der Datenbanknutzername, das Passwort und das temporäre Schema 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 möglich 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, wird beim Verbindungstest ein Ergebnis wie Cannot use stable views in temp schema "docsexamples" in database "flightstats" zurückgegeben, zusammen mit weiteren Details wie CREATE VIEW command denied to user 'docsexamples'.

Dialektunterstützung für stabile Datenbankansichten

Die Möglichkeit, eine stabile Datenbankansicht für eine persistent abgeleitete Tabelle zu erstellen, hängt vom Datenbankdialekt ab, den Ihre Looker-Verbindung verwendet. In der aktuellen Version von Looker unterstützen die folgenden Dialekte die stabile Datenbankansicht für persistente Tabellen:

Dialekt Unterstützt?
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