sql_create

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 aus, wie sie ist, ohne die übliche Fehlerprüfung von Looker. Die einzige Voraussetzung ist, dass durch die Anweisung ein 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 werden, können Sie keinen der folgenden Parameter verwenden:

  • indexes
  • cluster_keys
  • distribution
  • distribution_style
  • partition_keys
  • sortkeys
  • 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 der PDT-Name, der im LookML-Parameter view angegeben ist, korrekt in die SQL-Anweisung aufgenommen wird.

    sql_create muss eine Tabelle mit dem Namen erstellen, der durch den Ersetzungsoperator ${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 Abfrage-Traffic in Ihrer Datenbank oder Ihrem Data Warehouse führen.

    create_process zum Erstellen einer PDT in mehreren Schritten verwenden

    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 DDL-Anweisungen (Data Definition Language) 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.