O validador SQL de integração contínua (CI) verifica se as dimensões nas análises detalhadas são executadas corretamente no seu banco de dados. Para fazer isso, o Validador de SQL executa uma série de consultas nas análises do seu projeto do LookML.
Por padrão, o validador SQL realiza as seguintes tarefas:
- Para cada Análise no seu projeto, o validador SQL executa uma consulta que inclui todas as dimensões.
- Se o Looker retornar um erro na consulta de análise, o validador de SQL vai executar uma consulta de análise separada para cada dimensão na análise.
Se você não quiser que o Validador SQL teste todas as dimensões em todas as Análises detalhadas, faça uma ou mais das seguintes ações:
- Configure o validador SQL para consultar apenas determinadas análises detalhadas.
- Configure o validador SQL para excluir determinadas análises detalhadas.
- Configure o validador SQL para ignorar as dimensões do LookML definidas com
hidden: yes
. - Adicione um comentário ou tag
ci: ignore
ao LookML de uma dimensão para impedir que o Validador de SQL inclua a dimensão em qualquer uma das consultas de análise.
Consulte a seção Opções do validador SQL desta página para saber mais sobre as opções que podem ser configuradas ao criar ou editar um conjunto de CI. Para informações sobre como executar o validador SQL, 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 SQL, categorizado por dimensão e Análise detalhada, com um link para o LookML problemático e um link de Análise detalhada a partir daqui para depuração:
Consumo de recursos
O validador SQL foi projetado para consumir o menor número 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 consulta no seu data warehouse a não processar dados, mas a verificar a validade do SQL.
No BigQuery, por exemplo, esse tipo de consulta é semelhante a um teste de execução. No BigQuery, as consultas LIMIT 0
não verificam dados. Portanto, você não vai receber cobranças pelas consultas executadas pelo validador SQL.
Excluir dimensões da validação SQL
Talvez você queira excluir determinadas dimensões da validação do SQL, como as que dependem de um parâmetro, já que o valor do parâmetro será nulo durante a validação e sempre causará um erro SQL.
Você também pode excluir dimensões que não têm um parâmetro sql
, como as dimensões de type: distance
, type: location
ou type: duration
.
Para excluir uma dimensão da validação SQL, é possível modificar o LookML dela de duas maneiras:
É possível adicionar uma instrução
ci: ignore
no parâmetrotags
da definição do 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 camposql
do LookML da sua dimensão, conforme 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 pacote de integração contínua para configurar como o validador SQL é executado. As opções são descritas nas seções a seguir:
- Análises para consulta
- Análises para excluir
- Testagem intensiva
- Ignorar itens ocultos
- Simultaneidade de consultas
- Validação incremental
Análises para consulta
Por padrão, o Validador de SQL executa a validação do SQL em todos os modelos e análises no seu projeto do LookML.
Use o campo Análises para consulta para especificar as análises 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 de modelo sem a extensão.model.lkml
. Por exemplo, para especificar o modelo definido emthelook.model.lkml
, insirathelook
. - Para
explore_name
, use oexplore_name
do parâmetroexplore
do LookML. Por exemplo, para especificar a Análise definida comoexplore: users
no seu projeto do LookML, insirausers
. - Você pode criar uma lista separada por vírgulas para especificar várias análises detalhadas.
- É possível usar o caractere curinga
*
emmodel_name
ouexplore_name
.
Veja alguns exemplos:
Para especificar apenas a análise detalhada Usuários definida com
explore: users
no arquivothelook.model.lkml
, insira o seguinte:thelook/users
Para especificar as análises detalhadas com os nomes
users
eorders
no arquivothelook.model.lkml
, insira o seguinte:thelook/users, thelook/orders
Para especificar todas as análises em
thelook.model.lkml
, insira o seguinte:thelook/*
Para especificar todas as análises detalhadas com o nome
users
em todos os modelos do projeto, insira o seguinte:*/users
Análises para excluir
Por padrão, o Validador de SQL executa a validação do 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 SQL.
É possível especificar as análises detalhadas 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 SQL.
Testagem intensiva
Por padrão, o Validador de SQL executa uma consulta por Análise detalhada com todas as dimensões na consulta. Se essa consulta falhar, o validador SQL vai fazer uma consulta para cada dimensão da Análise detalhada individualmente.
Para uma validação mais rápida, ative a opção Fail fast para que o validador SQL execute apenas a consulta inicial de uma análise detalhada, que contém todas as dimensões de uma só vez. Se a consulta retornar um erro, o validador SQL vai mostrar esse erro nos resultados da execução de CI e passar para a próxima Análise detalhada que está sendo validada.
Com a opção Fail fast 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 detalhada, mesmo que várias dimensões tenham erros. Isso significa que, depois de corrigir o primeiro erro, a próxima execução do validador SQL pode mostrar outro erro.
Ignorar itens ocultos
Ative o campo Ignorar oculto se quiser que o validador SQL ignore as dimensões do LookML que os desenvolvedores do Looker definiram com hidden: yes
. O validador SQL deixa essas dimensões de fora das consultas do recurso Análises durante a validação.
Simultaneidade de consultas
Por padrão, o validador SQL não executa mais de 10 consultas por vez para evitar sobrecarregar a 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 consulta é limitado à configuração Número máximo de consultas simultâneas para esta conexão na conexão do 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 de encontrar erros exclusivos de uma ramificação de desenvolvimento específica, erros que ainda não existem na 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 recurso "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 SQL 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 tinha alterações no SQL compilado na ramificação ou confirmação que está sendo validada. Consulte Como conferir os resultados da validação incremental para conferir um exemplo de resultados de validação incremental.
Para ativar a validação incremental do validador SQL, marque a caixa de seleção Only incremental errors na seção SQL Validator 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 SQL está validando a própria ramificação de produção, como em execuções manuais na ramificação de produção. Ao validar a ramificação de produção, o validador SQL executa uma validação completa.
- O modo falha rápida não é compatível com execuções de validação incremental, já que consultas de dimensão individuais são necessárias para expor os erros incrementais específicos de um ramo de desenvolvimento do projeto.