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:
- 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.
- 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:
- Configure a Validação de SQL para consultar apenas determinadas explorações.
- Configure a validação de SQL para excluir determinadas explorações.
- Configure o validador de SQL para ignorar as dimensões do LookML definidas com
hidden: yes
. - Adicione um comentário
ci: ignore
ou uma etiqueta ao LookML de uma dimensão para impedir que a validação de SQL inclua a dimensão em qualquer uma das respetivas consultas de exploração.
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:
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âmetrotags
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 camposql
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:
- Explores a consultar
- Explores a excluir
- Falhar rapidamente
- Ignorar ocultas
- Simultaneidade de consultas
- Validação incremental
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 emthelook.model.lkml
, introduziriathelook
. - Para
explore_name
, use oexplore_name
do parâmetro LookMLexplore
. Por exemplo, para especificar a exploração definida comoexplore: users
no seu projeto LookML, introduziriausers
. - Pode criar uma lista separada por vírgulas para especificar várias explorações.
- Pode usar o caráter universal
*
emmodel_name
ouexplore_name
.
Seguem-se alguns exemplos:
Para especificar apenas a exploração Utilizadores definida com
explore: users
no ficheirothelook.model.lkml
, introduziria o seguinte:thelook/users
Para especificar as explorações com os nomes
users
eorders
no ficheirothelook.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.