데이터 프로비저닝 이해

Objective

After completing this lesson, you will be able to 데이터 프로비저닝의 주요 개념을 설명하십시오.

데이터 프로비저닝

소개

데이터 프로비저닝은 매우 광범위한 용어로, 소스 시스템에서 대상 시스템으로 데이터를 수집하는 것을 의미합니다. 데이터를 대상 시스템에 물리적으로 로드할 필요 없이 가져올 수 있으므로 데이터 로딩이 아니라 단어 가져오기가 선호됩니다. 실제로 기술이 발전함에 따라 조직 주변의 데이터 이동은 점점 더 보편화되고 있습니다. 데이터를 원격으로 읽는 것이 훨씬 더 간단한 경우가 많습니다.

데이터 프로비저닝이 필요한 이유는 여러 가지가 있습니다. 여기에는 다음과 같은 항목이 포함됩니다.

  • 비즈니스 어플리케이션에서 데이터를 추출하여 중앙 데이터 웨어하우스에 로드
  • 분석을 위해 데이터 소스에 대한 실시간 액세스 제공
  • 중앙 시스템에서 지역 시스템으로 데이터 분배
  • 여러 시스템의 데이터를 중앙 시스템으로 통합
  • 시스템을 동기화된 상태로 유지
  • 기존 시스템에서 신규 시스템으로 데이터 마이그레이션

가장 간단한 데이터 프로비저닝 시나리오에는 소스와 대상이라는 두 개의 시스템만 사용됩니다. 그러나 종종 여러 시스템이 관련되어 있습니다. 예를 들어, 여러 소스 시스템의 데이터를 단일 대상 시스템으로 결합할 수 있습니다. 데이터를 여러 대상 시스템에 배포하는 단일 소스 시스템도 다른 방식으로 이동할 수 있습니다. 마지막으로, 여러 소스 시스템이 데이터를 통합하고 여러 대상 시스템에 배포한다는 두 가지를 결합할 수도 있습니다.

아래 동영상을 실행하여 데이터 프로비저닝의 기본 개념에 대해 자세히 알아보십시오.

데이터 프로비저닝의 어플리케이션 또는 데이터베이스 제어

데이터 프로비저닝은 독립 실행형, 특수 어플리케이션 또는 데이터베이스의 기본 제공 툴을 사용하여 제어할 수 있습니다. 각 접근 방식을 살펴보겠습니다.

어플리케이션 제어 데이터 프로비저닝은 전용 어플리케이션이 데이터 흐름을 제어하는 경우입니다. 이러한 어플리케이션은 데이터 소스와 데이터 대상에 연결하고 시스템 간에 데이터가 이동하는 방식을 결정하는 데이터 흐름 규칙을 정의하는 툴을 제공합니다. 전용 데이터 프로비저닝 어플리케이션의 예로는 SAP Data Services, SAP Landscape Transformation, SAP Datasphere 등이 있습니다.

이 어플리케이션 제어 접근법을 사용하면 어플리케이션이 소스 데이터베이스에서 데이터를 추출하여 대상 데이터베이스에 로드합니다. 추출 규칙, 흐름 로직 및 로딩 방법은 어플리케이션에서 관리합니다. 데이터 프로비저닝 어플리케이션을 시스템 간 데이터 이동의 오케스트레이터라고 생각해 보십시오. 경우에 따라 데이터 프로비저닝 어플리케이션은 소스 데이터를 추출하여 대상 시스템으로 보내기 전에 임시로 저장합니다. 여러 데이터 소스를 결합해야 하고 데이터를 동기화하기 위해 스테이징 영역이 필요한 경우가 종종 있습니다. 스테이징 영역은 서로 다른 시간에 도착할 수 있습니다.

