Validador de SQL de integração contínua

O validador de SQL de integração contínua (CI) verifica se as dimensões nas suas análises detalhadas são executadas corretamente no banco de dados. Para isso, o Validador de SQL executa uma série de consultas nas Análises do seu projeto do LookML.

Por padrão, o validador de SQL realiza as seguintes tarefas:

  1. Para cada Análise no seu projeto, o validador de SQL executa uma consulta que inclui todas as dimensões.
  2. Se o Looker retornar um erro na consulta da análise, o validador de SQL vai executar uma consulta de análise separada para cada dimensão.

Se você não quiser que o validador de SQL teste todas as dimensões em todas as análises detalhadas, faça uma ou mais das seguintes ações:

Consulte a seção Opções do SQL Validator desta página para detalhes sobre as opções que podem ser configuradas ao criar ou editar um conjunto de CI. Para informações sobre como executar o validador de SQL, consulte a página de documentação Executar pacotes 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 análise detalhada, com um link para o LookML problemático e um link "Analisar detalhadamente daqui" para depuração:

Página de resultados da integração contínua mostrando descobertas do validador de SQL

Consumo de recursos

O validador de SQL foi projetado para consumir o mínimo de recursos no Looker e no seu data warehouse. Todas as consultas do Validador de SQL incluem uma cláusula LIMIT 0 e WHERE 1=2. Essas cláusulas instruem o planejador de consultas no seu data warehouse a não processar dados, mas a verificar a validade do SQL.

Com o BigQuery, por exemplo, esse tipo de consulta é semelhante a executar uma consulta de teste no BigQuery. No BigQuery, as consultas LIMIT 0 não verificam dados. Portanto, você não vai receber cobranças pelas consultas executadas pelo validador de SQL.

Excluir dimensões da validação de SQL

Talvez você queira excluir algumas dimensões da validação de SQL, como as que dependem de um parâmetro. Isso porque o valor do parâmetro será nulo durante a validação e sempre vai causar um erro de SQL.

Também é possível excluir dimensões que não têm 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, modifique a LookML dela de uma destas duas maneiras:

  • Você pode adicionar uma instrução ci: ignore no parâmetro tags da definição LookML da dimensão, conforme mostrado no exemplo a seguir:

    dimension: addresses {
      sql: ${TABLE}.addresses ;;
      tags: ["ci: ignore"]
    }
    
  • Você pode adicionar o comentário -- ci: ignore ao campo sql da LookML da sua dimensão, como mostrado no exemplo a seguir:

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

Opções do validador de SQL

É possível especificar várias opções ao criar ou editar um conjunto de integração contínua para configurar como o SQL Validator é executado. As opções são descritas nas seções a seguir desta página:

Análises para consulta

Por padrão, o validador de SQL executa a validação em todos os modelos e análises do seu projeto do LookML.

Use o campo Análises detalhadas para consultar e especifique as análises detalhadas e os modelos que você quer incluir na validação de SQL.

É possível especificar as análises detalhadas no seguinte formato: model_name/explore_name

Observe o seguinte:

  • Para model_name, use o nome do arquivo do modelo sem a extensão .model.lkml. Por exemplo, para especificar o modelo definido em thelook.model.lkml, insira thelook.
  • Para explore_name, use o explore_name do parâmetro explore do LookML. Por exemplo, para especificar a Análise definida como explore: users no projeto do LookML, insira users.
  • É possível criar uma lista separada por vírgulas para especificar várias análises detalhadas.
  • Você pode usar o caractere curinga * em model_name ou explore_name.

Veja alguns exemplos:

  • Para especificar apenas a análise detalhada Usuários definida com explore: users no arquivo thelook.model.lkml, insira o seguinte:

    thelook/users
    
  • Para especificar as análises detalhadas chamadas users e orders no arquivo thelook.model.lkml, insira o seguinte:

    thelook/users, thelook/orders
    
  • Para especificar todas as análises detalhadas em thelook.model.lkml, insira o seguinte:

    thelook/*
    
  • Para especificar todas as análises detalhadas chamadas users em todos os modelos do projeto, insira o seguinte:

    */users
    

