Implementar nós comuns em um fluxograma

Objective

After completing this lesson, you will be able to processe conjuntos de dados usando nós de fluxograma para combinar, transformar e dividir dados.

União ou junção?

Quando você quer combinar dados, existem duas abordagens. Você pode escolher uma união ou uma junção.

Uma operação de união adiciona linhas, uma operação de junção adiciona colunas. As fontes de uma união fornecem o mesmo tipo de informação em linhas dfferentes com estrutura e campos semelhantes. As fontes de uma junção fornecem o tipo de informação dffferente em colunas dfferentes com estrutura diferente e alguns campos correspondentes com os mesmos valores.

Uma operação de união adiciona registros a registros existentes para formar um conjunto de dados combinado e maior. Os registros adicionados fornecem normalmente o mesmo tipo de informação de uma área diferente, por exemplo, os pedidos de venda de duas regiões ou de dois anos. As estruturas das duas fontes devem ser compatíveis. Isso significa que as colunas que fazem parte da união devem ter tipos de dados correspondentes.

Uma operação de junção anexa colunas de um segundo conjunto de dados a um conjunto de dados existente. As colunas adicionadas fornecem informações adicionais relacionadas para enriquecer o registro original. Por exemplo, seu registro de pedido de venda inclui somente o ID do produto e não a descrição do produto. Nesse caso, você pode unir o registro do pedido de venda ao registro mestre do produto correspondente para capturar a descrição do produto e adicionar a coluna de descrição do produto ao registro do pedido de venda. Seu registro original agora tem uma coluna adicional.

União

O que você pode fazer quando tem sistemas de origem diferentes para pedidos de venda de diferentes países e precisa de um conjunto de dados completo em todo o mundo? O nó Union consolida os dados de entrada de dois ou mais nós precedentes com uma estrutura de colunas idêntica. Quando você tiver mais de duas fontes, selecione + para criar uma porta de entrada adicional.

A imagem mostra um exemplo de um nó de união em um fluxograma: Ela combina duas fontes com 2 linhas cada para um destino com 4 linhas.

Nota

Renomeie a porta de entrada para refletir o significado dos dados de entrada do nó anterior.

Todas as colunas de entrada são transferidas pelo nó de união. Por isso, adicione um nó de projeção precedente para remover colunas irrelevantes e renomear as relevantes, se necessário. O nó de união tem uma única porta de saída que gera uma união de todos os registros de todas as entradas para passar para o próximo nó no fluxograma. Depois de selecionar o botão inspecionar, você vê a única propriedade disponível, Union All. Ele atua como explicado na tabela a seguir.

Efeito da União Todas as propriedades

Unificar todas as configuraçõesConjunto de dados de saída
OffOs registros duplicados são removidos.
OnTodos os registros são preservados.

Join

Suponha que você tem uma tabela com códigos de país, mas também quer incluir o nome do país na saída. O nome do país é armazenado em uma tabela separada. Em seguida, você precisa indicar um nó para chamar a coluna adicional e adicioná-la à sua saída.

A imagem mostra aos dados o objetivo dos nós de junção: há dois conjuntos de dados de entrada. Eles são combinados por uma condição join. Além disso, você pode renomear e remover colunas.

O nó de junção executa uma instrução SQL SELECT em vários conjuntos de dados de entrada, combina-os com base em uma condição join e cria um conjunto de dados de saída único. As colunas de saída podem ser removidas ou renomeadas.

A imagem mostra duas tabelas originais, Vendas2, com registros para os IDs 1, 2 e 5, e dados mestre 1 e 2. Um nó de junção pode ser definido como Inner Join, que só passa registros correspondentes, ou Left Join, que passa todos os campos, mesmo aqueles sem dados mestre.

As linhas que são transferidas para o conjunto de resultados são determinadas pelo tipo de join. Os seguintes tipos de junção são suportados:

  • Inner join (só linhas com parceiros correspondentes)
  • Left Outer Join (todas as linhas do parceiro de junção esquerda)
  • Right Outer Join (todas as linhas do parceiro de junção direita)
  • Full Outer Join (todas as linhas de ambos os parceiros de junção)
  • Cross Join (todas as combinações de todas as linhas)

