지난번 포스팅에도 언급했지만 데이터 처리 기술 이해의 세부 과목은 아래와 같습니다.
총 객관식 10문제가 출제되며, 과락을 면하기 위해 반드시 4문제 이상 맞춰야 합니다.
4절. 데이터 연계 및 통합 유형(동기화 기준)
데이터 연계 및 통합 시 일괄(Batch) 작업 또는 비동기식 근접 실시간(Near Real Time) 또는 동기식 실시간(Real Time) 방식이 혼용 사용될 수 있습니다.
일괄 작업 시에는 대용량 데이터의 처리가 가능하며, 실시간 통합 시에는 관심 대상 영역 상태에 대한 빠른 파악 및 대응이 가능하다는 장점이 있습니다.
일괄 작업의 사례로는 ETL 기능을 통해 운영 시스템으로부터 정기적, 반복적으로 대량의 데이터를 획득해 ODS를 구성하고, 이후 데이터 웨어하우스나 데이터 마트를 구성한 뒤 OLAP 정형/비정형 질의를 통해 경영 분석을 수행하는 작업을 들 수 있습니다.
동기식 실시간 데이터 통합의 사례로는 컨테이너 터미널, 공장 등의 생상, 운송 장비(시설)에 설치된 각종 센서들로부터 데이터를 실시간으로 획득해 운영 상태를 모니터링하고 필요한 경우 작업을 통제하는 사례를 들 수 있습니다. 이는 Complex Event Processing이라는 SW 및 데이터 아키텍처를 통해 구현할 수 있습니다.
요즘 들어 데이터 중복을 허용하는 분산 저장 환경 구성을 통한 높은 확장성을 확보하는 빅데이터 저장 인프라 스트럭처의 활용과 병행 설계되는 사례도 등장하고 있습니다.
※CEP(Complex Event Processing)
Complex Event Processing는 여러 이벤트 소스로부터 발생한 이벤트를 대상으로 실시간으로 의미 있는 데이터를 추출하여 대응되는 액션을 수행하는 것을 말합니다. 이때 이벤트 데이터는 스트림 데이터로써 대량으로 지속적으로 입력되는 데이터, 시간 순서가 중요한 데이터, 끝이 없는 데이터입니다. 이러한 스트림 데이터는 전통적인 관계형 데이터 베이스에서는 실시간 처리 및 분석이 불가능합니다. CEP는 바로 이런 스트림 데이터를 실시간으로 분석하는 이벤트 데이터 처리 솔루션입니다. – 출처 : “요즘 쓰고 있는이란?”, OKKY, https://okky.kr/articles/200864
일관(Batch) 통합 | 비동기식 실시간 통합 | 동기식 실시간 통합 |
. 실시간 데이터 통합 . 대용량 데이터 대상 . 높은 데이터 조작 복잡성 . 데이터추출 . 데이터 변형 . 데이터 적재 . CDC(Change data capture) . 감사 증적 . 웹서비스/SOA . 교차 참조 . 데이터 재처리 허용 . 점대점 데이터 연계 . 자동화 도구 및 자체 개발 SW 혼용 |
. 근접 실시간(Near Real Time)데이터 통합 . 중간 용량 데이터 . 중간 데이터 조작 복잡성 . 데이터 추출, 변형, 적재 . CDC . Data pooling and DB Streams . 웹서비스/SOA . 감사 증적(audit trail) . 교차 참조 . 다수 데이터 원천 및 목표 시스템 . 데이터 재처리 허용 . 자동화 도구 및 자체 개발 SW 혼용 |
. 실시간(Real Time) 데이터 통합 . 목표 시스템 데이터 처리 가능 시에만 원천 데이터 획득 . 데이터 추출, 변형, 적재 . 웹 서비스/SOA . Single transaction integrations . 단일 트랜잭션 단위 데이터 통합 . 데이터 재처리 불가 . 단일 또는 다수 데이터 원천 . 감사 증적 |
*감사 증적(Audit trail) : 기록에 대한 모든 처리행위를 추적하여 그것이 정책과 표준을 준수하여 이루어졌음을 확인할 수 있는 정보. 주로 처리행위의 시점, 처리행위자 및 처리행위의 내용이 해당된다.
전통적인 ETL 기술은 데이터 웨어하우스 구성만을 주목적으로 했으나, 최근 들어 ODS와 BI플랫폼, MDB허브, Hadoop 클라우드 환경 등 다양한 데이터 통합 메커니즘들을 지원하는 것으로 그 영역을 확장하고 있습니다. 특별히 최근의 ETL 솔루션들은 빅데이터 환경과 전통적 데이터 환경(RDBMS 기반) 간 빅데이터 추출, 변형, 적재를 지원하고 있습니다
최근 기업 의사 결정 지원을 위해, 비정형 또는 준정형(semi-structured) 데이터의 중요성이 부각되고 있습니다. 이러한 비정형 또는 준정형 데이터를 정형 데이터로 변환하는 것은 빅데이터의 주요한 기술적 특성입니다. 만약 Map Reduce 등 빅데이터 기술을 활용하지 않을 경우, 정형 데이터로 변환하기 위한 많은 추가 개발이 필요합니다. 특히 빅데이터 기술을 이용하지 않고 정형 데이터로 변환하는 접근은 향후 시스템 확장성과 유연성을 확보하기 어렵게 하고, 기업 IT투자를 중장기적으로 보호할 수 없게 합니다. 따라서 기존 ETL 솔루션들도 이에 대응하기 위해 비정형 또는 준정형 데이터의 정형 데이터로의 변형 작업을 표준화하기 위한 시도들을 하고 있습니다.
구분 | 전통적 데이터 처리 기법 | 빅데이터 처리 기법 | 비고 |
추 출 | . 운영 DB(Operational Database) -> ODS . ODS -> 데이터웨어하우스 |
. 빅데이터 환경 -> 빅데이터 환경 |
특정 소스에서 타깃으로 데이터를 옮긴다는 측면은 동일 |
변 환 | O | O | |
로 딩 | O | O | |
시각화 | X | O | 시각화를 통해 대용량 데이터에서 통찰력을 획득하고자 하는 시도는 빅데이터의 고유한 특성임 |
분 석 | . OLAP . 통계(Statistics)와 데이터 마이닝 기술 |
통계와 데이터 마이닝 기술 |
각종 통계, 도구, 기법과 데이터 마이닝의 분석 모델 설계, 운영, 개선 기법의 적용은 유사함 |
리포팅 | 비즈니스 인텔리전스 | 비즈니스 인텔리전스 | |
인프라스트럭처 | .SQL .전통적 RDBS 인스턴스 (HA포함) |
.NoSQL등 .초대형 분산 (Redundant) 데이터 스토리지 |
전통적 데이터 저장 메커니즘 대비 매우 다수의 노드에 중복을 허용하는 방식으로 데이터를 저장하는 것은 빅데이터의 고유한 특성임 |
5절. 대용량 비정형 데이터 처리
1. 대용량 로그 데이터 수집
로그 데이터는 과거에는 시스템의 문제 상황을 보존, 서비스 접근, 사용 로그를 기록하는 용도로 사용됐습니다. 그러나 최근 사용자 행태 분석 등 기업의 주요 비즈니스 영역인 마케팅과 영업 전략 등에 필수적인 정보를 생성하는 데 사용되고 있습니다. 이러한 비정형 로그는 데이터 용량이 방대하기 때문에 이를 분석하기 위한 성능과 확장성의 시스템이 필요하며, 이러한 비정형 데이터 수집 시스템은 다음과 같은 특징을 가지고 있습니다.
1) 초고속 성능과 확장성 : 실시간으로 발생하는 대용량 데이터를 수집할 수 있어야 하며, 수집 대상 서버가 증가하면, 그 수만큼 에이전트의 수를 늘리는 방식으로 쉽게 확장할 수 있는 구조여야 합니다.
2) 데이터 전송 보장 메커니즘 : 수집된 데이터가 여러 단계를 거쳐 저장소에 도착할 수 있는데, 단계별 전송 시마다 신호를 주고받아 단 하나의 데이터도 유실되지 않게 할 수 있고, 여러 단계의 데이터 전송에서 인접한 단계로만 데이터 전송을 보장하는 방법도 있습니다. 각 방식마다 성능과 안정성이라는 트레이드오프가 존재하므로 비즈니스 특성을 고려해 선택해야 합니다.
3) 다양한 수집과 저장 플러그인 : 비정형 데이터는 기업 내부 발생 로그나 모니터링 데이터뿐만 아니라, 트위터와 같은 소셜 서비스의 데이터도 있습니다. 이러한 유명한 서비스로부터 몇 가지 설정을 통해 데이터를 수집할 수 있도록 내장 플러그인들을 제공해야 합니다.
4) 인터페이스 상속을 통한 애플리케이션 기능 확장 : 업무 특성상 일부 기능을 수정해야 하는 경우가 발생할 경우, 인터페이스를 활용해 원하는 부분만 비즈니스 용도에 맞게 수정할 수 있어야 합니다.
대표적인 오픈소스 데이터 수집 시스템으로 Flume-NG를 살펴보면, 플럼(Flume)은 앞서 언급한 비정형 데이터의 주요 특징을 포함하고 있으며, 빅데이터 플랫폼을 구축할 때 수집 시스템으로 많이 활용되고 있습니다. 플럼은 아래 그림처럼 4단계에 걸쳐 데이터를 수집, 저장 할 수 있습니다.
2. 대규모 분산 병렬 처리
한 번에 처리해야 할 원천 데이터가 수십 GB에서 수십 TB에 이르거나 대규모 컴퓨팅과 연산 작업이 필요하다면 하둡을 사용하는 것을 적극적으로 검토해야 합니다.
하둡은 대규모 분산 병렬 처리의 업계 표준인 맵리듀스(MabReduce) 시스템과 분산 파일 시스템인 HDFS로 구성된 플랫폼 기술이며, 다음과 같은 특징을 갖습니다.
1) 선형적인 성능과 용량 확장 : 하둡을 구축한다는 것은 여러 대의 서버로 클러스터를 만든다는 의미입니다. 하둡은 필요시 서버를 추가하면 연산 기능과 저장 기능이 서버의 대수에 비례해 증가합니다. 이는 하둡이 기본적으로 비공유(Shared Nothing) 분산 아키텍처 시스템이기 때문입니다. 하둡 이전의 분산 컴퓨팅 시스템의 최대 클러스터링 대수가 100대였던 반면, 하둡은 2만 대의 서버들을 단일 클러스터로 구성할 수 있을 정도로 확장성이 뛰어나며, 선형적인 성능 확장도 가능합니다.
2) 고장 감내성 : 데이터는 3중 복제가 돼 서로 다른 물리서버에 저장되며, 특정 서버에 장애가 발생하더라도 동일 복제본이 있기 때문에 데이터 유실을 방지할 수 있습니다. 또한 맵리듀스 작업을 수행하다가 특정 태스크에서 장애가 생기면, 시스템이 자동으로 감지해 장애가 발생한 특정 태스크만 다른 서버에서 재실행을 할 수 있습니다.
3) 핵심 비즈니스 로직에 집중 : 맵리듀스는 기본적으로 맵과 리듀스라는 2개의 함수만 구현하면서 동작하는 시스템으로 알고리즘이나 비즈니스 로직 개발자는 맵리듀스라는 데이터 처리 분석 방식만 이해하고 비즈니스 목적에 맞게 간단한 코드만 작성해 주면,데이터가 크고 작음에 신경 쓰지 않아도 됩니다. 시스템 수준에서 발생하는 장애 상황이나 확장성, 성능 등의 이슈는 하둡이 내부적으로 최적화해 처리합니다.
4) 풍부한 에코 시스템 형성 : 현재 다양한 도메인과 기술 영역에서 하둡의 응용 기술들이 오픈 소스 프로젝트의 형태로 소개되고 있습니다. 데이터 수집 기술로는 Flume-NG, 데이터 연동 기술로는 Sqoop, 데이터베이스 기술인 NoSQL로는 HBase, 대용량 SQL 질의 기술로 Hive와 Pig, 실시간 SQL 질의 기술로 Impala와 Tajo, 워크플로 관리 기술로 Oozie, Azkaban 등이 있습니다.
3. 데이터 연동
비정형 데이터를 가지고 데이터 분석을 하려면 기업 내의 축적된 데이터와 정보를 연동하는 것이 필요합니다. 그러나, 기업 시스템인 데이터베이스를 대상으로 맵리듀스와 같은 대규모 분산 병렬 처리를 하는 것은 심한 부하를 야기할 수 있기 때문에, 정형 데이터와 비정형 데이터 간의 연계 분석을 위해서, 데이터베이스의 데이터를 하둡으로 복사 후 하둡에서 대규모 분산 병렬처리를 수행합니다.그 결과 요약된 작은 데이터 셋을 다시 데이터베이스에 기록하는 식으로 작업하며,이러한 기능을 수행하는 대표적인 오픈 소스 기반 설루션으로 스쿱(Sqoop)이 있습니다.
4. 대용량 질의 기술
하둡은 저비용으로 대용량 데이터를 저장하고 빠르게 처리할 수 있는 시스템이며, 빅데이터 구현을 위한 핵심적인 플랫폼 기술로 사용되고 있습니다. 하지만 여전히 코딩이 필요하기 때문에 분석가에게는 여전히 어려울 수 있으며, 이를 보완하기 위해 나온 것이 하이브(Hive)입니다. 하이브는 사용자에게 친숙한 SQL이라는 질의 기술을 이용하여 하둡상의 저장된 데이터를 쉽게 처리하고 분석할 수 있도록 해주는 도구로 사용되고 있습니다. 이러한 하둡과 하이브는 대용량 데이터를 배치 처리하는데 최적화되어 있지만, 실제 업무에서는 배치 처리뿐만 아니라, 데이터를 실시간으로 조회하거나 처리해야 하는 일들이 많기 때문에 실시간 처리라는 측면에서 하둡의 제약사항을 극복하기 위한 다양한 시도가 있었습니다. 이 중 최근 주목받고 있는 것이 SQL on 하둡이라고도 하는 실시간 SQL 질의 분석 기술입니다.
참고문헌
데이터 분석 전문가 가이드, 한국데이터산업진흥원, 2021년 3월 15일 개정판