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:indexescluster_keysdistributiondistribution_stylepartition_keyssortkeys
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_createdeve 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.