Uma junção pode ser um pré-requisito importante quando você quer agregar valores em um nível de atributo, como o total de receita de vendas por categoria de produto. Obviamente, você precisa de outro nó para a agregação após a junção.

Agregação de dados

Um requisito comum do provisionamento de dados é resumir os dados de origem e armazenar o resultado em uma tabela de destino no SAP HANA. Isso é conhecido como agregação. Uma agregação é definida selecionando uma ou mais medidas a serem agregadas, um comportamento de agregação para cada medida e um ou mais atributos que determinam o nível de agregação.

Por exemplo: preciso da quantidade de vendasmédia (agregação) (medida) por região (atributo) para cada ano (atributo).

Este slide explica como a agregação de dados

funciona.

Você implementa a agregação usando um nó de fluxograma. O nó Agregação é sempre baseado em um único conjunto de dados de entrada e gera um único conjunto de dados de saída. Cada linha de saída é o resultado da agregação de várias linhas de entrada; seus valores são calculados com base na configuração do nó de agregação.

Agora vamos nos concentrar na configuração das colunas de saída. Você pode remover colunas. Para cada coluna restante, pode ser usada uma das seguintes ações:

  • Agrupar por
  • Contagem
  • Mín.
  • Máx
  • Média
  • Total

As colunas Agrupar por determinam o nível de agregação. Todas as linhas com combinação de valores idêntica das colunas Agrupar por são agregadas em uma única linha de saída. Isso significa que quaisquer duas linhas de saída têm valores diferentes em pelo menos uma das colunas Agrupar por.

As outras colunas são calculadas com base no comportamento de agregação fornecido. Por exemplo, eles retornam a soma, o valor médio ou o número de valores originais distintos.

Em combinação com a agregação, você pode efetuar o seguinte:

  • Renomear colunas de saída
  • Aplique filtros às linhas de entrada usando a especificação de um critério de filtragem. Por exemplo, inclua somente as vendas da França na agregação.
  • Aplique filtros às linhas de saída, usando a especificação de um critério HAVING. Por exemplo, só gere uma linha de saída se as vendas acumuladas forem superiores a EUR 10.000.

Dividir conjuntos de dados

Você pode distribuir uma fonte de dados em várias saídas.

Aqui estão alguns motivos pelos quais você pode querer fazer isso:

  • Você pode implementar diferentes estratégias de armazenamento, como carregar para armazenamento in-memory para registros recentes e carregar para armazenamento em disco para registros mais antigos.
  • Você pode armazenar dados em diferentes níveis de agregação. Por exemplo, você pode agregar dados mais antigos e carregá-los em uma tabela, deixar os dados mais recentes no nível de linha e armazená-los em uma tabela separada.
  • Pode ser necessária uma lógica de transformação diferente. Por exemplo, um cálculo de bônus que depende da função do cargo, como gerente sênior ou executivo de vendas.
Este slide explica o nó do caso.

O nó Caso recebe dados de uma única porta de entrada e distribui as linhas inalteradas para várias portas de saída.

Para cada porta de saída, uma expressão booleana é definida para determinar quais linhas de entrada serão transferidas para ela.

Um porto de saída é marcado como "Padrão" para receber todas as linhas de entrada que não foram expedidas para nenhuma das outras portas.

Este slide mostra um exemplo de um nó de caso.

Após o nó do caso, você pode adicionar outros nós, como nós de projeção ou agregação, para definir um comportamento de transformação específico para cada um dos subconjuntos de dados gerados pelo nó do caso. Se necessário, você pode consolidar os diferentes conjuntos de resultados em uma única saída com um nó de união adicional.

Inicie o vídeo a seguir para saber como criar um fluxograma com uma variedade de nós para lidar com um exemplo complexo de transformação de dados.