Uso
derived_table: customer_order_facts {
sql_create: {
SQL statement ;;
}
}
|
Hierarquia
sql_create |
Valor padrão
Nenhum
Aceita
Uma instrução SQL
|
Definição
O sql_create permite comandos personalizados da linguagem de definição de dados (DDL) para criar tabelas derivadas persistentes (PDTs). sql_create vai emitir uma instrução como está, sem a verificação de erros comum do Looker. O único requisito é que a instrução resulte na criação e execução de uma PDT. Isso permite, por exemplo, criar PDTs que oferecem suporte aos modelos de machine learning do BigQuery ML do Google.
Para PDTs definidas usando
sql_create, não é possível usar nenhum dos seguintes parâmetros:indexescluster_keysdistributiondistribution_stylepartition_keyssortkeys
Exemplos
Crie uma PDT para consultas do BigQuery ML que preveem a probabilidade 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};;
}
}
Informações importantes
Operador de substituição ${SQL_TABLE_NAME}
Você pode usar o operador de substituição ${SQL_TABLE_NAME} para substituir o nome calculado da PDT que está sendo criada. Isso garante que a instrução SQL inclua corretamente o nome da PDT fornecido no parâmetro view da LookML.
O
sql_createprecisa criar uma tabela com o nome indicado pelo operador de substituição${SQL_TABLE_NAME}. Caso contrário, ela será recriada do zero a cada intervalo de verificação de acionamento especificado na configuração Programação de manutenção de PDT e grupo de dados de uma conexão. O padrão é de cinco minutos. Isso pode causar um tráfego de consultas inesperado no seu banco de dados ou data warehouse.
Usar create_process para criar uma PDT em várias etapas
Se o dialeto do seu banco de dados exigir comandos DDL personalizados e você quiser emitir vários comandos para criar uma 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 uma PDT incremental, uma PDT baseada em SQL precisa ter uma consulta definida usando o parâmetro sql. PDTs baseadas em SQL definidas com o parâmetro sql_create ou create_process não podem ser criadas de forma incremental.
Isso acontece porque o Looker usa um comando INSERT ou MERGE para criar os incrementos de uma PDT incremental. A tabela derivada não pode ser definida usando instruções personalizadas de linguagem de definição de dados (DDL), porque o Looker não conseguiria determinar quais instruções DDL seriam necessárias para criar um incremento preciso.