[아이티데일리] 데이터는 모든 산업 분야에서 혁신을 가속화 할 수 있는 필수요소로 자리 잡았다. 기업은 데이터를 활용해 비즈니스 성과를 높이고 새로운 가치를 창출한다. 최근 들어 클라우드와 빅데이터, 인공지능(AI) 등 신기술을 기반으로 하는 다양한 시스템에서 실시간으로 데이터가 수집되고 있으며 수집되는 데이터의 양 또한 기하급수적으로 늘고 있다. 이에 따라 실시간으로 변화하는 데이터를 데이터베이스(DB)나 시스템에 반영하고자 하는 수요도 많아지고 있다. 이런 상황에서 데이터의 변경 사항을 실시간으로 추적하고 효율적으로 통합·처리할 수 있는 기술인 변경데이터캡쳐(CDC, Change Data Capture)가 주목받고 있다.
DB 성능 부하 최소화하며 실시간 복제
변경데이터캡처(CDC)는 원천 데이터베이스(DB)에서 새롭게 추가되거나 변경된 데이터를 식별해 실시간으로 다른 시스템이나 타깃 DB로 복제하는 기술이다. 기본적으로 원천 DB에 부하를 주지 않도록 별도의 타깃 DB를 생성하고 최초 1회 데이터 이관을 수행한다. 원천 DB의 데이터 변경 내역만 읽어 타깃 DB에 동일한 작업을 수행하는 구조다. 원천 DB에 직접 데이터를 요청하지 않고 변경 이력이 담긴 로그 데이터만 가져와 타깃 DB에 반영하기 때문에 부하를 최소화한다.
‘원천 DB의 영향을 최소화하면서 실시간 복제가 가능하다’는 CDC의 특징은 대규모 스케일 아웃(Scale Out)에 유리하고, 이기종 DBMS 간 복제, DR 시스템 구축, 무중단 마이그레이션, 부하분산 시스템 구축 등에 용이하다.
최근 데이터 분야 트렌드
먼저 새로운 타깃 DB를 생성하고 실시간 복제 프로세스를 구성하면, 기존 인프라에 영향을 주지 않고 새로운 프로젝트 수행이나 분산 처리를 위한 스케일 확장에 대응할 수 있다.
엑스로그 장석주 대표에 따르면, 과거에는 다양한 업무를 통합해 거대한 시스템을 구축하는 것이 트렌드였다. 하지만 데이터의 양이 늘면서 운영 시스템(원천 DB)에 성능 부하가 발생해 확장성과 유연성 측면에서 규모가 작은 시스템을 병렬적으로 구성하는 방식이 주류가 됐다. 이러한 이유로 원천 DB에 영향을 미치지 않고 타깃 DB로 실시간 데이터 복제가 가능한 CDC가 인기를 끌고 있다.
CDC는 이기종 DB 및 빅데이터 DB의 복제도 용이하다. 많은 기업에서 주로 사용하고 있는 오라클 DB를 원천 DB로 두고, 오픈소스 DB나 국산 DB, 빅데이터 DB 등 이전 대상 DB를 타깃 DB로 설정하고 CDC 솔루션을 적용하면 무중단 마이그레이션이 가능하다.
CDC는 통상 액티브-액티브(Active-Active) 구조로 실시간 데이터가 복제되기 때문에 시스템 이관이나 운영체제 플랫폼 전환, DB 변경, 클라우드로의 전환 등의 작업에서 다운타임을 최소화하고 데이터 정합성 확보한 상태로 마이그레이션을 진행할 수 있다. 시스템이나 원천 DB, 혹은 타깃 DB에 장애가 발생해도 실시간으로 자동 동기화되기 때문에 서비스 중단을 최소화할 수 있다는 것이다.
비용 면에서도 큰 차이는 없다. 원천 DB와 타깃 DB가 동시에 가동되는 구조이기 때문에 액티브-스탠바이(Active-Standby) 구조와 비교해 라이선스 비용이 일부 늘어나긴 하지만 별도의 부하분산 시스템을 구축하는 비용보다는 훨씬 저렴하다. 에너지 측면에서도 액티브-액티브 구조와 액티브-스탠바이 구조는 상시적으로 타깃 DB나 시스템이 구동되고 있기에 별 차이가 없다.
[인터뷰] “토종 제품 ‘엑스로그 포 CDC’로 편리하게 CDC 환경 구축” |
|
엑스로그 장석주 대표 Q. 엑스로그의 CDC 솔루션의 강점은. A. 오라클 DB에서 오라클 DB로, 혹은 오라클 DB에서 타 DB로의 호환성이 가장 좋은 솔루션이다. 13년 전부터 CDC 관련 기술을 개발해 온 엑스로그는 기본적으로 오라클 DB에서 오라클 DB 복제를 기반으로 하고 있다. 이후에 국산 DB, 오픈소스 DB, No SQL DB, 빅데이터 DB 등으로 확대했다. 다른 기업의 어떠한 솔루션보다 지원하는 DB 호환성이 가장 좋다고 할 수 있다. 이미 국내외 유수 DB 제조사와 MOU 및 상호 연동 인증을 완료했으며, 실시간 데이터 복제 및 이관과 관련된 다양한 특허를 획득해 기술력을 인정 받았다. 오라클 DB부터, MS-SQL, My-SQL, 마리아 DB, 포스트그레SQL 진영으로는 비트나인, EDB, 인젠트 엑스퍼디비(eXperDB) 등이 있다. 아울러 국산 DB인 티맥스티베로, 큐브리드, 알티베이스 등도 지원하고 버티카, 그린플럼, 벡터 와이즈, 네티자 등 빅데이터 DB도 지원하고 있다. 또한 테이블 단위의 정합성 검증 성능도 뛰어나다. 엑스로그 포 CDC(X-LOG for CDC)는 테이블 단위 고속 정합성 검증 기능(특허)과 로우(ROW) 단위의 정밀 정합성 검증 기능을 보유하고 있어 신속하게 정합성을 확보할 수 있다. Q. CDC는 DB 간 데이터 변화 사항을 실시간으로 추적하고 반영하는 솔루션이다. 초기 작업도 필요할텐데. A. 그렇다. CDC는 원천 DB에 존재하는 데이터를 한 차례 타깃 DB나 시스템으로 이관이 완료된 상황에서 투입되는 솔루션이다. 최근에는 이기종 DB간 복제 및 이관에 대해 많은 이슈가 발생하면서 이기종 간 초기 데이터 이관부터 실시간 데이터 복제와 모니터링까지 처리하는 올인원 제품에 대한 수요가 늘고 있다. 이에 엑스로그는 CDC 솔루션과 이기종 DB 간 초기데이터를 이관할 수 있는 솔루션인 ‘엑스로그 포 IDL(X-LOG for IDL(Initial Data Loader))’를 결합한 형태로 제품을 공급하고 있다. Q. 주요 고객사를 소개해 달라, 또 글로벌 진출 현황은. A. 현재 엑스로그의 제품들은 국내 최대 자동차 그룹, 대기업 분야의 엔지니어링 기업, 다수의 공공기관 등 다양한 산업 분야에 수백 카피 이상의 제품을 공급했다. 또한 고객 요구사항을 참고해 지속적으로 제품을 고도화하며 그동안 외산 솔루션이 장악해왔던 국내 시장에서 토종 기업의 영향력을 확대하는 데 앞장서고 있다. 글로벌 진출고 관련, 베트남, 인도네시아 등 해외 시장에 제품을 공급해 기술 우수성과 제품의 경쟁력을 확인했다. 일본과 싱가포르에 총판사를 확보해 지속적인 영업을 진행 중이며 조만간 큰 성과가 있을 것으로 기대하고 있다. 국내 대기업 고객의 미주, 유럽, 중동 등 해외 사업장에서의 도입도 늘어나고 있다. Q. CDC 솔루션이 줄 수 있는 가치와 도입을 고려하는 고객에게 조언한다면. A. 비즈니스 연속성을 확보할 수 있다는 점이 핵심 가치다. 일례로 한 고객이 ETL 솔루션을 이용한다고 가정해보자. ETL이 동작하면 운영 DB나 시스템에 부하가 걸릴 수 밖에 없다. 이런 이유로 업무가 끝난 이후에 ETL 작업을 해야 한다. 또 통상 ETL 작업은 저녁 6시에서 새벽 4시경에 이루어진다. 운이 좋을 경우 한 번에 끝날 수 있지만, 오류가 발생하면 다음 날로 일을 미뤄야 하는 경우도 발생할 수 있다. 일반적으로 한 달에 ETL 작업을 3~4번 수행하는데 CDC로 대체하면 실시간으로 데이터를 가져다주니 업무 시간에 ETL 작업을 할 수 있다. 업무 효율성이 높아진다. 타깃 DB나 시스템을 운영하지 않는 상황에서도 실시간으로 데이터가 복제된다. 운영 DB나 시스템에 부하를 주지 않는다. CDC 솔루션을 도입하려는 고객에게 조언한다면, ETL 솔루션을 걷어 내고 CDC 솔루션을 이용해서는 안 된다. CDC 솔루션은 데이터 복제 용도로 사용하고 ETL 솔루션은 변환이나 정제하는 데 사용하면 효율성이 더 향상될 것이다. CDC는 데이터를 복제하는 용도로 활용하는 것이 가장 좋다. 고객들 중에 CDC에 여러 기능을 추가하려는 경우가 있는데, 장애가 발생할 수 있다. 물론 1:N 구축 요청이 온다면 충분히 도울 수 있다. |
ETL에 실시간성 추가
사실 CDC의 핵심 기능인 데이터 추출 및 이동과 관련한 기술은 이미 존재하고 있다. 바로 추출·변환·적재(ETL) 기술이다.
ETL은 데이터 저장소에서 데이터를 추출하고 변환해 적재하는 것을 의미한다. 데이터 웨어하우스(DW)나 데이터 마트(DM)와 같은 데이터 저장소에 데이터를 전송하기 위해 사용된다. 주로 기존의 DB나 파일 시스템에서 데이터를 추출하고, 변환해 DW에 적재하는 데 이용된다.
그렇다면 CDC와 ETL의 차이점은 무엇일까. 바로 실시간 데이터 활용에 있다. ETL을 통해 이동되는 데이터는 실시간으로 바뀌는 데이터가 아니다. 데이터 분석 목적에 따라 대상 데이터를 배치(Batch) 형태로 이동한다. 하지만 CDC는 실시간으로 데이터가 원천 DB와 타깃 DB 및 시스템들에 복제되기 때문에 데이터 최신화가 가능하다.
CDC 솔루션을 활용한 DW 구성 사례 (출처: 아크데이타)
엑스로그 장석주 대표는 ETL과 CDC의 관계와 관련, “데이터를 분석하고 전처리 작업 효율성을 높이기 위해 ETL 기술·솔루션이 등장했다. 이후 실시간성이 중요해지면서 등장한 기술·솔루션이 바로 CDC다. CDC는 등장 초기만해도 실시간 데이터 활용에 대한 수요가 적은 데다 ROI도 낮아 ETL 솔루션에 비해 인기가 없었다. 하지만 최근 실시간 데이터 활용에 대한 수요가 늘어나면서 CDC의 수요가 늘어나고 있다”고 말했다.
ETL과 CDC는 성능 면에서도 차이가 있다. ETL은 원천 DB 엔진을 통해 데이터를 추출하는 구조를 갖고 있다. 달리 말하면 원천 DB의 성능에 부하를 줄 수 있다는 얘기다. 특히 ETL은 트랜잭션이 새롭게 일어나는 것을 파악하기가 어렵다. 새로운 트랜잭션에 대응하기 위해선 사람이 직접 데이터 특정 컬럼 하나하나에 타임스탬프를 찍어야 하는 원시적인 방법이 필요하다. 쿼리를 스캔하는 과정에 이 같은 어려움이 있으니 실시간 데이터를 ETL로 가져오는 데에도 어려움이 따를 수밖에 없다.
CDC의 경우 데이터를 추출하고 가져오는 대상이 DB 외부에 존재한다. DB 외부에 별도의 에이전트를 설치해 트랜잭션 로그 파일을 감지하고 원천 DB에서 데이터를 꺼내는 구조이기 때문에 DB 성능에 영향을 주지 않는다. 실시간 데이터 복제가 가능한 CDC는 알고리즘 자체가 성능 최적화에 초점이 맞춰졌다. 원천 DB에 영향을 주지 않기 때문에 원천 DB가 구동되는 동시에 데이터가 추가되거나 변해도 성능에 영향을 받지 않는다.
CDC는 논리적으로 독립되고 복제하는 시스템이기 때문에 데이터를 SQL로 바꿔도 타깃 DB에 영향을 주지 않는다. 타깃 DB를 별도의 업무용 DB로 사용할 수 있는 이유도 여기에 있다.
[인터뷰] "'다이렉트 로그 엑세스'기반 CDC로 성능 보장" | |
아크데이타 고광연 대표 아크데이타의 ‘아크 포 CDC(Ark for CDC)’는 직접 로그에 접근해 데이터를 추출하는 ‘다이렉스 로그 액세스(Direct Log Access)’ 방식을 사용했다. 트랜잭션 로그 파일(Transaction log file)에 직접 액세스해 원천 DB 성능에 부하를 주지 않고 변경된 데이터만 추출하기 때문에 고성능을 보장한다. 실시간으로 추출된 데이터는 SQL로 변환해 타깃 DB에 전송해 플랫폼 환경과 상관없이 이기종 DB 복제가 가능하다. 아크데이타의 CDC 솔루션의 가장 큰 특징은 실시간 빅데이터 구축이 가능하다는 점이다. 최근 대부분의 산업 분야에서 빅데이터를 활용해 고객 맞춤형 광고 전략을 수립하고 전사 정보를 실시간으로 수집하고 배포하기 위해 CDC를 찾는 기업이 늘고 있다. 아크데이타는 데이터 파이프라인 복잡성으로 기존 시스템 데이터 활용 환경을 개선하기 위해 CDC 기반 ‘카프카 커넥터(Kafka connector)’를 제공해 카프카 환경에서 실시간 빅데이터 구축이 가능한 기능을 갖고 있다. |
5가지 기능 갖춰야
CDC는 원천 DB에 추가 및 변경되는 로그를 추적해 타깃 DB에 실시간으로 반영·복제하는 기술이다. CDC의 핵심 기능은 △변경 감지(Detection of Changes) △변경 로그 기반 동작(Log-based Operation) △실시간 데이터 캡쳐(Real-time Data Capture) △변경 데이터 처리(Processing of Change Data) △분산 시스템 지원(Distributed System Support) 등 크게 5가지로 분류된다.
먼저 변경 감지 기능은 말 그대로 데이터의 변경을 감지한다. 이는 DB나 데이터 저장소에서 발생하는 추가, 수정, 삭제 등의 변경을 실시간으로 감지해 추적한다. 다음으로 변경 로그 기반 동작이다. CDC는 일반적으로 변경 로그 기반으로 동작한다. 로그는 원천 DB에서 발생한 모든 변경 사항을 기록하며, CDC는 이러한 변경 로그를 모니터링해 데이터의 변경 사항을 식별한다.
다음은 실시간 데이터 캡쳐 기능이다. CDC는 데이터의 변경을 실시간으로 캡쳐하고 이를 적용 대상 시스템에 전달한다. 이를 통해 변경된 데이터를 실시간으로 반영하거나 외부 시스템과의 데이터 동기화를 수행할 수 있다. 이 과정에서 아크데이타는 ‘다이렉트 로그 액세스 엔진(Direct Log Access Engine)’을 통해 데이터를 추출, 성능을 높이고 DB에 부하를 최소화한다.
다음은 변경 데이터 처리 기능이다. CDC는 변경된 데이터를 처리해 필요한 작업을 수행한다. 변경된 데이터를 변환, 필터링, 병합해 적절한 형태로 가공한다. 마지막은 분산 시스템 지원 기능이다. CDC는 분산된 환경에서도 동작해야 한다. 즉 여러 DB나 데이터 저장소에서 변경된 데이터를 감지하고 캡쳐해 처리할 수 있어야 하는 것이다.
핵심은 데이터 정합성
복제는 A를 A로, B를 B로 하나 더 만드는 것이다. 그렇다면 복제가 잘 됐다고 말할 수 있는 기준은 무엇일까. 바로 원천 DB와 타깃 DB 간 데이터가 누락되거나 뒤틀리지 않고 정확하게 복제됐는지를 나타내는 정합성이 중요하다.
실제로 데이터를 복제하는 과정에서 원천 DB와 타깃 DB의 데이터에 오류가 나타나는 일이 많다. 데이터 복제 시 오류가 나타나는 이유는 원천 DB 및 운영시스템이 다운된 후 재시작하는 과정에서 데이터가 누락되기 때문이다. 또한 휴먼에러(작업자)도 대표적인 오류의 원인이다.
한 기업 관계자는 “실시간 데이터의 경우 원천 DB 및 운영 시스템에서 컬럼이나 테이블이 추가되면 타깃 DB나 시스템에도 같은 테이블이 만들어져야 한다. 이 과정에서 타깃 DB나 시스템에 반영이 안 될 경우 데이터에 오류가 발생한다. 또는 CDC 구축 후 안정화 과정에서 작업자의 잘못으로 인해 오류가 생길 수 있다. 통상 데이터에 대한 오류는 대부분 휴먼에러로 인해 발생한다”고 설명했다.
엑스로그 CDC 솔루션의 정합성 검증 기능 (출처: 엑스로그)
CDC 관련 솔루션을 보유한 기업들은 데이터의 정합성을 확보할 수 있는 여러 기능을 솔루션에 적용하고 있다. 엑스로그는 테이블 단위를 고속으로 검증하는 ‘액셀 체크’ 기능과 데이터 내용을 비교하는 ‘액셀 밸리데이터’ 기능을 제공하고 있다.
엑스로그 CDC 제품 내 모듈 (출처: 엑스로그)
엑스로그 장석주 대표는 “우리 엑스로그 포 CDC는 운영 중에도 원천 DB와 타깃 DB 각각의 데이터 기준점을 잡고 실시간으로 확인하는 기능을 제공하고 있다. 아울러 원천 DB에 트랜잭션이 발생했는데 타깃 DB에 데이터가 제대로 복제되지 않았을 경우 이벤트 알람을 주는 기능도 제공하고 있다”고 말했다.
아크데이타도 정합성을 맞추기 위한 툴을 지원하고 있다. 아크데이타 고광연 대표는 “정합성을 맞추고 틀어진 데이터를 바로 맞추는 도구를 제공하고 있다. 아울러 데이터 정합성 확인 작업에 앞서 수시로 인공지능(AI)을 활용해 자동으로 데이터 감지해 보정하는 기능도 제공하고 있다. 해당 기능을 개선해 내년에는 제품화할 계획이다”라고 설명했다.
세계 최초로 CDC 기술을 솔루션화 한 퀘스트소프트웨어는 데이터 검증과 보정이 가능한 기능을 무상으로 제공하고 있다. 퀘스트소프트웨어 측은 “발생할 수 있는 데이터 오류 사고에 대비해 신속하게 대응할 수 있는 환경을 제공하고 있다. 또한 파트너의 기술지원 및 제조사 기술지원까지 24×365 체계로 제공하고 있다”고 강조하며 데이터 정합성에 대한 지원 방안을 소개했다.
아크데이타가 제시한 타사 제품 비교 (출처: 아크데이타)
엑스로그가 제시한 타사 제품 비교 (출처: 엑스로그)
이기종 DB 이용 확대 및 클라우드 전환 증가…빅데이터 DB 활용 요구도
기업들이 사용하는 DB의 종류가 다양해지면서 이에 대응하려는 CDC 솔루션 기업들의 움직임도 빨라지고 있다. 과거에는 기업의 핵심 업무에는 대부분 오라클 DB가 사용됐다. 현재도 이러한 상황은 계속되고 있지만 오라클의 영향력은 과거에 비해 점차 줄어드는 추세다. 비용 등의 여러 이유로 기업들이 다양한 DB를 사용하기 시작한 것이다. 이러한 DB 시장변화는 CDC 기업들의 행보에도 직접적인 영향을 미치고 있다. 과거의 CDC는 오라클 DB에서 그 외의 DB로의 데이터 전송이 대부분이었지만, 지금은 다양한 DB들끼리 실시간 데이터 전송이 요구되고 있다.
이에 따라 CDC 솔루션 기업들은 오라클 DB중심에서 벗어나 지원 DB를 확대하는 데 중점을 두고 있다. 엑스로그는 지원할 수 있는 제품을 큐브리드(CUBRID), 티맥스티베로 등 국산 DB와 포스트그레SQL, 마리아DB와 같은 오픈소스 DB, 아마존웹서비스(AWS)나 마이크로소프트(MS) 애저, 구글 클라우드, 네이버클라우드 등 클라우드 DB 등으로 확대했다. 아크데이타는 티맥스티베로 등 국산 DB부터 My SQL, 포스트그레SQL 등 오픈소스 DB 등을 지원하고 있다.
기업의 인프라가 클라우드 환경으로 변하고 있는 것도 CDC 시장의 중요 이슈로 꼽힌다. 기존 온프레미스 환경에 구축된 DB를 클라우드 환경으로 마이그레이션하는 경우, 보통은 DB 전체를 옮겨 담기보다는 비용효율적인 서비스를 위해 클라우드 인프라를 구축하는 경향이 있다. 기존 온프레미스 DB를 클라우드 DB로 대체하는 것이 아닌, 기존의 온프레미스 인프라를 그대로 유지한 채 클라우드 DB를 추가적으로 도입하는 것이다. 따라서 온프레미스 상에서 데이터는 여전히 생산되며, 최초의 1회 클라우드 마이그레이션 이후 지속적인 변경 데이터 반영이 필요하다.
또한 클라우드로 마이그레이션하는 단계에서도 비즈니스 다운타임의 최소화가 중요한 만큼, CDC를 활용한 무중단 마이그레이션 역시 주목받고 있다. 데이터 원본을 최초로 클라우드로 전송하고, 그동안 실시간으로 발생하고 있는 변경 내역 역시 CDC를 통해 수 분 안에 반영할 수 있다.
산업군 별 CDC 솔루션 활용 예시
한편, 최근 빅데이터 분석에도 실시간 데이터 처리가 중요하게 여겨지고 있다. 가령 증권사나 카드사와 같은 금융사가 빅데이터를 분석해 이상징후를 탐지하고 사기방지에 활용할 수 있고, 고객과 실시간 상호작용이 필요한 비즈니스를 구현하는 것 등을 예로 들 수 있다.
앞서 과거 CDC 기업들은 자체 솔루션만으로 실시간 빅데이터 처리를 위해 연동이 어려웠다. 하지만 최근 CDC 솔루션으로 빅데이터 DB를 타깃 DB로 삼고 원천 DB(RDB)에서 빅데이터 DB(타깃 DB)로 실시간 복제하는 작업이 가능해졌다. 물론 아직까지 빅데이터 DB를 원천 DB로 두고 CDC로 복제할 수는 없다.
이에 대해 한 기업 관계자는 “빅데이터 DB와 관련해 CDC가 지원할 수 없는 영역이 존재한다. 비정형 데이터 처리나 웹 로그 등은 CDC 솔루션으로 해결할 수 없다. CDC만으로 하둡파일시스템(HDFS), 하이브(Hive)에 변경된 데이터를 실시간으로 적재할 수는 없지만, 아파치 카프카나 HDFS API를 함께 활용할 경우 실시간 적재가 가능하다. 실시간 데이터는 아파치 카프카로 직접 수집하고 RDB로 수집된 데이터는 CDC로 적재함으로써 No SQL DB나 HDFS에 대한 적재가 가능하다”면서 “최근에는 하둡보다 그린플럼(Greenplum)이나 벡터 와이즈(Vector Wise), 네티자(Netezza), 버티카(Vertica) 등 빅데이터 DB가 인기가 많은데, 이들 빅데이터 DB를 타깃 DB로 활용할 수 있도록 대부분의 CDC 솔루션이 지원하고 있다”고 설명했다.
퀘스트소프트웨어, ‘퀘스트 셰어플렉스(Quest SharePlex)’ |
퀘스트소프트웨어, ‘퀘스트 셰어플렉스(Quest SharePlex)’
|