플로우그래프에서 고급 기능 구현

Objective

After completing this lesson, you will be able to 기존 플로우그래프에서 고급 변환 노드 구현, 변수 사용, 플로우그래프 작성

고급 변환 노드

플로우그래프는 다음과 같은 사용 케이스에 사용할 수 있는 고급 노드를 제공합니다.

케이스 노드를 사용하여 데이터 세트를 여러 레코드로 분할하는 방법을 학습했습니다. 그러나 데이터 집합을 내용에 따라 여러 열에 평면화하려면 어떻게 해야 할까요? 예를 들어, 열에 국가 값이 포함되어 있으면 각 국가를 자체 열에 넣겠습니다. 보시다시피 피벗 노드를 사용하여 그렇게 할 수 있습니다.

전화번호와 같은 특성을 가져와서 해당 개인과 함께 판매 레코드에 추가하는 방법을 학습했습니다. 하지만 이 사용자의 전화번호가 여러 개인 경우에는 각 전화번호에 대해 이 사용자로 트랜잭션 데이터 레코드의 복사본이 생성됩니다. 첫 번째 전화번호만 필요하다고 가정하면 조회 노드가 필요한 노드입니다. 조회 노드와 피벗 노드의 조합으로 모든 전화번호를 캡처할 수 있습니다.

소스 시스템에서 레코드가 변경되면 일반적으로 데이터 대상에 변경사항을 업데이트하려고 합니다. 기존 레코드를 최신 버전으로 덮어쓰도록 선택할 수 있지만 기존 레코드를 유지하고 '기존'으로 표시한 다음 신규 레코드를 함께 로드하도록 결정할 수도 있습니다. 이렇게 하면 기존 레코드를 유지하고 신규 레코드를 비즈니스에 제공할 수 있습니다. 이를 위해 이력 보존 노드를 사용합니다. 이 특수 노드를 사용하면 기존 레코드와 신규 레코드에 시간 유효성 정보를 자동으로 추가할 수 있습니다.

다음 표에는 고급 섹션의 모든 플로우그래프 노드가 나열되어 있습니다.

고급 노드 유형

노드 유형USe Case

이력 보존

대상에서 새 행을 생성하여 변경이 발생할 때 이전 버전의 행을 유지 관리할 수 있습니다.

조회

정의한 조회 조건과 일치하는 조회 테이블에서 열 값 또는 값을 검색합니다.

Map Operation(맵 연산)

입력 데이터를 정렬하고 출력 데이터를 매핑합니다.

피벗팅

기존 행에서 데이터 행을 생성합니다.

피벗 해제

피벗 열로 식별되는 열의 각 값에 대해 신규 행을 생성합니다.

테이블 비교

두 테이블을 비교하여 INSERT, UPDATE 또는 DELETE 플래그가 지정된 행을 데이터 집합으로 만듭니다.

조회 노드와 피벗(Pivot) 노드라는 두 가지 중요한 예를 자세히 살펴보겠습니다.

사람의 주소 또는 전화번호가 필요하고 모든 주소와 번호가 포함된 주소록이 있다고 가정해 보겠습니다. 가장 빈번한 주소 또는 판매일에 가장 적합한 주소를 원합니다. 그런 다음 조회 노드를 사용해야 합니다.

조회란 무엇입니까? 조회는 거의 조인에 해당합니다. 매칭 기준을 정의하고 다른 열의 해당 값을 추가하지만 몇 가지 차이가 있습니다.

  • 조회 테이블은 주요 레코드의 데이터를 로드하는 동안 동적으로 변경되어서는 안 됩니다. 따라서 조회 변환을 실시간으로 처리할 수 있습니다.
  • 여러 행이 반환될 때 단일 조회 테이블 행을 선택하는 정렬을 호출하기 위해 조회 테이블 열과 정렬 값 쌍을 지정할 수 있습니다.
  • 조회 테이블 행이 반환되지 않을 때 상수 형태로 기본값을 구성합니다.
