sql_create

Uso

derived_table: customer_order_facts {
  sql_create: {
      SQL statement ;;
  }
}
Hierarquia
sql_create
Valor padrão
Nenhum

Aceita
Uma instrução SQL

Definição

sql_create ativa comandos personalizados de linguagem de definição de dados (DDL) para criar tabelas derivadas persistentes (PDTs). sql_create emitirá uma instrução no estado em que se encontra, sem a verificação de erros normal 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 Google BigQuery ML.

Para PDTs definidas com sql_create, não é possível usar nenhum dos seguintes parâmetros:

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}

É possível 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 do LookML.

sql_create precisa criar uma tabela com o nome indicado pelo operador de substituição ${SQL_TABLE_NAME} ou ela será recriada do zero em cada intervalo de verificação de gatilho 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 tráfego de consulta inesperado no banco de dados ou data warehouse.

Use create_process para criar uma 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 uma PDT, use create_process para emitir vários comandos DDL personalizados em uma ordem específica.

Não é possível usar tabelas definidas com sql_create 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. As PDTs baseadas em SQL definidas com o parâmetro sql_create ou o parâmetro create_process não podem ser criadas de forma incremental.

Isso ocorre 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.