데이터 레이크와 이를 구성하는 아키텍쳐에 대한 정리.
개요
이번 포스팅에서는 데이터 레이크의 정의와, 이를 구성하는 아키텍쳐에 대해 공부하며 익혔던 것들을 간단히 정리해보고자 한다. 사내 스터디로 카프카 스터디를 듣게 되었는데, 관련 책에 나와있는 데이터 레이크와 관련된 내용들을 간략하게 정리해보고자 한다.
데이터 레이크(Data Lake)
이게 뭐야?
대규모의 구조화, 반구조화, 비구조화된 대량의 원시 데이터를 저장, 처리, 보호하기 위한 중앙 집중식 저장소 라고 한다. 크기 제한을 무시하고 다양한 데이터를 처리할 수 있다는 점이 특징이다.
여기의 원시 데이터는 본격적으로 쿼리되어 정의되기 전의 그야말로 날것(!)이라고 말 할 수 있다. DS 분들이 본격적으로 툴이나, 예측 모델링을 사용하여 이 원시 데이터로부터 정의된 데이터를 추출해 낼 수 있다는 점이다.
이때 유지보수하는 사람들은 데이터 레이크에 정상적으로 액세스할 수 있도록 거버넌스를 통해 지속적으로 유지하고 관리해야 한다고 한다. 만약 그렇지 않으면, 데이터 관리가 점점 어렵고, 쓸모없는 데이터 정크들이 늘어나게 될 가능성이 높아지게 된다. 이런 데이터 정크들이 늘어나, 액세스할 수 없게된 데이터 레이크는 데이터 늪이라고도 부른다고 한다. (고인물…?). 따라서 데이터를 데이터 레이크에 보관하는 경우, 이 메타데이터로 태그를 항상 지정해둬야 한다고 한다.
한편 기업들이 데이터 레이크를 효과적으로 사용하면, 다음과 같은 이점을 얻을 수 있다고 한다.
- 총 소유 비용 절감
- 데이터 관리 간소화
- 인공지능 및 머신러닝 통합에 대비
- 분석 속도 향상
- 보안 및 거버넌스 향상
데이터 웨어하우스(data warehouse) 와의 차이?
관련하여 데이터 레이크를 검색하니 데이터 웨어하우스와 항상 내용이 딸려나온다. 이에 대해 둘의 차이도 간략하게 알아 보았다.
데이터 레이크 | 데이터 웨어하우스 |
---|---|
이 자체는 정의되지 않는 비정형 원시 데이터를 제공한다. | 처음부터 보고를 위해 설계된 구조화된 데이터 모델을 제공한다. |
즉시 데이터를 수집 가능하고, 향후 데이터의 사용처도 파악가능하다. | 정제 과정에 프로세스가 굉장히 복잡하며, 이 과정이 몇 개월, 길게는 몇년이 흐르며, 즉시 데이터 수집이 불가하다. |
Data Scientist , Data Engineer 들이 주로 연구 목적으로 사용한다. | Business Analyst 들이 정기적 보고에 주로 사용한다. (어떤 데이터가 필요한지 이미 알기 때문) |
대규모이지만, 상용 하드웨어를 자주 사용하여 비용이 상대적 저렴 | 비용이 많이 들 수 있다. |
데이터 레이크를 위한 여러가지 아키텍쳐
람다 아키텍쳐
람다 아키텍쳐는 일반적이고, 확장가능하며 휴먼 에러나, 하드웨어의 장애로 인한 장애를 허용하는 데이터 프로세싱 아키텍쳐이다. 저지연의 읽기나 업데이트등의 유스케이스에서의 작업을 수행하는 것을 목표로 한다.
- 모든 데이터는 batch layer, speed layer 양쪽으로 들어간다.
- 배치 레이어는 다음 기능을 수행한다.
- 마스터 데이터셋을 관리 (이 녀석은 불변이며, 오로지 append 만 수행된다.)
- 서빙 레이어의 배치 뷰를 사전 계산한다.
- 서빙 레이어는 배치 뷰를 인덱싱 함으로써 특정 목적을 위해 낮은 지연으로 쿼리를 할 수 있게 끔 해준다.
- 스피드 레이어는 서빙 레이어 업데이트의 높은 지연을 보정하기 위해 오직 최근의 데이터만 처리한다.
- 요청되는 모든 쿼리는 배치 뷰와 실시간 뷰로부터의 결과의 합산을 반환한다.
이 녀석은 데이터를 분석, 처리하는 데에 필요한 로직이 두벌로 각각의 레이어에 따로 존재해야 했다는 점과, 배치 데이터와 실시간 데이터를 융합하여 처리할 때 다소 유연하지 못한 파이프라인을 생성해야 했다는 점이 단점이 있었다.
카파 아키텍쳐
카파 아키텍쳐는 스트리밍 데이터를 처리하기 위해 사용된 소프트웨어 아키텍쳐이다. 람다 아키텍쳐에 단점으로 부각되었던 로직의 파편화, 디버깅, 배포, 운영 분리에 대한 이슈를 제거하기 위해 배치 레이어가 제거된 점이 특징이다.
따라서 배치 프로세싱과 스트리밍 처리를 위한 구현을 한가지 기술로만 구현할 수 있다는 점이 제일 큰 특징이다.