이 슬라이드에서는 검색된 조회 노드가 작동하는 방식을 설명합니다.

조회는 People_Id당 하나의 결과만 반환합니다.

하지만 두 개의 결과를 원하면 컨택트 카운터가 항상 1로 시작하는 경우 조인과 피벗 노드의 조합을 사용합니다. 다음 테이블의 왼쪽에는 조인 결과가 있습니다. 오른쪽에는 피벗 노드의 결과가 원하는 결과와 함께 표시됩니다.

이 슬라이드는 피벗 노드에 대한 조회의 작동 방식을 보여줍니다.

어떻게 작동이 되나요? 계수가 있는 다른 예에서 피벗 노드 원칙을 살펴보겠습니다.

이 슬라이드에서는 피벗 노드에 대해 설명합니다.

이 예는 다음 사용자 인터페이스에 의해 생성됩니다.

이 슬라이드에는 피벗 노드 사용자 인터페이스가 나와 있습니다.

이 절차를 단계별로 살펴보겠습니다.

피벗 노드 구성 방법

ID, 월, 국가의 결합 키가 있는 데이터가 있습니다. 국가별 원가 및 수익에 대한 월별 개요가 필요합니다. 피벗 테이블은 출력 데이터 세트에 데이터를 배치하여 데이터를 요약하는 데 도움이 될 수 있습니다.

여러 달에 대한 신규 열을 생성하고, 여러 달의 데이터를 국가별로 하나의 행으로 결합하려고 합니다. 피벗 축 월이 있는 피벗 노드는 이를 달성하는 데 도움이 됩니다.

피벗 축 열의 각 고유 값에 대해 출력 데이터 세트에 열이 생성됩니다.

단계

  1. 플로우그래프에서 피벗 노드 를 추가하고 이 노드의 선행 노드를 신규 노드에 연결합니다.

  2. 축 특성 섹션에서 축을 선택하려면 클릭 을 선택합니다. 피벗하려는 열을 선택한 다음 확인 을 선택합니다. 각 축 값에 대해 피벗된 열 집합이 생성됩니다. 축 열의 각 고유 값에 대한 축 값을 만듭니다. 런타임 시 축 특성 섹션에서 피벗된 각 특성과 각 고유 축 값에 대해 새로운 열이 생성됩니다.

  3. 값 추가 를 선택하여 피벗된 데이터를 포함할 열을 하나 이상 생성합니다. 열에 열 이름을 입력하고 접두부 열에 접두부를 입력합니다. 열에 데이터를 지정하면 해당 접두부와 함께 새로운 열이 출력 열 리스트에 표시됩니다. 예를 들어 월별로 배분하는 경우 축 값 (월) 1 에 대해 접두부 1월 을 생성하고 축 값 (월) 2 에 대해 2월 을 생성할 수 있습니다.

  4. 데이터 열 에서 행에서 열로 값을 피벗할 각 데이터 열의 + 아이콘을 선택합니다. 예를 들어, 포함하려는 원가수익 열을 선택할 수 있습니다. Output Columns 섹션에서 Jan_Costs, Jan_Revenue, Feb_Costs, Feb_Revenue를 새로운 열로 생성합니다. (접두사 이름과 피벗된 열 이름을 구분하기 위해 밑줄이 자동으로 추가됩니다.)

  5. 출력 열 에서 통과 를 선택하여 피벗하지 않고 출력할 열(일반적으로 국가 등의 특성)을 선택합니다. 대상 테이블에 전달 열이 수정 없이 나타납니다.

  6. 복제 발생 시 동작을 선택하려면 하단의 복제 전략 을 설정합니다.

    • 변환 프로세스를 취소하려면 중단 을 선택합니다.
    • 첫 번째 행에 값을 저장하려면 첫 번째 행 을 선택합니다.
  7. 적용 을 선택하여 플로우그래프로 돌아갑니다.

