Uso
sql_create: {
instrucción de SQL ;;
}
}
Jerarquía
sql_create |
Valor predeterminado
NingunaAcepta
Una instrucción de SQL
|
Definición
sql_create
habilita los comandos personalizados del lenguaje de definición de datos (DDL) para compilar tablas derivadas persistentes (PDT). sql_create
emitirá una declaración tal como está, sin la verificación de errores habitual de Looker. El único requisito es que la declaración genere la creación y la ejecución de un PDT. Esto le permite, por ejemplo, crear PDT que admitan los modelos de aprendizaje automático de BigQuery ML de Google.
Para los PDT definidos con
sql_create
, no puedes usar ninguno de los siguientes parámetros:indexes
cluster_keys
distribution
distribution_style
partition_keys
sortkeys
Ejemplos
Crear un PDT para consultas de AA de BigQuery que prediga la probabilidad de compras futuras:
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};;
}
}
Aspectos para tener en cuenta
Operador de sustitución de ${SQL_TABLE_NAME}
Puedes usar el operador de sustitución ${SQL_TABLE_NAME}
para reemplazar el nombre calculado del PDT que se crea. Esto garantiza que la instrucción de SQL incluya correctamente el nombre PDT proporcionado en el parámetro view
de LookML.
sql_create
debe crear una tabla con el nombre que indica el operador de sustitución${SQL_TABLE_NAME}
, o se volverá a compilar desde cero en cada intervalo de verificación que se especifique en la configuración de PDT y Programa de mantenimiento de grupos de datos de la conexión (el valor predeterminado es de cinco minutos). Esto puede generar tráfico de consultas inesperado en tu base de datos o almacén de datos.
Usa create_process
para crear un PDT en varios pasos
Si el dialecto de tu base de datos requiere comandos de DDL personalizados y quieres emitir varios comandos para crear un PDT, puedes usar create_process
para emitir varios comandos en un orden específico.
Las tablas definidas con sql_create
no se pueden usar para los PDT incrementales.
Para usarse como un PDT incremental, un PDT basado en SQL debe tener una consulta definida con el parámetro sql
. Los PDT basados en SQL que se definen con el parámetro sql_create
o el parámetro create_process
no se pueden compilar de forma incremental.
Esto se debe a que Looker usa un comando INSERT o MERGE para crear los incrementos de un PDT incremental. La tabla derivada no se puede definir mediante declaraciones personalizadas del lenguaje de definición de datos (DDL), ya que Looker no podría determinar qué declaraciones DDL se requerirían para crear un incremento preciso.