Home 1. 빅데이터의 기초 지식
Post
Cancel

1. 빅데이터의 기초 지식

들어가며

⌜빅데이터를 지탱하는 기술⌟ 은 일명 ‘빅지기’ 로 불리며 오픈 채팅방 등에서 데이터 엔지니어링의 입문용으로 많이 추천되는 책입니다. 사실 몇년 전 취준생일때 한번 읽어보고는 책장에 꽂아두기만 했는데요, 최근에 다시 꺼내어 조금씩 곱씹어가며 읽어보니 예전과는 또 다른 재미가 있었습니다.

  1. 첫번째는 거시적인 관점에서 머릿속의 개념들이 체계가 잡히는 느낌이 들었습니다. 마이데이터란 업무를 시작하고, 만 1년반 이라는 시간이 지난 지금에서야 기존의 레거시 아키텍처 + 연관 금융 인증 및 중계시스템 + 사업(비즈니스) 가 어느정도 파악이 되었는데요, 거대한 아키텍처를 처음 마주했을 당시에는 이걸 왜 이렇게 만들었지? 하는 의문은 들었지만 업무처리에 급급해 녹여먹는 느낌은 들지 않았습니다. 하지만 어느정도 전체적인 그림과 히스토리를 알고 나서, 이 책에 나온 개념들을 같이 접목하여 읽어보니 상황(성능적인 부분, 비용적인 부분, 운영편의성)에 따라 왜 우리 시스템은 이렇게 구성되었는가? 를 이해하게 되더라구요.

  2. 두번째는 이 책과 현재 진행중인 기술이 어떤 방향성을 가지고 있는지 비교하는 재미가 있습니다. 이 책이 빅데이터의 기초가 되는 내용을 담고 있는 책이지만 어느정도 시간이 지난 책이니 만큼, 요즘에는 어떤 기술로 이런 문제를 핸들링 하는지 조금씩 찾아보면 재미가 있더라구요. 아마 최신기술 보다는 안정성이 검증된 기술을 가능한 오래, 효율적으로 유지하려고 하는 금융권 특유의 올드한(?) 문화에서 오는 기술적 갈증이 문제일 수도 있습니다 :)

  3. 세번째는 순수하게 모르는 기초적인 내용을 알게되는 재미입니다. 기술의 부분부분을 이해하거나 지엽적인 한 영역을 딥하게 한번 경험해보는 것은 그 나름대로 의미가 있다고 생각합니다. 하지만 핵심이 되는 기본적인 내용들을 잘 이해하는 것은 또 다른 문제라는 것이 느껴지더라구요. 현재 아키텍쳐가 최선인가? 를 따져보려면, 이게 왜 이렇게 구성되었는지를 먼저 잘 파악했어야 했는데 그저 새로운 기술을 공부해 덕지덕지 붙여보기에 급급했던 것은 아닌지 반성하게 되었습니다.

그래서 앞으로 6주간의 포스팅은 ⌜빅데이터를 지탱하는 기술⌟ 을 다시 한 번 읽어보고 간단하게 정리하는 포스팅을 진행해보려고 합니다.

1장. 빅데이터의 기초 지식 을 읽고…

1장은 전체적인 기초 개념들을 훑어줍니다. 크게 요약해보면 아래 세가지 정도로 정리 할 수 있을거 같습니다.

  1. Hadoop, NoSQL, 그리고 Data Warehouse
  2. 데이터 파이프라인 기본 구조와 DataLake
  3. 스크립트 언어(python(dataframe))의 효율성과 BI 도구, 모니터링

2011년도 이후, 데이터의 용량이 기하급수적으로 확대대면서 데이터의 양에 따라 스몰 데이터빅데이터 로 구분지어지기 시작하고, 이에 대응하기 위한 아키텍처와 기술들도 결이 달라지기 시작했습니다. 결국 하나의 아키텍처가 스몰 데이터빅데이터 모두에 비용 효율적으로 대응 가능했다면 베스트 이겠지만 그것이 쉽지 않기 떄문에 다양한 기술들이 등장했습니다. 이 중 1, 2번에 대한 내용을 요약 정리해 보겠습니다.

1. Hadoop, NoSQL, 그리고 Data Warehouse

우선 기존의 Data Warehouse 가 담당하던 기능을 Hadoop 이 대체하기 시작했습니다.

Hadoop-and-NoSQL Hadoop and NoSQL

