sql_create

Nutzung

derived_table: customer_order_facts {
  sql_create: {
      SQL statement ;;
  }
}
Hierarchie
sql_create
Standardwert
Keine

Akzeptiert
Eine SQL-Anweisung

Definition

sql_create ermöglicht benutzerdefinierte DDL-Befehle (Data Definition Language, Datendefinitionssprache) zum Erstellen von persistenten abgeleiteten Tabellen (PDTs). sql_create gibt eine Anweisung unverändert aus, ohne die übliche Fehlerprüfung von Looker. Die einzige Voraussetzung ist, dass die Anweisung zur Erstellung und Ausführung einer PDT führt. So können Sie beispielsweise PDTs erstellen, die die Modelle für maschinelles Lernen von Google BigQuery ML unterstützen.

Für PDTs, die mit sql_create definiert sind, können Sie keine der folgenden Parameter verwenden:

Beispiele

Erstellen Sie eine PDT für BigQuery ML-Abfragen, die die Wahrscheinlichkeit zukünftiger Käufe vorhersagen:

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 ersetzen. So wird sichergestellt, dass die SQL-Anweisung den PDT-Namen enthält, der im LookML-Parameter view angegeben ist.

sql_create muss eine Tabelle mit dem Namen erstellen, der durch den Substitutionsoperator ${SQL_TABLE_NAME} angegeben wird. Andernfalls wird sie bei jedem Triggerprüfungsintervall, das in der Einstellung PDT- und Datengruppen-Wartungszeitplan einer Verbindung angegeben ist, von Grund auf neu erstellt (Standardwert: fünf Minuten). Dies kann zu unerwartetem Abfragetraffic in Ihrer Datenbank oder Ihrem Data Warehouse führen.

Mit create_process eine PDT in mehreren Schritten erstellen

Wenn Ihr Datenbankdialekt benutzerdefinierte DDL-Befehle erfordert und Sie mehrere Befehle zum Erstellen einer PDT ausgeben möchten, können Sie mit create_process mehrere benutzerdefinierte DDL-Befehle in einer bestimmten Reihenfolge ausgeben.

Mit sql_create definierte Tabellen können nicht für inkrementelle PDTs verwendet werden

Damit eine SQL-basierte PDT als inkrementelle PDT verwendet werden kann, muss eine Abfrage mit dem Parameter sql definiert sein. SQL-basierte PDTs, die mit dem sql_create Parameter oder dem create_process Parameter definiert sind, können nicht inkrementell erstellt werden.

Looker verwendet einen INSERT- oder MERGE-Befehl, 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 Datendefinitionssprache (DDL)-Anweisungen für das Erstellen eines akkuraten Inkrements erforderlich wären.