Por que há nulos na minha consulta secundária de resultados mesclados?

O Merged Results é um recurso conveniente para combinar dados de diferentes Explores de forma rápida e sem desenvolver no LookML. Os resultados mesclados executam efetivamente uma mesclagem à esquerda entre a consulta principal e as consultas secundárias. Isso significa que os nomes de campos, os valores correspondentes e a tabela de resultados finais dependem da correspondência dos dados das consultas secundárias com as principais.

Isso pode causar resultados inesperados quando você está fazendo mesclagens entre as Análises. A documentação dos resultados mesclados aborda algumas dessas condições,como:

No entanto, o que fazer quando espera que um valor de uma consulta secundária corresponda a um valor na consulta principal, mas o resultado final exibe valores nulos?

Esta página explica como resolver esse resultado inesperado.

Exemplo de caso de uso:

O exemplo de caso de uso a seguir é baseado em um conjunto de dados de e-commerce de amostra que contém informações sobre o usuário e o pedido. Neste exemplo, você quer mesclar uma consulta, uma contagem de usuários por cidade (Contagem de usuários agrupada por Cidade de usuários) com uma consulta secundária, uma contagem de pedidos (Contagem de pedidos) agrupados por Cidade dos usuários e Estado dos usuários:

Consulta principal

A consulta principal é Contagem de usuários agrupada por Cidade dos usuários:

Confira a tabela de dados dos resultados mesclados mostrando os resultados da consulta principal.

Consulta secundária

A consulta secundária é Contagem de pedidos agrupada por Cidade dos usuários e Estado dos usuários:

Confira a tabela de dados dos resultados combinados mostrando os resultados da consulta secundária.

A regra é definida para mesclar as duas consultas por Cidade dos usuários, o campo que ambas têm em comum. Dada a familiaridade com o conjunto de dados e o comportamento esperado dos resultados mesclados explicado pela documentação vinculada anteriormente, você sabe que, em cada linha, todas as cidades devem ser correspondidas com um estado e uma contagem de usuários. Você espera que os resultados combinados correspondam a todos os valores e não exibam valores nulos.

No entanto, resultados nulos. Mais da metade das cidades não corresponde a um estado ou uma contagem de pedidos:

Tabela de dados de resultados mesclados mostrando valores nulos para campos de consulta secundários.

Soluções

Não entre em pânico. Se você tiver certeza de que seus dados contêm valores correspondentes (tente executar uma consulta separada para confirmar se esse é o caso), existem várias soluções possíveis para corrigir esse resultado, incluindo:

  • Classifique cada consulta de origem da mesma maneira.
  • Aumentar o limite de linhas da consulta de origem.

Classificar cada consulta de origem da mesma forma

Como os resultados mesclados são baseados em Análises, que são limitadas a 500 linhas por padrão, às vezes os resultados da consulta que você está mesclando não são incluídos no resultado final.

Para corrigir isso, edite e classifique suas consultas de origem individuais para que correspondam melhor entre si. 

No exemplo de caso de uso, a consulta principal é classificada por Cidade dos usuários em ordem crescente. A consulta secundária não é. Para corresponder melhor aos resultados das duas consultas, você pode classificar a consulta secundária da mesma maneira que a principal. Neste caso, por Cidade dos usuários em ordem crescente.

Classificar a consulta secundária de forma semelhante à principal faz com que os resultados sejam mais precisos na mesclagem final:

Tabela de dados de resultados mesclados exibindo valores não nulos para campos de consulta principais e secundários.

Aumentar o limite de linhas da consulta de origem

Assim como na primeira solução descrita anteriormente, nulos inesperados podem ser causados pelos limites de linha definidos nas consultas de origem. Especificamente nesse caso, a consulta secundária (limitada pelo padrão de 500 linhas) não tem linhas suficientes para corresponder a todas as linhas geradas pela consulta principal, fazendo com que resultados nulos sejam exibidos na mesclagem final.

Para aumentar o número de linhas na consulta secundária para corresponder à consulta principal, aumente o limite de linhas da consulta secundária. Isso resulta em mais linhas possíveis para corresponder à consulta principal e menos valores nulos nas colunas da consulta secundária: 

Tabela de dados de resultados mesclados exibindo valores não nulos para campos de consulta principais e secundários.

Resumo

Quando você tiver resultados combinados inesperados, siga estas etapas para resolver problemas:

  1. Selecione a opção Limpar o cache e atualizar no menu de engrenagem "Explorar" para garantir que a consulta extraia os resultados mais atualizados.
  2. Confirme se há valores correspondentes entre as consultas de origem em que os nulos são exibidos, conforme descrito na seção E se uma consulta não tiver um valor de dados correspondente? da documentação de resultados mesclados.
  3. Classificar as consultas de origem para corresponder melhor entre si.
  4. Aumente o limite de linhas das consultas de origem além do padrão para expor mais linhas que possam ser correspondidas e mescladas.
  5. Se nenhuma das soluções discutidas aqui resolver o comportamento, fixe no código a lógica join no LookML para ter um resultado mais preciso, se possível.