Pular para o conteúdo

Etapa Junção de várias tabelas

A etapa Junção de várias tabelas une várias tabelas em uma única operação. Em vez de encadear uma série de junções entre duas tabelas — em que você perde a visão geral e repete o mesmo mapeamento de saída — você posiciona todas as tabelas em um designer visual de grafo de junções, desenha as junções entre as colunas e gera uma única tabela de resultado.

Ela foi criada para o formato mais comum das junções analíticas: uma tabela fato unida a várias tabelas de dimensão ou de consulta. Você pode unir até 32 tabelas ao mesmo tempo.

Adicione-a como qualquer outra etapa e escolha Junção de várias tabelas (no grupo Tabelas do menu de etapas, ou arrastando-a da paleta na tela de fluxo de trabalho avançado). O editor da etapa tem três guias:

  1. Tabelas e junções — o designer visual em que você adiciona tabelas e desenha junções.
  2. Colunas de saída — as colunas que a tabela de resultado conterá.
  3. Filtro pós-junção — um filtro opcional aplicado ao resultado da junção.

Um indicador de status mostra Pronto para salvar ou Alterações não salvas enquanto você trabalha.

Escolha Adicionar tabela para colocar uma tabela de origem na tela. Cada tabela aparece como um cartão que lista suas colunas e recebe um alias — um nome curto que você usa para referenciar suas colunas em outros lugares (como alias.column). Um alias deve começar com uma letra ou um sublinhado e não pode ser uma palavra-chave do SQL. Adicione quantas precisar (até 32) e escolha a Tabela de destino em que o resultado será gravado.

Se as colunas de uma tabela mudarem no catálogo, use Buscar novamente no servidor para substituir as colunas do cartão pelos valores mais recentes.

Tanto as tabelas de origem quanto a Tabela de destino podem ser informadas como uma referência, em vez de escolhidas na lista. Marque Dinâmico no seletor de tabela e digite um destes:

  • o nome de uma tabela — FACT_GL
  • o caminho de um projeto — /03 Results/FACT_GL

Qualquer um deles pode conter tokens {variable}, que são substituídos quando o fluxo de trabalho é executado — assim, /03 Results/FACT_GL_{year} grava em uma tabela diferente a cada período, conforme uma variável de projeto ou de fluxo de trabalho. A tabela de destino é criada se não existir.