전용 데이터 프로비저닝 어플리케이션을 사용하는 주된 이유 중 하나는 서로 다른 기술을 사용하거나 여러 공급업체에서 제공하는 여러 데이터 소스로 작업하는 경우입니다. 이러한 전용 어플리케이션은 일반적으로 데이터베이스, CSV 파일, JSON 파일, 웹 서비스와 같은 모든 소스의 데이터를 처리할 수 있습니다. 일부는 비즈니스 어플리케이션에 직접 연결할 수도 있습니다(예: 데이터베이스 테이블이 아닌 어플리케이션 레벨에서 SAP S/4HANA에서 추출한 SAP BW/4HANA). 이 경우 데이터 흐름 로직은 물리적 저장 기술보다 높은 레벨에서 작성됩니다.

이 슬라이드는 어플리케이션 제어 데이터 프로비저닝의 작동 방식을 보여줍니다.

이제 데이터베이스 제어 데이터 프로비저닝을 살펴보겠습니다.

기본적으로 데이터베이스에서 데이터 프로비저닝 툴을 제공해야 합니다. 가장 간단한 유형의 데이터 프로비저닝 툴은 한 데이터베이스에서 다른 데이터베이스로 데이터를 이동하는 엑스포트 및 임포트 툴일 수 있습니다. 하지만 SAP HANA를 비롯한 일부 데이터베이스는 복잡한 데이터 프로비저닝 시나리오(예: 데이터 결합, 데이터 유효성 확인, 데이터 확장 필요)를 처리할 수 있는 정교한 툴을 제공합니다. 데이터베이스의 기본 제공 툴을 사용하여 데이터 프로비저닝을 관리하므로 앞에서 설명한 대로 별도의 데이터 프로비저닝 어플리케이션을 구현할 필요가 없습니다. 이 접근법은 더 단순한 랜드스케이프를 지원합니다.

데이터베이스 제공 툴을 사용하는 것은 데이터베이스 제어 데이터 프로비저닝의 의미입니다. 데이터 흐름은 데이터베이스의 일부인 툴을 사용하여 제어됩니다.

이 슬라이드는 데이터베이스 제어 데이터 프로비저닝을 사용하는 방법을 보여줍니다.

이 과정에서는 SAP HANA 온프레미스와 SAP HANA Cloud의 기본 제공 데이터 프로비저닝 툴에 대해 다룹니다.

데이터 변경사항 캡처

다음 시나리오를 고려하십시오. SAP HANA 데이터베이스에서 실행되는 보고 응용 프로그램을 구현했습니다. 보고 애플리케이션은 경영진이 회사 지출을 분석하는 데 사용됩니다. 구매 어플리케이션에서 SAP HANA 대상 데이터베이스로 구매 오더 트랜잭션을 매일 로드하려고 합니다. 구매 어플리케이션에서 구매 오더 레코드의 전체 세트를 추출하여 이를 SAP HANA 대상 데이터베이스에 로드합니다. 소스 데이터와 대상 데이터가 동기화되었습니다. 그러나 잠시 동안만 가능합니다. 그 이유는 다음날에 새로운 조달 레코드가 소스 데이터베이스에 추가되고 일부 기존 레코드가 수정되고 일부 레코드가 삭제되기 때문입니다.

따라서 다음에 소스 데이터베이스와 대상 데이터베이스가 동기화되도록 하려면 소스 데이터베이스에서 무엇을 로드해야 합니까? 전체 데이터 세트를 다시 설정하시겠습니까, 아니면 변경사항만 수행하시겠습니까?

물론 대상 데이터베이스의 모든 데이터를 삭제하고 모든 레코드를 다시 로드할 수도 있습니다. 이는 다시 동기화되었음을 의미합니다. 하지만 이 방식은 다소 낭비적입니다. 특히 매우 큰 데이터 세트에서 하나 또는 두 개의 레코드만 변경된 경우 더욱 그렇습니다. 레코드가 변경되지 않은 경우를 상상해 보십시오. 테이블 내용을 삭제한 후 다시 로드하는 것은 그다지 스마트하지 않으며 시스템 리소스를 낭비하는 부분입니다. 또한 전체 데이터 세트를 삭제하는 것은 위험합니다. 다시 로드 중에 문제가 발생한 경우 데이터 없이 끝날 수 있기 때문입니다.

