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 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 SQL Validator 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 da Análise.
  2. Se o Looker retornar um erro para a consulta da Análise, o Validador de SQL vai executar uma consulta separada para cada dimensão na Análise.

Se você não quiser que o SQL Validator teste todas as dimensões em todas as Análises, faça o seguinte:

Consulte a seção Opções do SQL Validator desta página para saber mais sobre as opções que podem ser configuradas ao criar ou editar um pacote de CI. Para informações sobre como executar o SQL Validator, consulte a página de documentação Como 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, com um link para o LookML problemático e um link para a Análise para depuração:

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

Consumo de recursos

O validador de SQL foi projetado para consumir o mínimo de recursos no Looker e no 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 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 uma consulta de simulação 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 determinadas dimensões da validação de SQL, como aquelas que dependem de um parâmetro, já que o valor do parâmetro será nulo durante a validação e sempre causará um erro de SQL.

Também é possível excluir dimensões que não têm um parâmetro sql, como as de type: distance, type: location ou type: duration.

Para excluir uma dimensão da validação de SQL, modifique o LookML dela de uma destas duas maneiras:

  • É possível adicionar uma instrução ci: ignore no parâmetro tags da definição de LookML da dimensão, como mostrado no exemplo a seguir:

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

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

Integração contínua e conexões de banco de dados OAuth

Se o projeto do LookML usar uma conexão de banco de dados configurada para OAuth, os usuários da conta de serviço de CI automatizada não poderão concluir o fluxo interativo do OAuth necessário para autenticar no banco de dados. Isso faz com que o validador de SQL falhe com um erro OAuth log in required.

Para usar o Validador de SQL de integração contínua, implemente uma das seguintes soluções alternativas:

  • Configure a conexão do banco de dados para usar uma conta de serviço: mude a configuração de Autenticação da conexão do banco de dados para usar uma conta de serviço (como as Application Default Credentials) em vez do OAuth.
  • Use um modelo que não seja do OAuth para CI: crie um novo modelo do LookML que use uma conexão de banco de dados que não seja do OAuth e importe seus outros modelos para ele. Verifique se o usuário da CI do Looker tem acesso a esse novo modelo.

Opções do validador de SQL

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

Análises para consulta

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

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

É possível especificar as Análises 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 LookML explore. Por exemplo, para especificar a Análise definida como explore: users no seu projeto do LookML, insira users.
  • É possível criar uma lista separada por vírgulas para especificar várias análises.
  • É possível usar o caractere curinga * em model_name ou explore_name.

Veja alguns exemplos:

  • Para especificar apenas a Análise Users definida com explore: users no arquivo thelook.model.lkml, insira o seguinte:

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

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

    thelook/*
    
  • Para especificar cada análise chamada users em todos os modelos do seu projeto, insira o seguinte:

    */users
    

Análises para exclusão

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

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

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

Consulte a seção Análises para consulta para mais informações sobre como especificar Análises 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 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 Testagem Intensiva para que o validador de SQL execute apenas a consulta inicial de uma Análise, que contém todas as dimensões de uma só vez. Se essa consulta retornar um erro, o validador de SQL vai exibir esse erro nos resultados da execução de CI e passar para a próxima Análise que está sendo validada.

Com a opção Testagem Intensiva ativada, a validação geralmente é concluída mais rapidamente. No entanto, os resultados do validador de SQL vão mostrar apenas o primeiro erro de cada análise, mesmo que várias dimensões tenham erros. 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 ocultos se quiser que o validador de SQL ignore as dimensões do LookML que os desenvolvedores do Looker definiram com hidden: yes. O Validador de SQL vai deixar essas dimensões de fora das consultas de Análise 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 pela configuração Máximo de consultas simultâneas para esta conexão na sua conexão de banco de dados.

Se você notar uma lentidão na 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 os erros que já existem no projeto. Ela também pode acelerar a validação, especialmente para projetos do LookML que contêm muitas Análises.

Para validação incremental, o Validador de SQL executa apenas as consultas de Análise 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 SQL Validator retorna apenas os erros exclusivos da versão de desenvolvimento, mesmo que a versão de produção tenha erros.

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

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

Observe o seguinte para 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 de falha rápida não é compatível com execuções de validação incremental, já que as consultas de dimensão individuais são necessárias para expor os erros incrementais específicos de uma ramificação de desenvolvimento do projeto.