Validação de SQL de integração contínua

O validador de SQL de integração contínua (IC) verifica se as dimensões nas suas explorações são executadas corretamente na sua base de dados. Para tal, a Validação de SQL executa uma série de consultas nas explorações no seu projeto do LookML.

Por predefinição, a validação de SQL executa as seguintes tarefas:

  1. Para cada elemento Explorar no seu projeto, a Validação de SQL executa uma consulta do elemento Explorar que inclui todas as dimensões no elemento Explorar.
  2. Se o Looker devolver um erro para a consulta do elemento Explorar, o validador de SQL executa uma consulta do elemento Explorar separada para cada dimensão no elemento Explorar.

Se não quiser que a validação de SQL teste todas as dimensões em todas as explorações, pode, opcionalmente, fazer uma ou mais das seguintes ações:

Consulte a secção Opções do validador de SQL desta página para ver detalhes sobre as opções que pode configurar quando cria ou edita um conjunto de CI. Para obter informações sobre a execução da validação de SQL, consulte a página de documentação Executar conjuntos de integração contínua.

Na página de resultados da execução, o validador de SQL mostra cada erro de SQL, categorizado por dimensão e Explorar, com um link para o LookML problemático e um link Explorar a partir daqui para depuração:

Página de resultados da integração contínua a mostrar as conclusões da validação de SQL

Consumo de recursos

A validação de SQL foi concebida para consumir o menor número de recursos no Looker e no seu armazém de dados. Todas as consultas da Validação de SQL incluem uma cláusula LIMIT 0 e WHERE 1=2. Estas cláusulas indicam efetivamente ao planeador de consultas no seu armazém de dados que não processe dados, mas que verifique a validade do SQL.

Com o BigQuery, por exemplo, este tipo de consulta é semelhante à execução de uma consulta de teste no BigQuery. Para o BigQuery, as consultas LIMIT 0 não analisam os dados, pelo que não lhe é cobrado nada pelas consultas que o validador de SQL executa.

Exclua dimensões da validação de SQL

Pode querer excluir determinadas dimensões da validação de SQL, como dimensões que dependem de um parâmetro, uma vez que o valor do parâmetro será nulo durante a validação e causará sempre um erro de SQL.

Também pode excluir dimensões que não tenham um parâmetro sql, como dimensões de type: distance, type: location ou type: duration.

Para excluir uma dimensão da validação de SQL, pode modificar o LookML da dimensão de uma das duas formas seguintes:

  • Pode adicionar uma declaração ci: ignore no parâmetro tags da definição LookML da dimensão, conforme mostrado no exemplo seguinte:

    dimension: addresses {
      sql: ${TABLE}.addresses ;;
      tags: ["ci: ignore"]
    }
    
  • Pode adicionar o comentário -- ci: ignore ao campo sql do LookML da sua dimensão, conforme mostrado no exemplo seguinte:

    dimension: addresses {
      sql:
        -- ci: ignore
        ${TABLE}.addresses ;;
    }
    

Opções de validação de SQL

Pode especificar várias opções quando cria ou edita um conjunto de integração contínua para configurar a forma como o validador de SQL é executado. As opções estão descritas nas seguintes secções desta página:

Explorações a consultar

Por predefinição, a validação de SQL executa a validação de SQL em todos os modelos e explorações no seu projeto do LookML.

Pode usar o campo Explorações para consultar para especificar as explorações e os modelos que quer incluir na validação de SQL.

Pode especificar as explorações no seguinte formato: model_name/explore_name

Tenha em conta o seguinte:

  • Para model_name, use o nome do ficheiro do modelo sem a extensão .model.lkml. Por exemplo, para especificar o modelo definido em thelook.model.lkml, introduziria thelook.
  • Para explore_name, use o explore_name do parâmetro LookML explore. Por exemplo, para especificar a exploração definida como explore: users no seu projeto LookML, introduziria users.
  • Pode criar uma lista separada por vírgulas para especificar várias explorações.
  • Pode usar o caráter universal * em model_name ou explore_name.