결과

데이터를 변환하는 방법을 정의했습니다.

SAP HANA 스마트 데이터 품질/데이터 품질 관리 노드

SAP HANA는 데이터 품질과 관련된 플로우그래프 노드를 제공합니다.

데이터 품질은 여러 주제를 다룹니다. 여기에는 레코드 중복 제거, 주소 정리, 누락된 데이터 생성, 지리 정보로 레코드 보강 등이 포함됩니다.

SAP HANA 온프레미스와 SAP HANA Cloud는 데이터 품질을 지원하지만 플로우그래프 노드가 다릅니다.

SAP HANA 온프레미스에서는 데이터 품질을 지원하는 노드가 여러 개 제공됩니다. 아래와 같습니다.

  • 일치 - 중복될 수 있는 레코드 검색 및 처리
  • 정리 - 타이드업 필드 및 추가 정보 생성
  • 지오코드 - 레코드에 대한 지리 데이터 생성

SAP HANA Cloud의 경우 구독 기반 마이크로서비스를 통해 주요 데이터 품질 기능을 사용할 수 있습니다. 이 마이크로 서비스가 플로우그래프에서 사용되는 방식을 구성하려면 DQMm 정리(Data Quality Management microservice Cleanse) 노드를 포함합니다.

정리 노드는 다음 데이터를 식별, 구문 분석, 유효성 확인 및 서식을 지정합니다.

  • 주소
  • 개인 이름(*)
  • 조직 이름(*)
  • 직급(*)
  • 전화번호(*)
  • 이메일 주소(*)

주소 정리는 국가별 표준과 디렉토리를 따릅니다.

이 슬라이드에서는 정리가 작동하는 방식을 설명합니다.

(*) 이 항목은 SAP HANA 온프레미스에서만 사용할 수 있습니다.

노드에는 단일 인바운드 포트와 단일 아웃바운드 포트가 있습니다.

노드는 입력 데이터를 처리하고 국가별 주소 디렉토리에 저장된 참조 데이터와 비교합니다. 디렉토리는 SAP HANA 스마트 데이터 통합 또는 SAP HANA 온프레미스를 위한 스마트 데이터 품질 설치의 일부로 다운로드하여 배포할 수 있습니다.

지오코드 노드는 주소의 위도 및 경도 좌표를 생성하고 위도 및 경도 좌표에서 주소를 생성합니다.

이 슬라이드에서는 지오코드에 대해 설명합니다.

노드는 입력 데이터를 해석하여 로컬 지리 정보 디렉터리에서 가져온 참조 정보와 비교합니다.

지오코드 노드에 대한 자세한 내용은 SAP Help Portal에서 제공되는 "SAP HANA 스마트 데이터 통합 및 SAP HANA 스마트 데이터 품질 모델링 가이드"를 참조하십시오.

주소 디렉토리의 설치에 대한 자세한 내용은 SAP Help Portal 에 있는 "Installation and Configuration Guide"를 참조하십시오.

플로우그래프에서 변수 사용

플로우그래프를 정의할 때 대부분의 노드는 필터 또는 표현식에서 값을 필요로 합니다. 값 고정이 효율적이지 않을 수 있습니다. 이 경우 플로우그래프의 디자인 타임 동안 값을 제공하지 않아도 되도록 변수를 정의합니다.

다음과 같은 여러 가지 이유로 변수를 구현할 수 있습니다.

  • 하나의 플로우그래프를 정의하여 여러 케이스에 재사용할 수 있습니다.
  • 필터 값은 플로우그래프의 실행 시간까지는 알 수 없습니다.

변수를 생성할 때 Projection 노드 및 Aggregation 노드와 같이 허용하는 노드에서 변수를 사용할 수 있습니다.

