플로우그래프에서 공통 노드 구현

Objective

After completing this lesson, you will be able to 플로우그래프 노드를 사용하여 데이터세트를 처리하여 데이터를 결합, 변환, 분할합니다.

합집합 또는 조인?

데이터를 결합하려는 경우 두 가지 접근 방식이 있습니다. 유니온 또는 조인을 선택할 수 있습니다.

유니온 작업은 행을 추가하고 조인 작업은 열을 추가합니다. 유니온의 소스는 구조와 필드가 유사한 서로 다른 행에 동일한 유형의 정보를 제공합니다. 조인의 소스는 서로 다른 구조를 가진 서로 다른 열과 동일한 값을 갖는 몇 개의 일치하는 필드에서 서로 다른 유형의 정보를 제공합니다.

유니온 작업은 기존 레코드에 레코드를 추가하여 결합된 더 큰 데이터 세트를 형성합니다. 추가된 레코드는 일반적으로 서로 다른 영역에서 동일한 유형의 정보를 제공합니다(예: 두 지역 또는 2년 동안의 판매 오더). 두 소스의 구조가 호환되어야 합니다. 즉, 유니온에 속하는 열의 데이터 유형이 일치해야 합니다.

조인 작업은 두 번째 데이터 세트의 열을 기존 데이터 세트에 첨부합니다. 추가된 열은 원본 레코드를 확장하기 위해 추가적인 관련 정보를 제공합니다. 예를 들어 판매 오더 레코드에는 제품 ID만 포함되며 제품 내역은 포함되지 않습니다. 이 경우 판매 오더 레코드를 해당 제품 마스터 레코드에 결합하여 제품 내역을 캡처하고 제품 내역 열을 판매 오더 레코드에 추가할 수 있습니다. 이제 원본 레코드에 추가 열이 있습니다.

합집합

여러 국가의 판매 오더에 대해 서로 다른 소스 시스템이 있고 전 세계 전체 데이터 세트가 필요할 때 수행할 수 있는 작업은 무엇입니까? Union 노드는 열 구조가 동일한 두 개 이상의 선행 노드의 입력 데이터를 병합합니다. 소스가 세 개 이상인 경우 + 를 선택하여 추가 입력 포트를 생성합니다.

그림에는 플로우그래프의 유니온 노드에 대한 예시가 나와 있습니다. 두 개의 소스를 각각 2줄로 결합하여 4개의 라인이 있는 대상에 결합합니다.

노트

이전 노드에서 들어오는 데이터의 의미를 반영하도록 입력 포트의 이름을 바꿉니다.

모든 수신 열은 유니온 노드에 의해 전달됩니다. 따라서 필요한 경우 선행 프로젝션 노드를 추가하여 관련이 없는 열을 제거하고 관련 열의 이름을 바꿉니다. 유니온 노드에는 플로우그래프의 다음 노드로 전달할 모든 입력에서 모든 레코드의 유니온을 생성하는 단일 출력 포트가 있습니다. 검사 버튼을 선택하면 사용 가능한 속성 모두 유니온 만 표시됩니다. 다음 테이블에 설명된 대로 작동합니다.

Union All 속성의 영향

모두 유니온 설정출력 데이터 세트
중복 레코드가 제거되었습니다.
설정모든 레코드가 보존됩니다.

조인

국가 코드가 있는 테이블이 있지만 국가 이름도 출력에 포함하려고 한다고 가정합니다. 국가 이름은 별도의 테이블에 저장됩니다. 그런 다음 추가 열을 가져와 출력에 추가할 조인 노드를 지정해야 합니다.

이 이미지는 조인 노드의 목적에 대한 데이터를 보여줍니다. 두 개의 입력 데이터세트가 있습니다. 조인 조건에 의해 결합됩니다. 또한 열 이름을 바꾸고 제거할 수 있습니다.

조인 노드는 여러 인바운드 데이터 세트에 대해 SQL SELECT 문을 실행하고 조인 조건에 따라 결합하며 고유한 아웃바운드 데이터 세트를 생성합니다. 출력 열은 제거하거나 이름을 바꿀 수 있습니다.

이 그림에는 ID 1, 2, 5의 레코드가 포함된 Sales2와 마스터 데이터 1과 2의 두 가지 소스 테이블이 나와 있습니다. 조인 노드는 일치하는 레코드만 전달하는 내부 조인 또는 마스터 데이터가 없는 필드도 모두 전달하는 왼쪽 조인으로 정의할 수 있습니다.

