데이터 중심 조직의 동반자, 데이터 전문 기업 소프트라인

핵심은 데이터 품질

빅데이터 플랫폼에 반드시 요구되는 것은 무엇일까요? 하둡? 머신러닝? AI? 이 모두는 있어도 되고 없으면 그만인 요소들입니다. 모든 데이터 시스템이 절대적으로 갖추어야 할 가장 중요한 요소는 바로 고품질의 데이터입니다. 머신러닝 기반의 AI가 시장의 관심을 독차지하면서 대부분의 조직들이 데이터 분석 영역에만 온 신경을 집중하고 있지만 사실 가장 중요하면서도 필수 불가결한 요소는 다름아닌 데이터 품질입니다. 머신러닝을 활용해 예측모델을 만드는 데이터 사이언티스트들이 작업시간의 80% 를 데이터 추출 및 정제 작업에 투자하고 있다는 복수의 연구결과가 이를 증명합니다. 데이터가 정확하지 않거나, 분석할 수 없는 형태이거나, 누락값이 많거나, 중의적이거나, 이미 유효기간이 지난 데이터가 대부분이라면 제 아무리 많은 데이터를 보유하고 있다 해도 활용가치는 거의 없다고 할 수 있습니다.

하지만 안타깝게도 거의 모든 원천 데이터는 지저분합니다. 데이터 생성 주체의 장애, 전송 상의 장애, 저장 오류, 입력 오류, 처리 및 관리 오류, 데이터 설계 오류 등 수많은 원인들로 인해 데이터 시스템의 원천 데이터는 기본적으로 품질이 매우 낮다고 가정하는 편이 옳습니다. 그렇기 때문에 원천 데이터를 단순히 수집하여 바로 데이터 시스템에 적재해서는 안됩니다. 적재 이전에 일련의 정제 및 변환작업을 거쳐야 하며 바로 이 작업이 데이터 통합 및 정제 입니다.

고품질 데이터 확보를 위한 데이터 통합 및 정제

고품질 데이터는 다음과 같은 특성을 갖추어야 합니다.
1. 접근성 (Accessible) : 데이터 분석가들이 필요한 데이터에 쉽게 접근하고 추출할 수 있어야 합니다.
2. 정확도 (Accurate) : 데이터가 가지는 값은 실제 상황을 정확하게 기록해야 합니다.
3. 연계성 (Coherent) : 하나의 데이터 항목은 관련된 복수의 데이터 항목과 정확히 조합 (join) 될 수 있어야 합니다.
4. 완료성 (Complete) : 데이터는 누락값을 가져서는 안됩니다.
5. 일관성 (Consistent) : 동일한 데이터 항목은 조직 내 모든 곳에서 동일한 포맷을 유지해야 합니다.
6. 명료성 (Defined) : 각각의 데이터 항목은 명확히 정의되어 중의적이지 않아야 합니다.
7. 관련성 (Relevant) : 데이터는 다운스트림의 데이터 분석 작업과 관련되어 있어야 합니다.
8. 안정성 (Reliable) : 정확도와 완료성을 갖춘 데이터 항목이 지속적으로 확보되어야 합니다.
9. 적시성 (Timely) : 데이터는 유효한 기간 내에 확보되고 분석되어야 합니다.

데이터 통합 및 정제 작업의 목적은 저품질의 원천 데이터를 위와 같은 요건을 갖춘 고품질의 데이터로 변환하는 것입니다.

데이터 통합은 복수의 데이터 원천과 통합 저장소를 연결하는 데이터 파이프라인을 통해 데이터의 이관을 수행합니다. 실제로 원천 데이터가 그대로 적재되는 경우는 많지 않습니다. 많은 경우 복수의 원천 데이터들을 조합해 새로운 데이터 항목을 만들어 내는 변환작업이 요구됩니다.

데이터 정제는 원천 데이터 혹은 통합된 원천 데이터의 포맷을 통일하거나, 누락값을 제거하거나, 구분자 (delimiter) 를 입력하거나, 데이터의 불필요한 값을 제거하는 등의 작업을 통해 고품질 데이터의 요건을 갖추는 작업을 의미합니다.

Batch vs Streaming

데이터 통합 및 정제 단계에서 고려해야 할 중요한 요소 중 하나는 데이터 유입 형태입니다. 왜냐하면 이에 따라 데이터 통합 및 정제 프로세스의 성격 자체가 달라지기 때문입니다. 유입형태에 따라 데이터는 크게 유계 (bounded) 데이터와 무계 (unbounded) 데이터로 구분됩니다.

유계 (bounded) 데이터는 유입되는 데이터에 명확한 시간 경계가 존재하는 데이터를 말합니다. 예를 들어, 매일 정해진 시간에 어제 수집한 데이터를 통합 저장소에 일괄 적재하는 작업을 수행한다면 적재 대상이 되는 데이터는 과거 24시간 동안 수집된 데이터이며 24시간이라는 시간 경계가 존재합니다. 따라서 이 경우 적재하는 데이터는 유계 데이터입니다. 유계 데이터는 본질적으로 과거 일정 기간의 데이터를 축적한 결과물이며 이러한 데이터는 위 예시처럼 주기적으로 일괄처리하는 것이 적합합니다. 이러한 일괄처리를 배치 처리 (Batch processing) 라고 하며 가장 보편적이고 검증된 배치 처리 기술이 ETL (Extract, Transform, Load) 입니다.

배치 처리의 장점
1. 경계 내에 축적된 데이터에 대한 완결성과 통일성 제공
2. 사전 정의된 처리를 주기적으로 수행하므로 상대적으로 구현이 쉽고 안정적임

