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

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:

  • indexes
  • cluster_keys
  • distribution
  • distribution_style
  • partition_keys
  • sortkeys
  • 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_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 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.