Página do Join

Na página "Join", você pode mesclar o conjunto de dados atual com outro conjunto ou receita com base em informações comuns a ambos. Por exemplo, mescle dois conjuntos de dados de vendas regionais com base nos identificadores de produto que ambos usam para rastrear vendas. No painel "Pesquisar", insira join datasets.

  • A operação join é padrão para mesclar os dados de dois conjuntos de dados diferentes. Algumas informações sobre essa operação são fornecidas abaixo.
  • Não é possível executar junções em colunas de tipo de dados Object ou Array.
  • Uma operação "join" é diferente de uma operação "union". Em uma operação union, os dados de um ou mais conjuntos de dados são anexados ao conjunto de dados atual, supondo que as colunas sejam idênticas ou muito semelhantes. Para ver mais informações, consulte a página União.

Dica: dependendo dos tipos de operações que você precisa executar, talvez seja necessário executar junções mais cedo ou mais tarde na sua receita. Para ver mais informações, consulte Otimizar o processamento de jobs.

OBSERVAÇÃO: as transformações desaninhar (unnest), união (union) ou junção (join) podem aumentar significativamente o número de linhas ou colunas no conjunto de dados. Para evitar sobrecarregar a memória do navegador, o aplicativo pode aplicar uma função limite aos resultados para restringir artificialmente o número de linhas exibidas na amostra. Se quiser, você poderá gerar uma nova amostra. Essa limitação não é aplicada durante a execução do job.

Antes de começar

  • Revise as contagens de registros. Antes de especificar a junção, revise as contagens de registros e a singularidade das chaves para ter uma ideia do número de registros que poderão ser exibidos na saída. Observe que o número de registros de saída depende do tipo de junção e das correspondências entre as chaves de junção.
  • Revise os valores de chaves de junção. Se houver variações nos valores das chaves de junção, você poderá ficar com registros duplicados no conjunto de dados mesclado. Procure valores incompatíveis ou ausentes nas chaves de junção e corrija-os, se possível.
  • Revise a granularidade dos dados. Se reunir dados com menor fidelidade do que a origem, você poderá ficar com correspondências de registros que não estão realmente combinando dados. Por exemplo, se os carimbos de data/hora forem amostrados de milissegundos a segundos como parte da junção, você poderá ter carimbos "correspondentes" em segundos que não correspondem no nível de milissegundos nos dados de origem.

Etapa 1: selecionar objetos para junção

Para a receita atual carregada na página "Transformer", você pode selecionar qualquer conjunto de dados importado, conjunto de dados de referência ou receita para juntar aos dados atualmente carregados.

Tipo de objeto de junçãoDescrição
Conjunto de dados importado

A junção é realizada na versão armazenada dos dados para qualquer conjunto de dados importado ao qual você tenha acesso. Se esses dados forem substituídos, os dados na operação serão alterados.

Conjunto de dados de referência

A junção é realizada em uma referência a uma receita em outro fluxo. Se a receita alterar o esquema dos dados, a operação será afetada por essas mudanças.

OBSERVAÇÃO: é preciso criar explicitamente referências no fluxo de origem a partir da receita de origem. Assim, o conjunto de dados de referência estará disponível para inclusão em outros fluxos.

Receita

Você pode fazer a junção com qualquer receita do seu fluxo atual.

Dica: sempre que possível, faça a junção com uma receita em vez de um conjunto de dados importado. Com uma receita, você pode mudar para uma amostra aleatória e depois usá-la na junção.

Na imagem a seguir, as colunas do conjunto de dados atual (dados de ponto de venda da região 1) são exibidas na coluna da esquerda. No lado direito, é possível selecionar o conjunto de dados importado, o conjunto de dados de referência ou a receita que você quer mesclar com o conjunto de dados atual. Nesse caso, o arquivo REF_PROD.txt foi selecionado, significando que a junção é realizada neste conjunto de dados importado:

