sql_create

Utilizzo

derived_table: customer_order_facts {
  sql_create: {
      SQL statement ;;
  }
}
Gerarchia
sql_create
Valore predefinito
Nessuno

Accetta
Un'istruzione SQL

Definizione

sql_create consente comandi DDL (Data Definition Language) personalizzati per la creazione di tabelle derivate permanenti (PDT). sql_create emetterà un'istruzione così com'è, senza il consueto controllo degli errori di Looker. L'unico requisito è che l'istruzione comporti la creazione e l'esecuzione di un PDT. In questo modo, ad esempio, puoi creare PDT che supportano i modelli di machine learning di Google BigQuery ML.

Per le PDT definite utilizzando sql_create, non puoi utilizzare nessuno dei seguenti parametri:

  • indexes
  • cluster_keys
  • distribution
  • distribution_style
  • partition_keys
  • sortkeys
  • Esempi

    Crea un PDT per le query BigQuery ML che prevedono la probabilità di acquisti futuri:

    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};;
      }
    }
    

    Aspetti da considerare

    Operatore di sostituzione ${SQL_TABLE_NAME}

    Puoi utilizzare l'operatore di sostituzione ${SQL_TABLE_NAME} per sostituire il nome calcolato del PDT in fase di creazione. In questo modo, l'istruzione SQL includerà correttamente il nome PDT specificato nel parametro view di LookML.

    sql_create deve creare una tabella con il nome indicato dall'operatore di sostituzione ${SQL_TABLE_NAME}, altrimenti verrà ricostruita da zero a ogni intervallo di controllo dei trigger specificato nell'impostazione Pianificazione manutenzione PDT e gruppi di dati di una connessione (il valore predefinito è cinque minuti). Ciò può causare un traffico di query imprevisto sul database o sul data warehouse.

    Utilizza create_process per creare una PDT in più passaggi

    Se il dialetto del database richiede comandi DDL personalizzati e vuoi eseguire più comandi per creare una tabella derivata persistente, puoi utilizzare create_process per eseguire più comandi DDL personalizzati in un ordine specifico.

    Le tabelle definite con sql_create non possono essere utilizzate per le PDT incrementali

    Per essere utilizzata come PDT incrementale, una PDT basata su SQL deve avere una query definita utilizzando il parametro sql. Le PDT basate su SQL definite con il parametro sql_create o il parametro create_process non possono essere create in modo incrementale.

    Questo perché Looker utilizza un comando INSERT o MERGE per creare gli incrementi per una PDT incrementale. La tabella derivata non può essere definita utilizzando istruzioni DDL (Data Definition Language) personalizzate, poiché Looker non sarebbe in grado di determinare quali istruzioni DDL sarebbero necessarie per creare un incremento accurato.