Uso
sql_create: {
Instrução SQL ;;
}
}
Hierarquia
sql_create |
Valor padrão
NenhumaAceita
Uma instrução SQL
|
Definição
O sql_create
ativa comandos personalizados da Linguagem de definição de dados (DDL) para criar tabelas derivadas permanentes (PDTs, na sigla em inglês). O sql_create
emitirá uma instrução sem a verificação de erro comum do Looker. O único requisito é que a instrução resulte na criação e execução de um PDT. Isso permite, por exemplo, criar PDTs compatíveis com os modelos de machine learning do BigQuery ML.
Para PDTs definidos usando
sql_create
, não é possível usar nenhum dos parâmetros a seguir:indexes
cluster_keys
distribution
distribution_style
partition_keys
sortkeys
Examples
Crie um PDT para consultas do BigQuery ML que prevejam a probabilidade de futuras compras:
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};;
}
}
Considerações
Operador de substituição ${SQL_TABLE_NAME}
É possível usar o operador de substituição ${SQL_TABLE_NAME}
para substituir o nome calculado do PDT que está sendo criado. Isso garante que a instrução SQL inclua corretamente o nome PDT fornecido no parâmetro view
do LookML.
sql_create
precisa criar uma tabela com o nome indicado pelo operador de substituição${SQL_TABLE_NAME}
. Caso contrário, ela será recriada do zero em cada intervalo de verificação de acionador especificado na configuração PDT e programação de manutenção do grupo de dados (o padrão é cinco minutos). Isso pode causar tráfego inesperado de consultas no banco de dados ou no data warehouse.
Usar o create_process
para criar um PDT em várias etapas
Se o dialeto do banco de dados exigir comandos DDL personalizados, e você quiser emitir vários comandos para criar um PDT, use create_process
para emitir vários comandos DDL personalizados em uma ordem específica.
Tabelas definidas com sql_create
não podem ser usadas para PDTs incrementais
Para ser usada como um PDT incremental, um PDT baseado em SQL precisa ter uma consulta definida usando o parâmetro sql
. Os PDTs baseados em SQL definidos com o parâmetro sql_create
ou create_process
não podem ser criados de forma incremental.
Isso ocorre porque o Looker usa um comando INSERT ou Merge para criar os incrementos de um PDT incremental. A tabela derivada não pode ser definida usando instruções de linguagem de definição de dados (DDL, na sigla em inglês) personalizada, já que o Looker não consegue determinar quais instruções DDL seriam necessárias para criar um incremento preciso.