Uso
explore_source: pedidos {
coluna: total_revenue {
field
Hierarquia
test - ou - test - ou - test |
Valor padrão
NenhumaAceita
O identificador do teste de dados, além de subparâmetros que definem as declarações e consultas do teste.
|
Definição
Consulte o tópico Comunidades de teste de dados do LookML: recomendações e práticas recomendadas para mais dicas e informações sobre testes de dados.
O Looker tem o validador LookML para verificar se o código LookML é válido e o Content Validator, que verifica referências de objetos entre o conteúdo e o modelo.
Além desses validadores, o parâmetro test
permite validar a lógica do modelo. Para cada teste de dados, você cria uma consulta e uma instrução de declaração yesno
. O teste de dados executa a consulta de teste e verifica se a declaração é verdadeira para cada linha da consulta de teste. Se a instrução de declaração retornar yes
para cada linha da consulta de teste, o teste de dados vai ser aprovado.
Se as configurações do projeto estiverem definidas para exigir que os testes de dados sejam aprovados antes da implantação na produção, o ambiente de desenvolvimento integrado vai apresentar o botão Executar testes depois de confirmar as mudanças no projeto. Os desenvolvedores do LookML precisam executar os testes de dados antes de implantar mudanças na produção.
Independentemente de o projeto exigir testes de dados antes da implantação na produção, um desenvolvedor do LookML no Modo de desenvolvimento pode executar testes de dados a qualquer momento para verificar a lógica do modelo.
É possível criar testes de dados em arquivos de modelo, arquivos de visualização ou arquivos de teste de dados dedicados e separados. Ao usar um arquivo dedicado para hospedar seus testes de dados, lembre-se de include
usar o arquivo de teste de dados em qualquer arquivo de modelo ou de visualização em que você queira executar os testes de dados.
Um teste de dados não pode ter o mesmo nome e
explore_source
de outro teste de dados no mesmo projeto. Se você estiver usando o mesmoexplore_source
para vários testes de dados no projeto, verifique se os nomes dos testes de dados são exclusivos.
O parâmetro test
tem os seguintes subparâmetros:
explore_source
: define a consulta a ser usada no teste de dados.assert
: define uma expressão do Looker que é executada em cada linha da consulta de teste para verificar os dados.
Depois de definir o LookML para seu teste, é possível executá-lo para verificar se o teste funciona corretamente e ver se a lógica do modelo é aprovada no teste. É necessário estar no Modo de desenvolvimento para executar testes de dados.
Há várias maneiras de iniciar testes de dados em um projeto:
- Se as configurações do projeto estiverem definidas para exigir que os testes de dados sejam aprovados antes de implantar os arquivos na produção, o ambiente de desenvolvimento integrado vai apresentar o botão Executar testes quando você confirmar mudanças no projeto. Isso executará todos os testes do seu projeto, independentemente de qual arquivo defina o teste. É preciso passar nos testes de dados antes de implantar as alterações na produção.
- Clique no botão Executar testes de dados no painel Integridade do projeto. Isso vai executar todos os testes de dados no projeto, independentemente de qual arquivo defina o teste.
- Selecione a opção Run LookML Tests no menu do arquivo. Isso vai executar apenas os testes definidos no arquivo atual.
Depois de executar os testes de dados, o painel Project Health vai mostrar o progresso e os resultados:
Você pode clicar no link Explorar consulta para abrir uma opção Explorar com a consulta definida no teste de dados.
explore_source
O parâmetro explore_source
em um teste de dados usa a mesma sintaxe e lógica do parâmetro explore_source
de uma tabela derivada. A única diferença é que o explore_source
do teste de dados não é compatível com os subparâmetros derived_column
, bind_filters
e bind_all_filters
.
Dica útil: uma maneira fácil de acessar o LookML
explore_source
é usar um Explore para criar sua consulta, selecionar Get LookML no menu de engrenagem do Explore e clicar na guia Derived Table para gerar o LookML para a consulta. Consulte nossa documentação sobre como criar tabelas derivadas nativas para mais informações.
Observe o seguinte para o explore_source
de um teste de dados:
A consulta
explore_source
de um teste de dados é uma consulta padrão do Looker, ou seja,a consultaexplore_source
do teste tem um limite de 5.000 linhas. Verifique se a consulta não ultrapassa 5.000 linhas para que você receba um conjunto completo de resultados a ser testado. É possível incorporar filtros ou classificação naexplore_source
para reduzir o número de linhas na consulta ou para colocar as linhas relevantes no topo da consulta.Um
explore
comextension: required
não pode ser usado comoexplore_source
para um teste de dados. O LookML Validator vai gerar um erro que não encontra oexplore_source
.
assert
O subparâmetro assert
define os critérios pelos quais o resultado da consulta explore_source
é considerado válido. O subparâmetro expression
aceita uma expressão Looker que resulta em um yesno
(booleano). Depois que a consulta explore_source
é executada, a expressão da declaração é avaliada para cada linha do conjunto de resultados da consulta. Se houver uma resposta no
para qualquer linha da consulta, o teste de dados falhará. Se a consulta tiver erros, o teste também falhará.
Um teste pode ter várias declarações assert
. Para que o teste seja aprovado, cada declaração precisa ser verdadeira para cada linha da consulta explore_source
.
Dica útil: use a caixa de diálogo cálculos da tabela para testar a sintaxe da expressão do Looker a ser usada no parâmetro
expression
do teste.
Para uso em testes de dados, os campos na expressão do Looker precisam ter o escopo completo, o que significa que eles são especificados no formato view_name.field_name
. Por exemplo, a expressão abaixo declara o campo como aircraft_engine_types.aircraft_engine_type_id
:
assert: engine_type_id_not_null {
expression: NOT is_null(${aircraft_engine_types.aircraft_engine_type_id}) ;;
}
Examples
Garantir que uma chave primária seja exclusiva
O teste de dados a seguir cria uma consulta a partir da exploração orders
e define um expression
para testar se os IDs de pedidos são únicos no conjunto de resultados. A consulta explore_source
cria uma contagem de linhas associadas a cada ID no banco de dados. Se o ID for exclusivo, o banco de dados deve ter apenas uma linha. Além disso, ela classifica a contagem e limita o resultado a uma linha, de modo que a resposta da consulta seja o ID com a maior contagem. Se algum ID tem uma contagem maior que 1, sabemos que há várias linhas para ele e, por isso, ele não é exclusivo. Se esse for o caso, o teste de dados vai falhar.
test: order_id_is_unique {
explore_source: orders {
column: id {}
column: count {}
sorts: [orders.count: desc]
limit: 1
}
assert: order_id_is_unique {
expression: ${orders.count} = 1 ;;
}
Como verificar um valor conhecido
No próximo teste de dados,garantimos que o valor da receita de 2017 seja sempre de US $626.000. Nesse conjunto de dados, há um valor conhecido que nunca deve mudar.
test: historic_revenue_is_accurate {
explore_source: orders {
column: total_revenue {
field: orders.total_revenue
}
filters: [orders.created_date: "2017"]
}
assert: revenue_is_expected_value {
expression: ${orders.total_revenue} = 626000 ;;
}
}
Confirmando que não há valores nulos
O próximo teste verifica se não há valores nulos nos dados. Esse explore_source
usa um sort
para garantir que os nulos sejam retornados na parte de cima da consulta. A classificação de valores nulos pode variar com base no seu dialeto. O teste abaixo usa desc: yes
como exemplo.
test: status_is_not_null {
explore_source: orders {
column: status {}
sorts: [orders.status: desc]
limit: 1
}
assert: status_is_not_null {
expression: NOT is_null(${orders.status}) ;;
}
}