string(27) "/blog/?uid=180&mod=document"

HOME

ABOUT US

Blog

Blog

Blog

Real-Time ODS의 이해

2021.06.08

 

 

요즘 각 조직의 시스템 구성을 살펴보면, 계정계와 정보계 같은 운영 시스템을 중심으로 매우 많은 연계 시스템이 연동하는 복잡한 구조로 동작한다. 데이터의 원천인 운영 시스템에서 연계 시스템으로의 정보 이동 수단은 ETL, EAI 등 다양한 수단이 존재한다. 이 중 Real-time ODS를 이용한 구조의 장점과 Ark for CDC 의 역할을 살펴보자.

ODS (Operational Data Store)는 여러 운영 시스템의 생성되는 정보를 한곳으로 모으고 이를 지속적으로 현행화하는 database이다. 초기 ODS의 수요는 간단한 report 생성 등에 사용되었지만, 지금은 DW 에 활용하고 CRM 과 같은 다양한 연계 시스템의 data source로서 활용된다.

ODS 시스템은 운영 시스템과 데이터 현행화 정도에 따라 3가지 class로 구분할 수 있다.

· Class 1 : 운영 시스템과 데이터 차이가 2~3초 정도 이내로 유지된다. 주로 원본 데이터를 그대로 복제하며, 변경 유형 및 복제 일자 등과 같은

간단한 정보만이 추가 또는 변경된다.

· Class 2 : 운영 시스템과 데이터 차이가 1~2시간 정도 이내로 유지된다. 데이터를 기반으로 단순한 가공과 집계 정보를 제공 가능하다.

· Class 3 : 전일 또는 그 이전 시점의 데이터를 제공한다. 다수의 소스로부터 수집된 정보를 조합해 가공 및 집계가 가능하며, 데이터 정제도 가능하다.

 

20210608160736_x3e7x6c.png 



이 중 Class 3는 DW 등이 역할 대체 가능하며, 여러 시스템의 자료를 통합한다는 개념에서는 Class 1과 Class 2가 좀 더 도입 취지에 맞는다고 볼 수 있다.

 

운영 시스템에서 ODS 로 데이터를 가져오는 방법은 과거 ETL을 주로 사용했다. 하지만 ETL을 사용하는 경우 다음과 같은 단점이 있다.

 복제 대상 데이터를 구분하기 위한 변경 유형과 변경 시점 표기.

● 복제 대상 선별 불가 시 Full copy 발생

● 복제 대상 데이터를 찾기 위해 대량의 data access 발생

● 과거 데이터에서 변경 발생 시 복제 대상에서 누락될 가능성 존재

● 운영 시스템의 높은 부하 발생

ETL 또는 Full copy 방식의 data 이전은 비용이 많이 들고 시간이 오래 소요되기에 이런 방식을 이용한 ODS 구축은 실시간 데이터 제공이 불가능하다. 또한 제공 데이터에 있어서 최근 데이터 중심의 부분 데이터 제공으로 한정되기도 한다. 이 때문에 Class 3 이거나, 수집 주기를 줄여 Class 2로 방식으로 구축된다.

Class 2 또는 Class 3는 실시간 데이터를 요하는 연계 시스템은 사용이 불가능하다. 실시간 재고를 조회한다거나, 주문 정보를 CRM 에서 이용하게 하는 동작은 실시간 현행화되지 않은 정보로는 활용가치가 저하될 수밖에 없다.

Class 1 ODS는 실시간 데이터를 제공하기에 연계 시스템이 운영 시스템을 직접 접속하지 않아도 현재 데이터를 조회할 수 있다. 연계 시스템이 많더라도 하나의 ODS 구축만으로 다수의 연계 시스템에게 실시간 데이터를 제공할 수 있다는 장점도 있다. 실시간 데이터 조회를 ODS에서 제공함으로 운영 시스템의 불필요한 접근을 통제할 수 있어 운영 측면에서 도움이 될 수 있다.

Class 1 ODS을 위한 운영 시스템의 부하가 높지 않고, ODS database를 저장하기 위한 데이터 저장 비용이 크게 낮아짐에 따라 더 이상 ODS를 부분 데이터 제공을 한정할 이유가 없다. 이제는 분산 운영되는 데이터를 취합하고 이를 연계 시스템이 활용한다는 기능 측면을 강조할 필요가 있다.

EAI를 이용한 데이터 복제의 경우 특정 정보 수요처에 정보를 명시적으로 전달한다는 장점은 있지만, 다수의 연계 시스템에 데이터를 push 방식으로 넣게 될 경우 운영이 복잡해지고, 부분 데이터에 대한 조회성 업무를 위해 모든 data를 push 하는 것은 과다한 비용만 유발하게 된다.

또 다른 방식으로 Kafka 와 같은 저장과 Event 전달을 동시에 처리 가능한 stream 방식이 존재한다. 그렇지만, event 방식으로 대전환이 필요하며, 모든 변경을 push로 제공받아 처리해야 하는 부담이 있어, 부분 데이터에 대한 단순 조회성 업무에는 적용이 어렵다.

Class 1 ODS 의 구축의 핵심은 운영 시스템에서 실시간 데이터 이전이 핵심이며, 이는 CDC를 활용해 해결할 수 있다.


20210608160814_idjt8p2.png


CDC는 운영 시스템의 Database transaction log 를 기반으로 변경 데이터를 추출해 target 시스템에 반영해 복제 정보를 현행화할 수 있다.

이 기능은 ETL 과 비교해 다음과 같은 장점이 있다.

● Application 수정 불필요

● 변경 데이터를 스캔하지 않기에 부하 발생 적음

● 과거 데이터에 변경이 발생해도 복제 대상에서 누락되지 않음

● ETL 은 Pull 방식으로 batch 성 복제 방식이지만, CDC는 Real-time Push 방식으로 실시간이다.

아크데이타의 Ark for CDC 는 Oracle database의 redo log를 logminer를 이용하지 않고 direct access 방식으로 추출한다. 이 때문에 logminer의 overhead가 발생하지 않는다. 또한 본 글에서 알아본 ETL 대비 CDC의 장점과 더불어, 1:N, N:1 복제 등 유연한 구성 방식도 지원하고 있으며, 운영 시스템의 data를 그대로 복제할 뿐만 아니라 mapping 기술을 이용해 데이터 변경 유형 및 시점 정보와 같이 data 별 다양한 추가 연산 기능을 제공한다. 추가적으로 이기종간 DB 복제가 가능하여 Oracle database의 data를 Open source DB 로 복제 가능하며 이를 활용해 Open Source DBMS 기반의 ODS 구축도 가능하다.