Figura: página "Join"

  • Selecione o objeto da junção. Para selecionar as colunas (chaves) nas quais a junção se baseia e o tipo de junção, clique em Visualizar.

Etapa 2: especificar parâmetros de junção

Na visualização do novo conjunto de dados, é possível ver como os dois conjuntos foram mesclados. Por padrão, o Cloud Dataprep by TRIFACTA® tenta especificar as chaves a serem usadas para a mesclagem e o tipo de mesclagem a ser executada.

  • Em uma operação de junção, uma chave corresponde a uma coluna que pode ser usada para fazer a correspondência de registros entre conjuntos de dados. Por exemplo, em uma lista de produtos ou dados de vendas, é provável que a coluna de chave seja algum tipo de identificador interno do sistema, que é consistentemente usado em todos os conjuntos de dados relacionados.
  • Antes de aceitar a junção, verifique as chaves de junção selecionadas e o tipo de junção.
  • Pode ser necessário especificar as colunas a serem incluídas no conjunto de dados mesclado.
  • É possível alterar o objeto com que você está fazendo a junção do primeiro conjunto de dados, conforme necessário. Clique na guia "Data" e depois em Change Data.

Especificar chaves de junção

Para rever e modificar as colunas usadas como as chaves para a junção, clique na guia "Join Keys".

A imagem a seguir mostra a visualização da junção atualmente configurada. Foi determinado que o campo do número do item (Item_Nbr) dos dados da Região 1 e o campo do número do item (ITEM_NBR) de REF_PROD precisam ser usados como chaves para realizar a junção.

Figura: revise as chaves e o tipo de junção

Especificar outros parâmetros de junção

  1. Na lista suspensa, é possível selecionar o tipo de junção a ser aplicada. Para mais informações, veja "Tipos de junção", abaixo.
  2. Chaves de junção:
    1. Para fazer alterações nas duas chaves de junção, clique no ícone "Lápis".
      1. Na parte esquerda do painel, selecione o campo da origem 1 para usar como chave. À direita, selecione a origem 2.
      2. Para mais informações sobre as outras opções, veja "Junções difusas" abaixo.
      3. Para salvar as alterações, clique em OK.

    2. Para remover as duas colunas como chaves de junção, clique no ícone "Lixeira".

    3. Para adicionar mais chaves de junção, clique em Adicionar.

      OBSERVAÇÃO: tenha cuidado ao aplicar várias chaves de junção. Dependendo do tipo de junção, esse tipo de operação pode expandir o tamanho dos dados gerados.

  3. Verifique a lista de colunas disponíveis, exibidas para as duas origens.
    1. Os campos da origem 1 são listados depois das chaves atualmente selecionadas, seguidos dos campos da origem 2.
    2. Para modificar as configurações dessas colunas, clique em Editar configurações. Para mais informações, veja "Configurações das colunas de junção", abaixo.
    3. Use as caixas de seleção para selecionar as colunas a serem incluídas no conjunto de dados mesclado.
  4. Para adicionar a junção especificada ao seu conjunto de dados, clique em Add to Recipe. O conjunto de dados mesclado é exibido na página "Transformer".

Junções cruzadas

Uma cross join combina cada linha do primeiro conjunto de dados com cada linha do segundo, em que cada combinação é representada na saída. Como resultado, o número de linhas totais na junção é:

Rows(DatasetA) * Rows(DatasetB)

OBSERVAÇÃO: dependendo do tamanho dos seus conjuntos de dados, uma junção cruzada pode expandir consideravelmente o tamanho da saída, o que pode aumentar os custos em alguns ambientes.

Para especificar uma junção cruzada, exclua todas as chaves de junção.

Junções difusas

Por padrão, as correspondências entre as chaves de junção são executadas de maneira rigorosa entre os valores das chaves nas colunas selecionadas, com diferenciação entre maiúsculas e minúsculas. Em alguns casos, pode ser útil abrandar as condições em que as correspondências são encontradas.