보다 효율적인 접근법은 레코드 변경사항만 캡처하고 대상 데이터베이스를 변경사항으로만 업데이트하는 것입니다. 레코드에 대한 변경사항을 캡처하는 것을 델타 로드라고 합니다. 이를 변경 데이터 캡처(CDC, Change Data Capture)라고도 합니다.

이 슬라이드는 데이터 변경사항 캡처가 작동하는 방식을 보여줍니다.

그렇다면 소스 어플리케이션에서 변경된 레코드는 어떻게 식별합니까?

일부 데이터 소스는 기본 제공 변경 데이터 캡처(CDC) 기능을 제공합니다. 즉, 변경된 레코드를 식별하는 책임은 소스 시스템에 있습니다. 데이터 추출 메커니즘은 전체 로드 대신 변경 데이터 캡처 메커니즘으로부터 델타 데이터를 요청합니다. 그러나 모든 소스가 CDC 기능을 제공하는 것은 아니므로 변경되지 않은 레코드로부터 변경된 레코드를 선택할 수 있는 다른 방법을 찾아야 합니다.

다음과 같은 다양한 기법을 사용할 수 있습니다.

  • 소스 시스템의 재실행 로그를 읽습니다(있는 경우). 여기서 데이터베이스에 대한 변경사항이 수집됩니다.
  • 레코드가 변경될 때 대상 시스템으로 전송될 수 있도록 소스 시스템의 테이블에 트리거를 설정합니다.
  • 레코드 변경 시간을 캡처하는 타임스탬프와 같은 필드를 소스 레코드에 제공하여 최근에 변경된 레코드를 식별하고 원하지 않는 레코드를 필터링할 수 있습니다. 많은 어플리케이션에는 이미 그러한 필드가 포함되어 있습니다.
  • 데이터 프로비저닝 소프트웨어에서 자주 제공하는 데이터 비교 툴을 사용하여 소스 테이블과 대상 테이블을 비교합니다. 그러면 해당 레코드만 대상 시스템에 업데이트되도록 도구에서 차이를 격리할 수 있습니다.

마지막으로 변경 데이터 캡처 컨텍스트에서 용어 스냅샷을 알고 있어야 합니다. 이 용어는 데이터 프로비저닝을 설명할 때 종종 사용됩니다.

스냅샷은 정확한 시점에 소스 시스템의 모든 데이터를 완전히 캡처한 것입니다. 스냅샷을 사용하는 이유 중 하나는 데이터 세트를 새로운 데이터로 덮어쓰기 전에 일정 기간 동안 보존하는 것입니다. 예를 들어, 월말에 데이터의 스냅샷을 로드하여 오더 위치를 캡처할 수 있습니다. 그런 다음 다음 달 말에 스냅샷을 반복할 수 있습니다. 스냅샷은 작업 가능한 안정적인 데이터 세트를 제공합니다. 때로는 스냅샷을 보존하여 이력을 구축하기도 합니다. 그러나 스냅샷을 보존하기로 결정하면 스냅샷에 전체 데이터 세트가 포함된 경우 특히 데이터 증가를 고려해야 합니다.

이 과정에서는 변경 데이터 캡처와 관련된 SAP HANA의 기능에 대해 알아봅니다.

데이터 프로비저닝 유형

데이터 가상화

앞서 언급했듯이, 데이터 프로비저닝이 항상 대상 시스템에 데이터를 로드해야 한다는 의미는 아닙니다. 데이터가 필요할 때 소스 시스템에서 데이터를 읽어 대상 시스템에 제공할 수 있습니다. 대상 시스템에서 데이터 읽기가 완료되면 연결이 종료되고 데이터가 이동되지 않습니다. 이를 데이터 가상화라고 합니다. 특히 이 기술을 사용하여 연결된 시스템 네트워크가 있는 경우 데이터 페더레이션이라고도 합니다.

이 슬라이드에서는 데이터 시각화에 대해 설명합니다.