Data Warehouse 는 보통 하드웨어와 소프트웨어가 결합된 상태로 제공되므로 데이터 용량이 늘어났을 때 확장하기가 쉽지 않다는 단점이 있습니다. 따라서 가속도적으로 늘어나는 데이터는 Hadoop으로 처리하고, 비교적 작거나 중요한 데이터는 Data Warehouse 에 넣어 DW에 직접적으로 가중되는 부하를 줄이는 방식이 정착되었습니다.

G2 Grid® for Data Warehouse G2 Grid® for Data Warehouse

그럼에서 DW는 하둡에 비해 분명한 성능상의 장점을 가지고 있습니다. 현재 Data Warehouse는 클라우드 솔루션이 높은 순위를 차지하고 있는 것으로 보입니다. 회사에서 아직도 사용중인 Tera/Vertica 를 포함해 Redshift, bigquery, snowflake 와 같이 유명한 솔루션들이 순위권에 있습니다.

Popular DW Solutions
g2.com 에 들어가시면 마켓 사이즈에 따른 그리드 차트도 함께 확인해 볼 수 있습니다.

2. 데이터 파이프라인 기본 구조와 DataLake

두번째 내용은 데이터 파이프라인 구조의 변화와 관련된 부분이였습니다. 기존에 Data Warehouse 기반으로 구축된 파이프라인이 Data Lake 중심으로 재구축 되었다는 내용입니다. 단계는 1) 데이터 수집 2) 분산 스토리지에 저장 3) 분산 데이터 처리 순이였는데요, 우선 데이터 수집은 기존에 벌크로 처리되던 흐름이 스트림 처리가 등장하면서 결과를 시계열 데이터베이스(TSDB, Time Series Database) 에 저장하는 식으로 처리합니다. 저장 단계에서는 수집된 데이터를 S3와 같은 분산 스토리지에 저장하거나, NoSQL 등 에 저장합니다. 마지막은 분산 데이터 처리 입니다. 사실 데이터 집계에 있어 제일 익숙한 언어는 SQL 입니다. 이를 위해서는 Hive 와 같은 쿼리 엔진(query engine) 을 이용하거나, Impala, Presto 같은 대화형 쿼리 엔진(interactive query engine) 을 사용합니다.

시계열 데이터베이스(TSDB, Time Series Database)
RDB는 인덱스가 걸려있으면 데이터의 양이 커질수록 쓰기 성능은 점점 저하되지만 TSDB의 인덱스는 이런 경우에도 성능이 떨어지지 않도록 만들어졌습니다. TSDB는 시간에 따라 저장공간을 분리하고 시간으로 쿼리를 할 수 있습니다.

이어지는 내용은 워크플로우 부분인데요, 아쉽게도 ETL과 ELT를 구분지어 주지만 부연설명은 제공하지 않아 관련 내용을 간단하게 정리해 보았습니다.

Transform 하여 Load 하는 방식이면 ETL(주로 Data Warehouse), 데이터를 먼저 Load 하고, 이후 Transform 과정을 거치면 ELT(주로 Data Lake) 이라고 합니다.

ETL과 ELT의 주요 차이점 5가지는 다음과 같습니다.

  • ETL은 데이터의 추출, 변환, 로드 프로세스를 가리킵니다. ELT는 데이터의 추출, 로드, 변환 프로세스를 가리킵니다. 둘 다 데이터 통합을 위한 프로세스입니다.
  • ETL에서 데이터는 데이터 소스에서 스테이징을 거쳐 데이터 웨어하우스로 이동합니다.
  • ETL은 민감한 보안 데이터를 정리한 후 데이터 웨어하우스에 로드하기 때문에 데이터 개인 정보 보호와 규정 준수에 도움이 됩니다.
  • ELT는 모든 데이터를 즉각적으로 로드할 수 있고, 사용자는 변환 및 분석 대상 데이터를 추후에 결정할 수 있습니다.
  • ELT는 변환을 기다릴 필요가 없고 데이터는 대상 데이터 시스템으로 한 번만 로드되기 때문에 데이터 로드가 더 빠르게 진행됩니다.

정리하며

이번 장의 내용은 정리하면 다음과 같습니다.

  • 2011 이후 Hadoop과 NoSQL 데이터베이스 분산 시스템이 기존의 DW(데이터 웨어하우스)를 보완 대체하기 시작했다.
  • 하나의 아키텍처가 스몰 데이터빅데이터 모두에 비용 효율적으로 대응하기란 쉽지 않다.

참고문헌

This post is licensed under CC BY 4.0 by the author.