Nutzung
derived_table: customer_order_facts {
sql_create: {
SQL statement ;;
}
}
|
Hierarchie
sql_create |
Standardwert
Keine
Akzeptiert
Eine SQL-Anweisung
|
Definition
Mit sql_create können benutzerdefinierte DDL-Befehle (Data Definition Language) zum Erstellen von persistenten abgeleiteten Tabellen (PDTs) verwendet werden. sql_create gibt eine Anweisung ohne die übliche Fehlerprüfung von Looker aus. Die einzige Voraussetzung ist, dass durch die Anweisung eine PDT erstellt und ausgeführt wird. So können Sie beispielsweise PDTs erstellen, die die Modelle für maschinelles Lernen von BigQuery ML unterstützen.
Für PDTs, die mit sql_create definiert sind, können Sie keinen der folgenden Parameter verwenden:
Beispiele
Erstellen Sie einen PDT für BigQuery ML-Abfragen, mit denen die Wahrscheinlichkeit zukünftiger Käufe vorhergesagt wird:
view: future_purchase_model {
derived_table: {
datagroup_trigger: bqml_datagroup
sql_create:
CREATE OR REPLACE MODEL ${SQL_TABLE_NAME}
OPTIONS(model_type='logistic_reg'
, labels=['will_purchase_in_future']
, min_rel_progress = 0.005
, max_iterations = 40
) AS
SELECT
* EXCEPT(fullVisitorId, visitId)
FROM ${training_input.SQL_TABLE_NAME};;
}
}
Wichtige Punkte
Substitutionsoperator ${SQL_TABLE_NAME}
Mit dem Substitutionsoperator ${SQL_TABLE_NAME} können Sie den berechneten Namen der erstellten PDT einfügen. So wird sichergestellt, dass die SQL-Anweisung den im LookML-Parameter view angegebenen Namen des persistenten abgeleiteten Tabellen richtig enthält.
sql_createmuss eine Tabelle mit dem Namen erstellen, der durch den Substitutionsoperator${SQL_TABLE_NAME}angegeben wird. Andernfalls wird sie bei jedem Triggerprüfintervall, das in der Einstellung PDT and Datagroup Maintenance Schedule einer Verbindung angegeben ist, von Grund auf neu erstellt (die Standardeinstellung ist fünf Minuten). Dies kann zu unerwartetem Abfragetraffic in Ihrer Datenbank oder Ihrem Data Warehouse führen.
create_process verwenden, um eine PDT in mehreren Schritten zu erstellen
Wenn für Ihren Datenbankdialekt benutzerdefinierte DDL-Befehle erforderlich sind und Sie mehrere Befehle zum Erstellen einer PDT ausgeben möchten, können Sie create_process verwenden, um mehrere benutzerdefinierte DDL-Befehle in einer bestimmten Reihenfolge auszugeben.
Tabellen, die mit sql_create definiert sind, können nicht für inkrementelle PDTs verwendet werden.
Damit eine SQL-basierte PDT als inkrementelle PDT verwendet werden kann, muss für sie eine Abfrage mit dem Parameter sql definiert sein. SQL-basierte PDTs, die mit dem Parameter sql_create oder dem Parameter create_process definiert werden, können nicht inkrementell erstellt werden.
Das liegt daran, dass Looker einen INSERT- oder MERGE-Befehl verwendet, um die Inkremente für eine inkrementelle PDT zu erstellen. Die abgeleitete Tabelle kann nicht über benutzerdefinierte Datendefinitionssprache (DDL)-Anweisungen definiert werden, da Looker nicht in der Lage wäre zu bestimmen, welche DDL-Anweisungen für das Erstellen eines akkuraten Inkrements erforderlich wären.