이 방식을 고려하는 주된 이유 중 하나는 데이터가 자주 변경되는 경우 최신 버전의 데이터만 읽도록 하려는 경우입니다. 또한 소스 데이터는 매우 가끔씩만 읽힐 수 있으므로, 소스 데이터를 지속적으로 로드하고 대상 시스템을 채워 복사본을 만드는 것은 의미가 없습니다.

데이터 가상화와 관련된 문제 중 하나는 대상 애플리케이션에서 필요할 때마다 데이터가 네트워크를 가로질러 이동해야 하기 때문에 성능이 만족스럽지 않을 수 있다는 것입니다. 데이터 볼륨이 적은 동안에는 문제가 되지 않을 수 있지만, 아시다시피 데이터 볼륨은 일반적으로 시간이 지남에 따라 증가하므로 실행 가능한 솔루션으로 시작할 수 있는 것은 신속하게 작동할 수 없게 될 수 있습니다. 그러나 데이터를 대상 시스템으로 이동할지 결정하기 전에 데이터 가상화를 항상 고려해야 합니다.

데이터 복제

에서 시스템 간에 데이터를 동기화된 상태로 유지해야 하는 경우, 이는 데이터 복제를 구현할 때입니다. 한 시스템에서 다른 시스템으로 데이터가 복사되며, 일반적으로 변경 없이 복사됩니다. 대상 시스템에서 실행되는 어플리케이션이 항상 최신 데이터를 사용하도록 대상 시스템이 소스 시스템에서 데이터를 변경하면서 데이터를 캡처한다는 것입니다. 복제는 실시간(동기) 또는 거의 실시간(비동기)으로 수행됩니다.

이 슬라이드에서는 데이터 복제에 대해 설명합니다.

복제는 가상화가 좋은 선택이 아닐 때, 또한 데이터가 대상 시스템에 로드되기 전에 변환이나 집계가 필요하지 않을 때 널리 사용되는 옵션입니다.

데이터를 복제할 때는 데이터 볼륨을 주의 깊게 모니터링해야 합니다. 이는 많은 데이터를 생성하는 시스템에서 복제할 때 대상 시스템을 매우 빠르게 채울 수 있기 때문입니다. 복제는 일반적으로 레코드를 필터링하거나 집계하지 않고 데이터를 일대일로 추출하기 때문에 소스 데이터가 매우 세분화된 경우 특히 그렇습니다.

데이터 변환

추출된 데이터를 대상 시스템에 로드하기 전에 변경해야 하는 경우 이를 데이터 변환이라고 합니다. 변환은 매우 광범위한 용어로, 필요한 내용만 로드하도록 데이터에 필터를 적용하는 것만큼 간단한 것을 의미할 수 있습니다. 소스 데이터에서 새로운 값을 생성하는 것을 의미할 수도 있습니다. 예를 들어, 판매 가격과 원가를 제공하는 각 레코드에서 수익을 계산합니다. 변환은 누락된 필드 입력 및 값 확인도 참조할 수 있습니다. 변환을 통해 여러 시스템의 데이터를 병합할 수 있습니다. 데이터를 분할하여 여러 대상 시스템에 분배하는 방법을 결정하는 규칙을 정의할 수도 있습니다.

이 슬라이드에서는 데이터 변환에 대해 설명합니다.

복제와 마찬가지로, 데이터 변환은 하나 이상의 소스 시스템에서 데이터를 가져와 대상 시스템으로 로드합니다. 가장 큰 차이점은 복제는 일반적으로 데이터를 변경하지 않는 반면 변환은 변경하지 않는다는 점입니다.

복제에 대한 변환의 장점 중 하나는 개별 트랜잭션을 많이 로드하는 대신 집계 규칙을 적용하여 데이터를 요약할 수 있다는 것입니다. 따라서 데이터 증가를 제어할 수 있습니다. 그러나 데이터 랜드스케이프가 변경되면 변환이 빠르게 복잡해지고 유지보수가 어려워질 수 있습니다.