Chaves sem correspondência são detectadas ao salvar, então um FACT_{year digitado errado é reportado na etapa, em vez de falhar no meio de uma execução.

Arraste de um ponto de coluna em uma tabela até uma coluna em outra para criar uma junção (uma ligação). Selecione uma ligação para abrir seu editor à direita, onde você define:

  • Tipo de junção:

    Tipo Mantém
    INNER somente as correspondências
    LEFT todas as linhas da tabela à esquerda
    FULL todas as linhas de ambos os lados
    CROSS cada linha da esquerda combinada com cada linha da direita (sem condições)
  • Condições de junção — uma ou mais comparações entre as colunas das duas tabelas. Adicione mais com + Adicionar condição, combine-as com AND / OR e use o conjunto completo de operadores (=, <>, <, <=, >, >=, BETWEEN, IS NULL, IS NOT NULL, IN, NOT IN, LIKE, NOT LIKE).

  • Rótulo (opcional) — dê um nome à junção (por exemplo, customer-to-orders) para facilitar a leitura do diagrama.

O designer mantém o grafo de junções como uma árvore — cada tabela se conecta ao resultado por exatamente uma junção, portanto não há ciclos nem caminhos ambíguos, e uma tabela não pode ser unida a si mesma. Para remover uma junção, selecione a ligação e escolha Excluir ligação.

Cada tabela de origem tem um Filtro de entrada aplicado antes da junção — use-o para reduzir uma tabela às linhas que interessam (referencie suas colunas como alias.column). Ele é separado do Filtro pós-junção, que é executado depois de todas as junções.

  • Organizar layout organiza automaticamente as tabelas e junções da esquerda para a direita, conforme a ordem das junções.
  • Ajustar à visualização altera a escala e centraliza para que todo o grafo caiba na tela; você também pode deslocar e ampliar manualmente.
  • Filtrar colunas… reduz as colunas exibidas nos cartões quando uma tabela tem muitas.
  • Desfazer / Refazer voltam e avançam pelas suas edições (Ctrl+Z / Ctrl+Y), e Histórico abre um painel com todas as alterações desde que você abriu a caixa de diálogo, com Restaurar.
  • Exportar baixa o diagrama de junções como uma imagem SVG — útil para documentação ou revisão.

Na guia Colunas de saída, escolha as colunas que a tabela de resultado conterá. Escolha a partir de qualquer tabela unida — use Escolher na tela… para selecionar visualmente entre as colunas de todas as origens, ou Adicionar todas as colunas de origem para trazer todas de uma vez. Para cada coluna, você pode renomeá-la, definir seu tipo de dados e aplicar uma agregação. Quando duas colunas de origem têm o mesmo nome, o PlaidCloud adiciona a elas o alias de origem como prefixo para que não colidam.

Cada coluna de saída obtém seu valor de exatamente um de três lugares:

  • Uma coluna de origem — defina Alias de origem como o alias da tela que a contém e Origem como a referência alias.column. Ambos são obrigatórios; uma coluna de origem sempre informa a tabela de onde veio.
  • Uma constante — o mesmo valor fixo em todas as linhas.
  • Uma expressão — escolha Adicionar coluna de expressão para acrescentar uma linha e abrir o editor de expressões. As expressões podem referenciar qualquer alias de origem na tela como alias.column, e é assim que você cria um valor que abrange várias tabelas unidas (um CASE entre duas tabelas, uma concatenação, um valor calculado). Deixe Alias de origem e Origem vazios em uma linha de expressão.

Preencher mais de um deles é um erro, assim como não preencher nenhum.

A célula Expressão abre o editor de expressões padrão do PlaidCloud, com todas as tabelas da tela no navegador de colunas, a lista de funções e o preenchimento automático.

As colunas de saída acompanham a tela: se você renomear uma origem na guia Tabelas e junções, suas colunas de saída passam para o novo alias, e se você remover uma origem, suas colunas de saída são descartadas — assim você nunca mantém colunas apontando para uma tabela que não faz mais parte da junção.

A guia Filtro pós-junção aplica um filtro opcional ao resultado da junção antes de ele ser gravado na tabela de destino — o equivalente a uma cláusula HAVING do SQL. Clique na caixa para abrir o editor de expressões; as colunas de saída aparecem em seu navegador de colunas, e você as referencia como result.column_name — os aliases de origem não estão no escopo aqui. Referências abaixo da caixa lista todas as referências que você pode usar. Deixe-a vazia para não aplicar filtragem pós-junção.

O PlaidCloud valida a junção conforme você a constrói e novamente quando a etapa é executada. Se algo estiver errado — uma configuração sem suporte, um ciclo, um alias duplicado, uma coluna de saída que não define nenhum entre Origem / Constante / Expressão (ou define mais de um), ou uma coluna que não existe mais — a guia recebe um selo ⚠ com a contagem, o designer marca a tabela ou a junção com problema e o salvamento é rejeitado com o motivo. Salvar com problemas não resolvidos leva você à guia que contém o primeiro deles; Ir para o problema faz o mesmo sob demanda.

Ao salvar, o PlaidCloud também verifica cada expressão de coluna de saída em relação às próprias entradas da junção, por alias (alias.column), da forma como a etapa é executada, e verifica o Filtro pós-junção. Uma expressão com erro é reportada na sua coluna de saída, e um Filtro pós-junção com erro, no filtro. Se a junção estiver definida como Levar também colunas nomeadas durante a execução e não estiver resumindo, a verificação de expressões é ignorada ao salvar, porque as colunas são adicionadas durante a execução; essas expressões são verificadas quando a etapa é executada. Os filtros por origem também são verificados quando a etapa é executada.

A etapa Junção de várias tabelas é executada como qualquer outra etapa. Ela executa todas as junções em uma única operação e grava as colunas mapeadas na tabela de destino.