sql_create

Nutzung

abgeleitete Tabelle: customer_order_facts {
sql_create: {
SQL-Anweisung ;;

}
}
Hierarchie
sql_create
Standardwert
Keine

Akzeptiert
Eine SQL-Anweisung

Definition

sql_create aktiviert benutzerdefinierte DDL-Befehle (Data Definition Language, Datendefinitionssprache) zum Erstellen von persistenten abgeleiteten Tabellen. sql_create gibt in der vorliegenden Form eine Anweisung ohne die übliche Fehlerprüfung von Looker aus. Die einzige Anforderung besteht darin, dass die Anweisung zur Erstellung und Ausführung einer PDT führt. So können Sie beispielsweise PDTs erstellen, die die BigQuery ML-Modelle für maschinelles Lernen unterstützen.

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

  • indexes
  • cluster_keys
  • distribution
  • distribution_style
  • partition_keys
  • sortkeys
  • Beispiele

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

    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

    ${SQL_TABLE_NAME}-Substitutionsoperator

    Mit dem Substitutionsoperator ${SQL_TABLE_NAME} können Sie den berechneten Namen der zu erstellenden PDT ersetzen. Dadurch wird sichergestellt, dass die SQL-Anweisung den PDT-Namen, der im LookML-Parameter view angegeben ist, korrekt enthält.

    sql_create muss eine Tabelle mit dem vom Substitutionsoperator ${SQL_TABLE_NAME} angegebenen Namen erstellen. Andernfalls wird er bei jedem Triggerprüfintervall, der in der Einstellung PDT und Datagroup-Wartungsplan einer Verbindung angegeben ist, neu erstellt. Der Standardwert ist fünf Minuten. Das kann zu unerwartetem Abfragetraffic in Ihrer Datenbank oder Ihrem Data Warehouse führen.

    Mit create_process in mehreren Schritten eine PDT erstellen

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

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

    Um als inkrementeller PDT verwendet zu werden, muss bei einem SQL-basierten PDT eine Abfrage mit dem Parameter sql definiert sein. SQL-basierte PDTs, die mit dem Parameter sql_create oder create_process definiert sind, können nicht inkrementell erstellt werden.

    Dies liegt daran, dass Looker einen INSERT- oder MERGE-Befehl verwendet, um die Inkremente für einen inkrementellen PDT zu erstellen. Die abgeleitete Tabelle kann nicht mit benutzerdefinierten DDL-Anweisungen (Data Definition Language) definiert werden, da Looker nicht ermitteln kann, welche DDL-Anweisungen zum Erstellen eines genauen Schritts erforderlich wären.