Seguem-se alguns exemplos:

  • Para especificar apenas a exploração Utilizadores definida com explore: users no ficheiro thelook.model.lkml, introduziria o seguinte:

    thelook/users
    
  • Para especificar as explorações com os nomes users e orders no ficheiro thelook.model.lkml, introduziria o seguinte:

    thelook/users, thelook/orders
    
  • Para especificar todas as explorações em thelook.model.lkml, introduziria o seguinte:

    thelook/*
    
  • Para especificar todos os elementos Explorar denominados users em todos os modelos no seu projeto, introduziria o seguinte:

    */users
    

Explorações a excluir

Por predefinição, a validação de SQL executa a validação de SQL em todos os modelos e explorações no seu projeto do LookML.

Pode usar o campo Explorações a excluir para especificar as explorações e os modelos que quer excluir da validação de SQL.

Pode especificar as explorações no seguinte formato: model_name/explore_name

Consulte a secção Explores a consultar para ver mais informações sobre como especificar Explores para o validador de SQL.

Sistema de falha rápida

Por predefinição, a Validação de SQL executa uma consulta por elemento Explorar com todas as dimensões na consulta. Se essa consulta do elemento Explorar falhar, o validador de SQL faz uma consulta do elemento Explorar para cada dimensão no elemento Explorar individualmente.

Para uma validação mais rápida, pode ativar a opção Falhar rapidamente para que o validador de SQL execute apenas a consulta inicial de um elemento Explorar, ou seja, a consulta que contém todas as dimensões de uma só vez. Se essa consulta devolver um erro, o validador de SQL apresenta esse erro nos resultados da execução de CI e avança para o próximo elemento Explorar a ser validado.

Com a opção Falhar rapidamente ativada, a validação é normalmente concluída mais rapidamente. No entanto, os resultados do validador de SQL mostram apenas o primeiro erro de cada elemento Explorar, mesmo que várias dimensões possam ter erros. Isto significa que, depois de corrigir o primeiro erro, a execução seguinte do validador de SQL pode apresentar um erro adicional.

Ignorar ocultas

Ative o campo Ignorar oculto se quiser que o validador de SQL ignore as dimensões do LookML que os programadores do Looker definiram com hidden: yes. A Validação de SQL exclui estas dimensões das respetivas consultas de exploração durante a validação.

Simultaneidade de consultas

Por predefinição, a Validação de SQL executa no máximo 10 consultas de cada vez para evitar sobrecarregar a instância do Looker. Pode usar o campo Simultaneidade de consultas para especificar um número máximo diferente de consultas que a Validação de SQL pode executar em simultâneo.

O valor máximo do campo Concorrência de consultas está limitado à definição Consultas simultâneas máximas para esta ligação na ligação da base de dados.

Se notar uma diminuição da velocidade na sua instância do Looker durante a execução da validação de SQL, pode diminuir este valor.

Validação incremental

A validação incremental é um método de deteção de erros exclusivos de um ramo de desenvolvimento específico, ou seja, erros que ainda não existem em produção. A validação incremental ajuda os programadores a encontrar e corrigir os erros pelos quais são responsáveis sem se distraírem com os erros existentes no projeto. Também pode tornar a validação mais rápida, especialmente para projetos LookML que contêm muitos elementos Explorar.

Para a validação incremental, a Validação de SQL executa apenas as consultas de exploração que foram alteradas entre uma versão de desenvolvimento (a referência base) e a versão de produção (a referência de destino). A Validação de SQL devolve apenas os erros exclusivos da versão de desenvolvimento, mesmo que a versão de produção tenha erros.

Nos resultados da validação, a Validação de SQL indica cada exploração que foi ignorada porque não teve alterações ao respetivo SQL compilado na ramificação ou na confirmação que está a ser validada. Consulte o artigo Ver resultados da validação incremental para ver um exemplo de resultados da validação incremental.

Pode ativar a validação incremental para o validador de SQL ativando a caixa de verificação Apenas erros incrementais na secção Validador de SQL quando cria ou edita um conjunto de integração contínua.

Tenha em atenção o seguinte para a validação incremental:

  • A definição de validação incremental não se aplica quando a validação de SQL está a validar o próprio ramo de produção, como com execuções manuais no ramo de produção. Quando validar o ramo de produção, a Validação de SQL executa uma validação completa.
  • O modo de falha rápida não é suportado para execuções de validação incremental, uma vez que são necessárias consultas de dimensões individuais para expor os erros incrementais específicos de um ramo de desenvolvimento do projeto.