무중단 데이터 마이그레이션 지원으로 오픈소스·클라우드 환경 전환 도와
[데이터넷] 인공지능(AI), 빅데이터, 클라우드를 이용하기 위해 원천 시스템에서 데이터를 가공·정제할 수 없으며, 운영계에서 사용된 데이터베이스(DB)를 목표 시스템인 정보계(DW 또는 빅데이터 DB 등)로 실시간으로 전달해 가공·정제하고 사용한다. 그러나 실시간이 아닌 주기적으로 데이터를 통합해 사용한다면 그 데이터는 오래 전의 의미 없는 데이터일 수 있고 제때 활용하기 어렵다. 이에 4차 산업혁명 시대에는 실시간으로 데이터를 전달하는 기술이 중요하다. <편집자>
장석주 알투비솔루션 대표
실시간 데이터 동기화 기술인 변경 데이터 추출(CDC: Change Data Capture) 솔루션은 기존 ETL(Extract Transform Load) 방식에서 벗어나 재수행 로그(Redo Log)에 직접 엑세스하는 방식의 기술이다. 최근 DB 로그를 이용하지 않는 기술은 더 이상 CDC 솔루션이라 표현하지 않을 만큼 최적의 변경 데이터 추출 기법으로 자리를 잡았다.
실시간(Real Time) 또는 준실시간(Near Real Time)으로 원천 시스템의 운영계 DB의 트랜잭션 로그에서 변경 데이터를 추출하고 목표 시스템의 정보계에 정보를 전달해 사용자 업무에 맞게 데이터를 가공·정제 처리하고자 할 때 사용된다.
모든 거래 발생 이벤트를 추척 및 추출해야 하므로 RDBMS 종류에 상관없이 변경 이력을 관리하는 재수행 로그나 보관 로그(Archive log)를 사용한다. 대부분 추적·추출 데몬(Daemon)이 실시간으로 원천 시스템의 재수행 로그나 보관 로그를 읽어 들여 목표 시스템에 적용하는 방식으로 동작한다.
[그림 1] CDC 솔루션 구조
일부 기업에서는 원천 시스템의 테이블에 트리거(Trigger)를 걸어 처리하는 방식을 사용하기도 하지만, 트리거 방식을 사용했을 때 원천시스템의 큰 부하 및 위험성(Dead lock, 오작동, 장애 추적의 어려움 등)이 존재하기에 사용할 만한 방법은 아니다.
CDC 솔루션 기술 동향
국내외 기업들이 탈 오라클 선언 및 타 DBMS 사용이 늘어남에 따라 시장의 많은 변화가 일고 있다. 대표적인 사례로는 아마존이 2020년 1분기에 약 7500여 개의 오라클 DBMS에 저장된 내부 데이터 75페타바이트(PB)를 여러 AWS DBMS로 서비스를 옮겼다. 현대자동차그룹 역시 2019년 탈 오라클을 선언하고 국산 DBMS인 티베로(Tibero) 및 오픈 DBMS로의 전환을 가속화하고 있다.
기업이 다양한 DBMS로의 전환 및 클라우드 기반의 서비스로 이동하면서 지원 DBMS 확대 및 클라우드 전환이 이슈가 되고 있으며, 클라우드로 마이그레이션하는 단계에서 비즈니스 다운타임의 최소화가 중요하게 여겨지는 만큼 CDC 솔루션을 활용한 무중단 마이그레이션도 중요한 요소로 부각되고 있다. CDC솔루션을 통해 데이터 원본을 최초로 클라우드로 전송하고, 그동안 실시간으로 발생하고 있는 변경 내역을 수초~수분 안에 반영할 수 있어 무중단마이그레이션이 가능하기 때문이다.
최근 빅데이터의 중요성이 부각되며 실시간 데이터 분석 요건이 많아지고, 관련 분야의 규모가 커짐에 따라 CDC 솔루션의 중요성이 커지고 있지만, 이는 정형화된 RDBMS의 데이터를 다른 RDBMS로 옮기는 것에 특화된 솔루션이기에 비정형 데이터 수집이나 전송에 활용하기 힘들다. 따라서 점차 비정형 데이터의 가치가 상승하고 빅데이터 활용이 늘어남에 따라 CDC 솔루션도 정형 데이터만이 아닌 비정형 데이터를 실시간 전송하고 데이터를 활용할 수 있도록 기술 개발이 이뤄져야 할 것이다.
실제로 기업들이 사용하는 DBMS의 종류 및 업무가 다양화되고 클라우드 환경으로 인프라를 이동하면서 국내외 CDC 솔루션 기업들은 클라우드 환경 지원, 국내외 이기종 DBMS 및 빅데이터 DBMS로의 실시간 복제 지원 등의 기술 개발을 진행하고 있으며, 급격이 변화하는 시장에서 타 솔루션과의 결합을 통한 정형·비정형 데이터 처리로 새로운 기회를 찾아 나서기 위해 발 빠른 움직임으로 시장의 변화에 대응하고 있다.
원천시스템 부하 낮춰
분석을 위한 정보계 시스템은 운영 중인 원천 시스템의 데이터를 동기화해야 한다. 데이터를 동기화하는 방식은 크게 두 가지로 나뉘는데, 하나는 ETL 솔루션과 같은 방식으로 특정 시점의 전체 데이터를 동기화시키는 것이다. 그러나 동기화 초기에 초기 적재라는 명칭으로 전체 데이터를 읽고 쓰기 때문에 원천시스템에 가해지는 부하가 크며, 작업량이 많고 시간도 오래 걸린다.
[그림 2] ETL 솔루션 구조
두 번째는 변경된 데이터만 동기화시키는 방식인데 정해진 짧은 시간에 데이터를 동기화해야 하기 때문에 CDC 솔루션을 주로 사용하게 된다.
변경 데이터 추출 유형은 크게 4가지다. 첫째, 전체 데이터를 동기화한 후 다음 시점에 전체 데이터를 비교해 변경된 데이터만 동기화하는 방법이다. 데이터양이 적을 시 주간 및 월간 작업으로 적당하나 비효율적이기에 잘 사용하지 않는다.
둘째, EAI나 직접 코딩해 개발하는 것으로, 데이터의 이벤트를 파일로 남기거나 다른 프로세스로 전달하는 방식이다. 특수한 업무에 적합하며 많은 테이블에 적용하기에는 개발 및 운영, 성능 등 이슈가 있다.
셋째, 타임스탬프(Timestamp) 방식으로 마지막 수정 일시 칼럼을 추가해 관리하는 방식으로 오라클과 같은 개발형 DB에 많이 사용됐다.
넷째, 원천 시스템에서 정보계로의 실시간 데이터 전달 요건이 발생함에 따라 타임스탬프 방식보다 안정적인 CDC로의 전환이 늘어났다. 현재는 타임스탬프 방식은 거의 사용하지 않고 CDC 솔루션이 사용된다.
데이터 누락·유실 위험성 막아
다양한 변경 데이터 동기화 방식 중 CDC 솔루션을 선택하는 대표적인 이유는 원천시스템 부하율이다. ETL이나 EAI에서 사용하는 타임스탬프는 칼럼 기준으로 대상 테이블마다 SQL이 실행되며, 수만 개의 SQL이 동시에 수행되지 않더라도 많은 세션이 작업하므로 원천시스템에 많은 부하가 발생하게 된다.
이에 반해 CDC 솔루션은 원천시스템에 전체 테이블을 풀 스캔(Full Scan)하는 방식이 아닌 한 개의 트랜잭션만으로 전체 테이블의 데이터를 추출하며, 원본 테이블에 직접 접근하지 않기에 시스템 자원 사용률이 적으므로 원천시스템에 부하를 적게 발생시키며, 실시간으로 변경 데이터만을 추출할 수 있다.
또 전체 프로그램에서 데이터 갱신 시 타임스탬프 칼럼의 값을 추가·갱신해야 하므로 DBA나 운영자가 직접 SQL로 데이터를 처리하는 경우 데이터 누락이 발생할 가능성이 높다. 하지만 CDC 솔루션 사용 시 타임프 칼럼이 필요 없어 기업이나 대형 SI 프로젝트에도 CDC 솔루션이 선택된다.
타임스탬프는 데이터 갱신 시간과 커밋(Commit) 시간 차이에 의한 데이터 유실 발생이 있을 수 있으며, 대량 데이터 배치 작업의 경우 발생 가능성이 높다. 데이터 갱신 시간과 커밋된 시간의 차이가 일자의 경계가 넘어갈 때 주로 발생할 수 있으며, 동일한 커밋에 의한 트랜잭션이지만 발생 일시가 오래된 경우 변경 데이터로 인식하지 못하는 경우가 종종 발생한다.
일부 시스템들은 삭제 데이터를 위한 칼럼을 별도로 관리하기도 하지만 어떠한 이유에서든 삭제는 발생하며, ETL 방식의 경우 삭제 데이터에 대한 동기화는 누락이 발생한다. 이에 CDC 솔루션은 삭제된 데이터는 테이블에 존재하지 않으므로 추출하지 않는다.
시스템 구조상 절대 발생하지 않을 거라 생각하지만 운영상 어쩔 수 없이 발생하는 부분이 키값의 변경이다. 키값이 변경된 경우 기존 키가 없어진 것을 인식하지 못하고 신규 데이터가 입력된 것으로 인식한다. 원천시스템이 운영계에서는 1건이지만 목표시스템의 정보계에서는 2건이 존재할 수도 있다. CDC 솔루션은 변경 전/후의 데이터를 모두 가지고 있기에 키값의 변경을 인식하고 이전 데이터를 신규 키값으로 대처한다.
그 외에도 비즈니스상 실시간으로 데이터를 전달하거나 통합·분산해야 하며, 타 솔루션으로 대처할 수 없는 업무가 늘어남에 따라 CDC 솔루션 도입이 늘어나고 있다.
CDC 솔루션 도입 시 고려사항
대표적인 CDC 솔루션으로는 퀘스트소프트웨어의 셰어플렉스(Shareplex)와 오라클의 골든게이트(Golden Gate)가 있다. 퀘스트소프트웨어의 셰어플렉스는 지난 2000년도부터 국내에 도입되면서 금융, 통신, 제조 등 다양한 산업군에서 전체 CDC 솔루션 시장의 90% 이상을 점유하기도 했다. 이에 대응하고자 오라클은 지난 2009년 인수한 골든게이트를 OGG(Oracle Golden Gate)로 공급하기 시작했으며, 현재는 셰어플렉스 시장 점유율을 넘어선 상태다.
국산 제품으로는 알투비솔루션의 엑스로그(X-LOG) 및 실크로드소프트사 실크로드(Silcroad)등이 있으며, 이들은 다양한 국내외 DBMS 및 빅데이터 DBMS, 이기종 DBMS 간 복제 지원 등 외산 솔루션이 제공하지 못하는 차별화된 기능을 앞세워 다양한 레퍼런스를 확보하며 시장 점유율을 높여가고 있다.
CDC 솔루션을 도입할 때는 몇 가지 고려해야 할 사항들이 있다.
우선 현재 운영 중인 시스템과 향후 도입할 운영시스템의 DBMS 종류에 대해서 도입하려는 CDC 솔루션이 다양한 DBMS 추출·적재를 지원하는지 살펴야 한다. 과거에는 DBMS 대부분이 오라클 시스템이었기에 다른 DBMS 복제에 대해 고려할 필요가 없었지만, 현재는 클라우드, 오픈 DBMS 및 국산 DBMS, 빅데이터 DBMS가 시장 점유율을 높여가고 있기 때문이다.
기존 오라클 사용자도 높은 라이선스 가격 및 유지보수 비용으로 인해 오픈 DBMS 및 국산 DBMS를 검토하고 도입하는 사례도 늘어났다. 그렇기에 현재 사용 중이거나 향후 도입할 DBMS에 CDC 솔루션 적용이 가능한지 확인이 필요하다.
[그림 3] 이기종 및 클라우드, 빅데이터로의 동기화
다양한 비즈니스에 RDBMS 및 클라우드 DB, 빅데이터 DBMS가 사용되므로 이기종 DBMS 간 혹은 빅데이터 DBMS로의 추출·적재가 가능한지 확인해야 한다. DBMS 운영 중 CDC 솔루션을 사용해 실시간으로 데이터를 전송해야 하는 요건이 발생할 수 있는데, DBMS에 CDC 솔루션이나 실시간 연계 솔루션으로 데이터를 전송할 수 없다면, DBMS 및 전체적인 인프라 변경이 이뤄질 수밖에 없다.
CDC 솔루션은 대량 데이터 발생 시 동기화 지연이 일어날 수 있으며, 동기화 지연이 발생하더라도 정해진 시간 내에 동기화가 가능한지 확인해야 한다. CDC 솔루션에 따라 성능 차이가 있으며, 정책을 조정해 작업 그룹을 별도로 관리할 수 있고 대량 데이터 갱신이 자주 발생하는 테이블과 일반 테이블에 대해 정책을 분리해 운영하는 방법 및 제품의 기능 중 일부인 멀티스레드(Multi-Thread)와 같은 기능을 사용하는 방법이 있을 수 있다.
암호화된 데이터 추출·적재가 가능한지도 체크해야 한다. 암호화 솔루션 패키지 라이브러리를 이용해 복호화 함수를 CDC 자체에서 호출하거나 이후 처리단계에서 복호화 후 동기화를 진행할 수 있다. 대부분 큰 문제가 되지 않겠으나 클라우드 및 빅데이터로의 인프라 구축이 늘어나면서 원천시스템과 목표시스템에서 사용하는 암호화 제품이 다를 경우 상호 호환되지 않아 문제가 발생할 수 있기 때문이다.
그 외에도 ▲다양한 OS를 지원하는지 ▲액티브-액티브(Active-Active) 상태의 운영 방식으로 목표시스템 활용이 가능한지 ▲1:1, 1:N, N:N 등 다양한 구성이 가능한지 ▲DML뿐만이 아니라 DDL 구문 추출·적재 문제는 없는지 ▲운영 상태 모니터링 등 다양한 부가 기능을 제공하는지 여부도 파악해야 한다.
향후 시장 확대 기대
다양한 종류의 대용량 데이터베이스가 생겨남에 따라 서로 다른 환경으로의 실시간 데이터 동기화 사례가 증가하고 있다. 이는 데이터를 활용한 비즈니스 업무와 인프라 구축이 확장되면서 과거에 비해 CDC 솔루션 시장이 커지고 있다는 것을 방증한다.
향후 ‘데이터 레이크’, ‘데이터 옵스’ 등에 사용 가능하도록 CDC 솔루션이 정형 데이터뿐만 아니라 반정형/비정형 데이터까지 실시간으로 전송할 수 있게 되면 통합된 데이터 아키텍처를 구현할 수 있을 것이고, AI, 빅데이터, 클라우드 등 다양한 비즈니스에도 활용되면서 그 중요성이 더욱 커질 것으로 여겨진다.
출처 : 데이터넷(http://www.datanet.co.kr)