Você pode selecionar as seguintes opções para executar junções mais difusas. Essas opções são aplicadas às colunas das chaves de junção nas duas origens para tentar encontrar correspondências. Após a execução da junção, nenhum dado em qualquer coluna é alterado com base nessas seleções.

OpçãoDescrição
Ignore CaseIgnora as diferenças de maiúsculas/minúsculas entre os valores das chaves de junção para fins de correspondência.
Ignore Special CharactersIgnora todos os caracteres que não sejam alfanuméricos, caracteres latinos acentuados ou espaços em branco antes de testar uma correspondência.
Ignore WhitespaceIgnora todos os caracteres de espaço em branco, incluindo espaços, tabulação, quebras de linha e novas linhas.

Junções com atualização automática

Depois de realizar a junção em outro conjunto de dados, as alterações subsequentes a esses dados são automaticamente refletidas na saída da junção.

OBSERVAÇÃO: após a adição da junção à receita, se a grade de dados estiver vazia, as chaves especificadas na junção poderão não ter uma correspondência na amostra atualmente selecionada. Revise as chaves usadas na junção. Se a junção ainda gerar uma grade vazia na nova amostra, colete uma nova amostra. Consulte o Painel de amostras.

Dica: se for necessário congelar os dados no conjunto de dados que você está mesclando, crie uma cópia do conjunto de dados como um instantâneo e mescle a cópia. Veja a página "Dataset Details".

Para realizar a junção da cópia, edite a junção e altere a origem dessa operação. Veja Corrigir problemas de dependência.

Configurações das colunas de junção

Na caixa de diálogo "Configurações das colunas de junção", é possível aplicar prefixos aos nomes das colunas, no conjunto de dados mesclado, o que pode ser útil para rastrear a origem de uma coluna em conjuntos de dados complexos. Por exemplo, é possível preceder cada coluna de um conjunto de dados chamado salesRegion01 com o prefixo: sR01.

  • Clique na caixa de seleção para atualizar dinamicamente as colunas selecionadas na página "Join", para sempre incluir todas as colunas do conjunto de dados.
  • Para salvar suas alterações, clique em OK.

Tipos de junção

São aceitos os tipos de junções a seguir. Por exemplo, as tabelas abaixo contêm informações sobre funcionários e departamentos.

Tabela "Employee":

NameDepartmentIDRole
Dave Smith001Product Marketing Manager
Julie Jones002Software Engineer
Scott Tanner001Director of Demand Gen
Ted Connors002Software Engineer
Margaret Lane001VP of Marketing
Mary Martin004Receptionist

Tabela "Department":

NameDepartmentID
Marketing001
Engineering002
Accounting003

No exemplo acima, DepartmentID é a chave a ser usada em ambas as tabelas para qualquer junção.

Junção Interna

Em uma inner join, é necessário que haja valores de chaves em ambas as tabelas para que os registros apareçam na tabela de resultados. Os registros aparecerão na mesclagem somente se houver correspondências em ambas as tabelas para os valores das chaves.

  • Se quiser incluir linhas contendo valores não correspondentes, use alguma forma de junção externa. Consulte a seguir.

Para as tabelas de exemplo anteriores, uma junção interna na tabela DepartmentID produz a seguinte tabela de resultados:

Funcionário.NomeFuncionário.DepartmentIDFuncionário.PapelDepartamento.NomeDepartamento.DepartmentID
Dave Smith001Product Marketing ManagerMarketing001
Julie Jones002Software EngineerEngineering002
Scott Tanner001Director of Demand GenMarketing001
Ted Connors002Software EngineerEngineering002
Margaret Lane001VP of MarketingMarketing001

Observações:

  • Todos os campos estão incluídos no conjunto de resultados mesclado. Os campos do primeiro conjunto de dados são listados primeiro.
  • A linha para Mary Martin foi excluída, já que não há referência na tabela "Department" para o identificador do departamento dela. A linha para "Accounting" foi excluída, já que não há referência na tabela "Employee" para o identificador do departamento.
    • Para incluir essas linhas, aumente os dados ou execute uma forma de junção externa.
  • Um valor nulo em uma tabela não corresponde a um valor nulo em outra. Assim, as linhas com valores nulos em uma chave de junção nunca são incluídas em uma junção interna. Corrija esses valores.

    Dica: uma junção interna pode ser usada para eliminar linhas com valores nulos nos campos das chaves.