예를 들어 프로젝션 노드에서 특정 국가(예: 스페인)에 대한 레코드만 처리할 수 있습니다. 이 경우 플로우그래프 속성에서 국가 값을 제공하는 변수를 생성합니다. 그런 다음 $$로 변수 이름을 둘러싸는 방식으로 필터 조건이나 표현식에서 변수를 사용할 수 있습니다.

예를 들어 P_COUNTRY 변수를 정의했습니다. 다음과 같이 사용합니다.

Code Snippet
1
"Filter1_Input"."COUNTRY" = $$P_COUNTRY$$

변수는 실행 시점에 제공됩니다. 즉, 다른 국가를 선택할 때마다 플로우그래프 정의를 변경할 필요가 없습니다.

프로시저를 실행할 때 각 실행에 대한 변수 값을 제공할 수 있습니다.

플로우그래프의 중첩 플로우그래프 및 프로시저

프로젝션, 조인 또는 케이스 노드 등의 노드에서 SQL 식을 사용할 수 있다는 것은 이미 알고 있습니다. 그러나 SQL 식의 시퀀스를 적용해야 하는 경우 여러 노드를 추가하는 것이 번거롭고 유지보수가 어려울 수 있습니다. 경우에 따라, 이 명령문은 내용이나 현재 일자 또는 플로우그래프를 호출하는 사용자가 직접 선택한 내용에 따라 달라집니다.

해결책은 Procedure 노드를 구현하는 것입니다. 이 작업을 수행하는 몇 가지 예는 다음과 같습니다.

  • 노드가 하나뿐인 복잡한 SQL 문 순서 구현
  • 선행 노드에서 제공하지 않는 매개변수에 종속되는 SQL 문 구현
  • 기존 SQLScript 재사용
  • 기존 플로우그래프 재사용
이 슬라이드에서는 프로시저 노드를 사용하여 데이터베이스 프로시저를 호출하는 방법을 보여줍니다.

프로시저 노드를 사용하면 플로우그래프에서 데이터베이스 프로시저(즉, SQLScript)를 호출할 수 있습니다.

프로시저 노드에는 프로시저의 모든 IN 또는 OUT 테이블 매개변수에 대한 인바운드 또는 아웃바운드 포트가 있습니다.

프로시저에 스칼라 입력 매개변수가 있는 경우 이러한 매개변수의 값은 플로우그래프에 정의된 변수에서 가져옵니다.

이러한 변수는 자동으로 생성됩니다. 플로우그래프가 실행되면 입력 스칼라 매개변수에 전달할 수 있도록 각 변수에 대한 값을 제공합니다.

노트

프로시저 노드는 실시간 처리에 사용할 수 없습니다.

중첩 플로우그래프

하나 이상의 새로운 최상위 레벨 플로우그래프에서 호출해야 하는 기존 기본 플로우그래프가 있는 경우 프로시저로 배포할 수 있습니다. 그런 다음 새로운 플로우그래프에서 이 프로시저를 구현할 수 있습니다.

이 이미지는 기존 플로우그래프를 프로시저로 배포할 수 있음을 보여줍니다. 이 프로시저는 새로운 플로우그래프에서 재사용할 수 있습니다.

어떤 이점이 있습니까?

  • 동일한 기본 플로우그래프를 참조하면 변환의 공통 부분을 한 번만 정의하면 됩니다.
  • 기본 플로우그래프에 대한 요구사항이 변경되면 기본 플로우그래프만 조정하면 됩니다. 모든 최상위 레벨 플로우그래프는 새로운 로직을 자동으로 사용하므로 일관되게 유지됩니다.
  • 서로 다른 프로시저나 플로우그래프가 동일한 시작 시간과 동일한 반복 패턴으로 계획되어야 하는 경우 마스터 플로우그래프의 모든 프로시저를 포함하고 마스터 플로우그래프만 일정을 계획할 수 있습니다.

따라서 이제 플로우그래프를 실행하는 작업의 일정을 계획하는 방법을 학습해야 합니다.