Utilizzo
derived_table: customer_order_facts {
sql_create: {
SQL statement ;;
}
}
|
Gerarchia
sql_create |
Valore predefinito
Nessuno
Accetta
Un'istruzione SQL
|
Definizione
sql_create consente di utilizzare comandi DDL (Data Definition Language) personalizzati per creare 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 una PDT. In questo modo, ad esempio, puoi creare PDT che supportano i modelli di machine learning di Google BigQuery ML.
Per le PDT definite con sql_create, non puoi utilizzare nessuno dei seguenti parametri:
Esempi
Crea una 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 della PDT in fase di creazione. In questo modo, l'istruzione SQL includerà correttamente il nome della 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à ricreata da zero a ogni intervallo di controllo dei trigger specificato nell'impostazione PDT and Datagroup Maintenance Schedule (Pianificazione manutenzione PDT e gruppi di dati) di una connessione (il valore predefinito è di 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 emettere più comandi per creare una PDT, puoi utilizzare create_process per emettere 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.