Junção externa à esquerda

Em uma junção externa à esquerda (ou left join), não é necessário que haja registros correspondentes para cada valor no valor da chave da tabela de origem (esquerda). Cada linha na tabela à esquerda aparece nos resultados, independentemente de haver correspondências na tabela à direita.

Para as tabelas de exemplo anteriores, uma junção à esquerda na tabela DepartmentID produz a seguinte tabela de resultados:

Funcionário.NomeFuncionário.DepartmentIDFuncionário.PapelDepartamento.NomeDepartamento.DepartmentID
Dave Smith001Product Marketing ManagerMarketing001
Julie Jones002Software EngineerEngineering002
Scott Tanner001Director of Demand GenMarketing001
Ted Connors002Software EngineerEngineering002
Margaret Lane001VP of MarketingMarketing001
Mary Martin004ReceptionistNULLNULL

Observações:

  • Nesta junção à esquerda, a linha de Mary Martin foi adicionada ao resultado, já que seu registro na tabela "Employee" contém uma entrada para DepartmentID. No entanto, como não há valores correspondentes na tabela "Department", os campos correspondentes na tabela de resultados são valores NULL.

Junção externa à direita

Uma junção externa à direita (ou right join) é o inverso de uma junção à esquerda. Em junções desse tipo, não é necessário que haja registros correspondentes para cada valor no valor da chave da tabela secundária (direita). Cada linha na tabela à direita aparece nos resultados, independentemente de haver correspondências na tabela à esquerda.

Para as tabelas de exemplo anteriores, uma junção à direta na tabela DepartmentID produz a seguinte tabela de resultados:

Funcionário.NomeFuncionário.DepartmentIDFuncionário.PapelDepartamento.NomeDepartamento.DepartmentID
Dave Smith001Product Marketing ManagerMarketing001
Julie Jones002Software EngineerEngineering002
Scott Tanner001Director of Demand GenMarketing001
Ted Connors002Software EngineerEngineering002
Margaret Lane001VP of MarketingMarketing001
NULLNULLNULLAccounting003

Observações:

  • Nesta junção à direita, a entrada "Accounting" é adicionada. No entanto, como não há entrada na tabela "Employee" para o valor DepartmentID, esses campos são valores NULL no conjunto de resultados.

Junção externa completa

Uma full outer join combina os efeitos de uma junção à esquerda e uma à direta. Se houver uma correspondência entre os valores das chaves, uma linha será escrita no resultado.

  • Se não houver correspondência para um valor-chave que aparece em qualquer tabela, um único registro será gravado no resultado. Os valores NULL serão inseridos da outra tabela para os campos.
Funcionário.NomeFuncionário.DepartmentIDFuncionário.PapelDepartamento.NomeDepartamento.DepartmentID
Dave Smith001Product Marketing ManagerMarketing001
Julie Jones002Software EngineerEngineering002
Scott Tanner001Director of Demand GenMarketing001
Ted Connors002Software EngineerEngineering002
Margaret Lane001VP of MarketingMarketing001
Mary Martin004ReceptionistNULLNULL
NULLNULLNULLAccounting003

Observações:

  • Todas as linhas duplicadas entre a junção da esquerda para a direita e da direita para a esquerda são removidas dos resultados.

Resumo das junções

O diagrama a seguir resume as relações entre os tipos de junções aceitas. Em cada diagrama de Venn, a área de interseção é o conjunto de registros que contém os valores de chaves compartilhados.

Figura: tipos de junção

Depois de criar uma junção, você pode modificá-la no painel "Recipe". Para mais informações, consulte Editar uma mesclagem.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.