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
|
Definition
Mit dem publish_as_db_view Parameter können Sie persistente Tabellen kennzeichnen, die sowohl persistente abgeleitete Tabellen als auch zusammengefasste Tabellen für Abfragen außerhalb von Looker umfassen. Für persistente Tabellen, bei denen publish_as_db_view auf yes gesetzt ist, erstellt Looker eine stabile Datenbankansicht in der Datenbank für die persistente Tabelle. 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 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 in der Produktion bereitgestellt wurde mit publish_as_db_view: yes.
Beispiele
Stabile Datenbankansicht für eine PDT erstellen
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 der LookML-Code 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 zusammengefasste 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 zusammengefasste Tabelle weekly_orders wird im nächsten Zyklus des Looker-Regenerators veröffentlicht, nachdem der LookML-Code der zusammengefassten Tabelle in der Produktion 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 persistente 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 persistente Tabelle zu erhalten:
Modal „PDT-Details“
Wenn Sie Administrator oder Nutzer mit der see_pdts Berechtigung sind, können Sie den Namen der stabilen Datenbankansicht für eine persistente Tabelle im Bereich Admin von Looker auf der Seite Persistente abgeleitete Tabellen abrufen:
- Klicken Sie auf das Symbol für das Hauptmenü von Looker und wählen Sie Admin aus, falls das Menü Admin noch nicht angezeigt wird. Wenn Sie sich im Bereich Explore oder Entwickeln des Hauptmenüs von Looker befinden, müssen Sie möglicherweise auf den Zurückpfeil klicken, um das Menü Admin aufzurufen.
- Wählen Sie im Menü Admin die Option Persistente abgeleitete Tabellen aus.
- Suchen Sie auf der Seite Persistente abgeleitete Tabellen nach dem Namen Ihrer persistenten Tabelle.
- Klicken Sie für Ihre persistente Tabelle auf das Dreipunkt-Menü und wählen Sie dann PDT-Details aus.
- Suchen Sie im Modal PDT-Details nach dem Feld Stabiler Name.
Wenn Sie die Tabelle der stabilen Ansicht direkt abfragen möchten, fügen Sie den Namen des Scratch-Schemas vor dem Tabellennamen hinzu. 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 Admin-Seite Persistente abgeleitete Tabellen haben, können Sie die Informationen auf dem Tab SQL eines Explores verwenden, um den Namen der stabilen Ansicht für eine persistente Tabelle zu 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 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. Beide finden Sie auf dem Tab SQL im Bereich Daten einer Abfrage für die persistente Tabelle. In der Anweisung CREATE TABLE oder FROM auf dem Tab SQL finden Sie die Informationen so:
- Der Registrierungsschlüssel der Verbindung 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 TABLEoderFROM, vor dem „.“.
In allen folgenden Beispielabfragen ist der Registrierungsschlüssel der Verbindung LB und der Name des Scratch-Schemas tmp.
Hier ist ein Beispiel für eine von Looker generierte SQL-Abfrage mit einer CREATE TABLE-Anweisung für einen Dialekt, der ein Dollarzeichen vor dem Registrierungsschlüssel der Verbindung verwendet. Der Ansichtsname ist e_flights_pdt und der generierte Name der 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 ist ein Beispiel für eine von Looker generierte SQL-Abfrage mit einer FROM-Anweisung für einen Dialekt, der einen Unterstrich vor dem Registrierungsschlüssel der Verbindung verwendet. Der Ansichtsname ist e_flights_pdt und der generierte Name der 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
Auch hier hat die stabile Datenbankansicht das folgende Format:
[scratch schema name].[connection registration key]_[model_name]_[view_name]
Hier sind alle Werte:
[scratch schema name]isttmp[connection registration key]istLB[model_name]istfaa[view_name]iste_flights_pdt
Dies ist der Name der stabilen Datenbankansicht der persistenten Tabelle:
tmp.LB_faa_e_flights_pdt
Sobald Sie den Namen der stabilen Datenbankansicht haben, können Sie sie direkt abfragen. Beispiel:
SELECT * from tmp.LB_faa_e_flights_pdt
Wichtige Punkte
Einige Dialekte erfordern zusätzliche Syntax
Wenn der Registrierungsschlüssel der Verbindung mit einer Zahl beginnt, erfordern einige Dialekte doppelte Anführungszeichen, Backticks, Klammern oder eine ähnliche Syntax um den zweiten Teil des Namens der stabilen Datenbankansicht. Für Amazon Redshift sind beispielsweise doppelte Anführungszeichen erforderlich. Wenn Ihr Registrierungsschlüssel der Verbindung also mit einer Zahl beginnt, sieht das Format so aus:
[scratch schema name]."[connection registration key]_[model_name]_[view_name]"
Wenn der Registrierungsschlüssel der Verbindung beispielsweise 84 ist, setzen Sie den zweiten Teil des Namens der stabilen Tabelle nach dem Punkt in Anführungszeichen. Ihre Abfragen an die Datenbank sehen dann so aus:
SELECT * from tmp."84_faa_e_flights_pdt"
Informationen zur spezifischen Syntax finden Sie in der Dokumentation für Ihren Dialekt.
Die Datenbankverbindung muss CREATE VIEW-Berechtigungen haben
Wenn Sie eine Ansicht in Ihrer Datenbank erstellen möchten, 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 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 wenn PDTs für die Verbindung aktiviert sind, testet Looker die Verbindung, um zu prüfen, ob stabile Ansichten zulässig sind:
- Wenn die Verbindung stabile Ansichten zulässt, 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"zurück, zusammen mit weiteren Details wieCREATE VIEW command denied to user 'docsexamples'.
Dialektunterstützung für stabile Datenbankansichten
Die Möglichkeit, eine stabile Datenbankansicht für eine persistente Tabelle zu erstellen, hängt vom Datenbankdialekt ab, den Ihre Looker-Verbindung verwendet. In der neuesten 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 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 |