결과 세트에 전달되는 라인은 조인 유형에 따라 결정됩니다. 지원되는 조인 유형은 다음과 같습니다.

  • 내부 조인(일치하는 파트너가 있는 라인만)
  • 왼쪽 우선 외부 조인(왼쪽 조인 파트너의 모든 라인)
  • 오른쪽 외부 조인(오른쪽 조인 파트너의 모든 라인)
  • 완전 외부 조인(두 조인 파트너의 모든 라인)
  • 크로스 조인(모든 라인의 모든 조합)

특성 레벨에서 값을 집계하려는 경우(예: 제품 범주별 매출액 합계) 조인이 중요한 선행조건일 수 있습니다. 물론 조인 뒤에 집계를 위한 또 다른 노드가 필요합니다.

데이터 집계

데이터 프로비저닝의 공통 요구사항은 소스 데이터를 요약하고 그 결과를 SAP HANA의 대상 테이블에 저장하는 것입니다. 이를 집계(aggregation)라고 합니다. 집계할 하나 이상의 계수, 각 계수의 집계 동작, 집계 레벨을 결정하는 하나 이상의 특성을 선택하여 집계를 정의합니다.

예: 각 연도(특성)에 대한 지역(특성)별 평균(집계 동작) 판매 수량(계수)이 필요합니다.

이 슬라이드에서는 데이터 집계 방법을 설명합니다.

동작합니다.

플로우그래프 노드를 사용하여 집계를 구현합니다. 집계 노드는 항상 단일 인바운드 데이터 세트를 기반으로 하며 단일 아웃바운드 데이터 세트를 생성합니다. 모든 아웃바운드 행은 여러 인바운드 행을 집계한 결과입니다. 해당 값은 집계 노드 구성을 기준으로 계산됩니다.

이제 출력 열의 구성을 중점적으로 살펴보겠습니다. 열을 제거할 수 있습니다. 나머지 열마다 다음 액션 중 하나를 사용할 수 있습니다.

  • 그룹화 기준
  • 실사
  • 최소
  • 최대
  • 평균
  • 합계

그룹화 기준 열에 따라 집계 레벨이 결정됩니다. 그룹화 기준 열의 값 조합이 동일한 모든 행은 단일 아웃바운드 행에 집계됩니다. 즉, 그룹화 기준 열 중 하나 이상에서 출력 행 두 개의 값이 서로 다릅니다.

다른 열은 제공된 집계 동작에 따라 계산됩니다. 예를 들어, 합계, 평균값 또는 고유 원래 값의 수를 반환합니다.

집계와 함께 다음을 수행할 수 있습니다.

  • 아웃바운드 열 이름 바꾸기
  • 필터링 기준을 지정하여 인바운드 행에 필터를 적용합니다. 예를 들어 집계에는 프랑스 판매만 포함시킵니다.
  • HAVING 기준을 지정하여 아웃바운드 행에 필터를 적용합니다. 예를 들어, 집계된 매출액이 10,000유로보다 큰 경우에만 출력 행을 생성합니다.

데이터 집합 분할

하나의 데이터 소스를 여러 출력에 배포할 수 있습니다.

이 작업을 수행하려는 몇 가지 이유는 다음과 같습니다.

  • 최근 레코드의 인메모리 저장소에 로드, 오래된 레코드의 디스크 저장소로 로드 등 다양한 저장 전략을 구현할 수 있습니다.
  • 다양한 집계 레벨에 데이터를 저장할 수 있습니다. 예를 들어, 오래된 데이터를 집계하고 이를 테이블에 로드하고 신규 데이터를 라인 레벨에 두고 별도의 테이블에 저장할 수 있습니다.
  • 다른 변환 로직이 필요할 수 있습니다. 예를 들어 상급 관리자 또는 영업 책임자와 같은 직무 역할에 따라 상여금을 계산합니다.
이 슬라이드에서는 케이스 노드에 대해 설명합니다.

케이스 노드는 단일 인바운드 포트에서 데이터를 수신하고 변경되지 않은 행을 여러 아웃바운드 포트에 분배합니다.

모든 아웃바운드 포트에 대해 부울 식을 정의하여 이 포트에 전송될 인바운드 행을 결정합니다.

하나의 아웃바운드 포트는 다른 포트로 디스패치되지 않은 모든 인바운드 행을 수신하기 위해 "기본값"으로 표시됩니다.

이 슬라이드에는 케이스 노드의 예가 나와 있습니다.

케이스 노드 다음에 프로젝션 또는 집계 노드와 같은 다른 노드를 추가하여 케이스 노드에 의해 생성되는 데이터의 각 하위 세트에 대해 특정 변환 동작을 정의할 수 있습니다. 필요한 경우 다른 결과 세트를 추가 유니온 노드가 있는 단일 출력으로 병합할 수 있습니다.

복잡한 데이터 변환 예제를 처리하기 위해 다양한 노드가 포함된 플로우그래프를 생성하는 방법을 알아보려면 다음 비디오를 실행하십시오.