배치 처리의 단점
1. 경계 기간 동안 데이터를 적재하여 분석할 수 없어 적시성 저하
2. 정해진 시간 동안 리소스를 일괄 데이터 처리에 집중하므로 정기적 다운타임 발생

관련 제품 : Informatica PowerCenter, IBM Data Stage

무계 (unbounded) 데이터는 유계 데이터와는 반대로 명확한 시간 경계가 없는 데이터입니다. 끊임없이 흐르는 시냇물처럼 원천으로부터 계속해서 흘러 들어오는 데이터를 축적하지 않고 유입되는 시점에 바로바로 처리하는 방식이 적합합니다. 이러한 처리 방식을 스트리밍 처리 (Streaming processing) 이라고 하며, 실시간 혹은 준실시간 데이터 분석을 위해서는 필수적인 과정입니다. 원천에서 데이터가 생성되는 시점은 임의적이므로 사실 모든 데이터는 본질적으로 무계 데이터입니다. 무계 데이터를 일정 기간 축적해서 유계 데이터화 하여 배치 처리할 것인지, 아니면 무계 데이터인 상태로 그대로 스트리밍 처리할 것인지는 데이터 분석 요건에 따라 결정됩니다. 대표적인 스트리밍 처리 기술은 배치 작업 주기를 짧게 설정하는 마이크로 배치 (Micro batch), 복수의 원천에서 임의 시점에 발생하는 이벤트에 의해 생성되는 데이터들을 유의미한 단위로 조합 및 분류하는 CEP (Complex Event Processing) 입니다.

스트리밍 처리의 장점
1. 데이터 유입 시점부터 최종 분석 시점까지의 지연 (latency) 최소화
2. 제대로 설계된 스트리밍 처리는 배치 처리를 불필요하게 만들 수 있음

스트리밍 처리의 단점
1. 기존 정보계에서는 거의 사용되지 않아 관련 기술역량이 제한되어 있음
2. 배치 처리에 비해 훨씬 다양한 요소를 고려해야 하는 복잡한 작업

관련 제품 : Informatica CEP

Top-down vs Bottom-up

정제되지 않은 원천 데이터를 1차적으로 정제한다 하더라도 모든 문제가 해결되는 것은 아닙니다. 거의 모든 조직에는 복수의 어플리케이션들이 존재하고 각 어플리케이션마다 별도의 데이터베이스를 가지고 있습니다. 이 경우 발생할 수 있는 문제는 크게 두 가지입니다.
1. 동일한 대상에 대한 중복된 상이한 데이터
분산된 데이터베이스들은 각각의 필요와 절차에 따라 데이터를 입력, 처리, 저장하므로 동일한 대상 (Entity) 에 대한 데이터라도 그 내용이 서로 상이한 경우가 일반적입니다. 예를 들어, 개인 고객에 대한 데이터를 영업관리 시스템에서는 주문 및 매출 기준으로 관리하고, 마케팅 시스템에서는 프로모션 대상자 기준으로 관리하게 되면 똑같은 고객에 대한 데이터가 두 데이터베이스에 서로 다른 내용으로 저장되게 됩니다. 이런 상황에서는 한 조직이 전체 고객의 수를 파악하는 것도 힘들게 됩니다.

2. 데이터 분류 및 체계화 부재
분산된 데이터베이스에 저장된 수많은 데이터들 중 어떤 데이터가 어떤 주제 혹은 대상에 관한 것인지 파악하고 분류하는 것은 매우 어려운 일입니다. 수많은 원천에서 다양한 데이터들이 생성되면 조직 내에 어떤 데이터가 어디에 있는지 알기가 매우 어렵습니다. 데이터를 조직의 자산이라고 생각한다면 있어서는 안될 일입니다.

이러한 문제에 대처하기 위한 방안은 크게 두 가지가 있습니다.
1. Top-down 접근방식
쉽게 생각할 수 있는 방안은 조직 내 전체 데이터 체계를 정의하여 조직 내 모든 데이터를 이 체계에 맞도록 구성하는 방안입니다. 각 부서의 업무 전문가, 데이터 전문가 등이 일정 기간 동안 논의를 거쳐 분류 체계를 정의하고, 서로 다른 버전을 허용해서는 안될 핵심 데이터의 스키마를 정의합니다. 보통 MDM (Master Data Management), Metadata 등이 이러한 접근방식을 취합니다. 이 방식은 큰 그림에서의 체계를 잡을 수 있다는 장점은 있지만, 변화무쌍한 데이터의 현실을 받아들이기에는 유연하지 못하다는 문제점이 있습니다.

관련 제품 : Informatica MDM, Informatica MetaData

2. Bottom-up 접근방식
이를 보완하기 위해 최근 등장한 방식은 분산된 데이터의 통합을 머신러닝을 활용해 자동화하는 데이터 큐레이션 (Data Curation) 입니다. 수많은 데이터를 사람이 일일이 살피고 이를 통합하고 분류하는 것은 사실상 불가능합니다. 하지만, 머신러닝을 활용하여 유사한 레코드들의 통합과 분류를 일정 수준 자동화한다면 오히려 변화하는 업무환경에 따른 데이터의 변화에 유연하게 대처할 수 있습니다. Tamr와 같은 새로운 툴이 바로 이러한 역할을 수행할 수 있습니다.

관련 제품 : Tamr

Top-down과 Bottom-up은 서로 대립되는 것이 아닌 상호 보완적인 접근방식입니다. Top-down 으로 조직의 근간이 되는 상위 데이터 체계를 정의하고, Bottom-up 방식으로 하부 체계에 유연성을 보장하는 것이 가장 바람직한 데이터 통합 및 분류 방식이라고 할 수 있습니다.