Análises a serem excluídas

Por padrão, o validador de SQL executa a validação em todos os modelos e análises do seu projeto do LookML.

Use o campo Análises detalhadas a serem excluídas para especificar as análises detalhadas e os modelos que você quer excluir da validação de SQL.

É possível especificar as análises detalhadas no seguinte formato: model_name/explore_name

Consulte a seção Explorar para consultar para mais informações sobre como especificar as análises detalhadas para o validador de SQL.

Testagem intensiva

Por padrão, o Validador de SQL executa uma consulta por análise com todas as dimensões na consulta. Se essa consulta de análise falhar, o validador de SQL vai fazer uma consulta de análise para cada dimensão individualmente.

Para uma validação mais rápida, ative a opção Falhar rápido para que o validador de SQL execute apenas a consulta inicial de uma análise detalhada, que contém todas as dimensões de uma só vez. Se essa consulta retornar um erro, o validador de SQL vai mostrar o erro nos resultados da execução da CI e passar para a próxima análise detalhada a ser validada.

Com a opção Falhar rápido ativada, a validação geralmente é concluída mais rapidamente. No entanto, os resultados do validador de SQL mostram apenas o primeiro erro de cada análise, mesmo que várias dimensões tenham problemas. Isso significa que, depois de corrigir o primeiro erro, a próxima execução do validador de SQL pode mostrar outro erro.

Ignorar itens ocultos

Ative o campo Ignorar oculto se quiser que o validador de SQL ignore as dimensões da LookML definidas pelos desenvolvedores do Looker com hidden: yes. O validador de SQL vai deixar essas dimensões de fora das consultas de análise detalhada durante a validação.

Simultaneidade de consultas

Por padrão, o validador de SQL executa no máximo 10 consultas por vez para evitar sobrecarregar sua instância do Looker. Use o campo Simultaneidade de consultas para especificar um número máximo diferente de consultas que o Validador de SQL pode executar simultaneamente.

O valor máximo do campo Simultaneidade de consultas é limitado à configuração Número máximo de consultas simultâneas para esta conexão na conexão de banco de dados.

Se você notar uma lentidão na sua instância do Looker ao executar a validação do SQL, diminua esse valor.

Validação incremental

A validação incremental é um método para encontrar erros exclusivos de uma ramificação de desenvolvimento específica, erros que ainda não existem em produção. A validação incremental ajuda os desenvolvedores a encontrar e corrigir os erros de que são responsáveis sem se distrair com erros existentes no projeto. Ela também pode acelerar a validação, especialmente para projetos LookML que contêm muitas análises.

Para a validação incremental, o Validador de SQL executa apenas as consultas do Explorar que mudaram entre uma versão de desenvolvimento (a referência de base) e a versão de produção (a referência de destino). O validador de SQL retorna apenas os erros exclusivos da versão de desenvolvimento, mesmo que a versão de produção tenha erros.

Nos resultados da validação, o Validador de SQL indica cada análise detalhada que foi ignorada porque não teve mudanças no SQL compilado na ramificação ou no commit que está sendo validado. Consulte Como ver os resultados da validação incremental para um exemplo de resultados.

Para ativar a validação incremental no SQL Validator, marque a caixa de seleção Somente erros incrementais na seção SQL Validator ao criar ou editar um conjunto de integração contínua.

Observações sobre a validação incremental:

  • A configuração de validação incremental não se aplica quando o validador de SQL está validando a própria ramificação de produção, como acontece com as execuções manuais na ramificação de produção. Ao validar a ramificação de produção, o validador de SQL executa uma validação completa.
  • O modo Fail fast não é compatível com execuções de validação incremental, já que são necessárias consultas de dimensão individuais para expor os erros incrementais específicos de uma ramificação de desenvolvimento do projeto.