메뉴

문서정보

Data Lake 란

데이터 레이크(Data Lake). 번역하면 데이터 호수 쯤 되겠다. 별거 없다. 정형 데이터, 비정형 데이터, 반정형 데이터 등 같가지 데이터를 전부 모아두는 장소다. 이런 질문이 생길 수 있다. SQL(RDBMS)도 있고 NoSQL도 있는데 굳이 복잡하게 중간에 데이터를 모아둘 필요가 있을까 ?

아키텍처 관점에서 데이터 레이크는 "Compute"와 "Storage"를 Decouple하는 역할을 한다. 소프트웨어 공학에서 디커플(decouple)는 시스템의 연결을 끊는 것을 말한다. 시스템을 디커플하게 되면 종속성이 제거 되기 때문에 시스템의 스케일을 키우는게 쉬워진다. RDBMS를 예로 들어보자. RDBMS는 컴퓨팅과 스토리지가 결합되며, 각 시스템이 서로에게 영향을 주는데, 여기에 컴퓨팅과 스토리지의 결합은 소프트웨어가 책임을 지기 때문에 특정한 규격으로 저장해야 하기 때문에 유연성이 떨어진다. 결국 사용목적이 특정된다. 유구한 전통의 RDBMS(SQL 기반의)가 있음에도 새로운 데이터베이스들이 계속해서 만들어지는 이유다.

데이터 레이크는 "단지 데이터를 쌓아두기만" 하므로 스케일이나 형식, 프로토콜 등을 신경쓸 필요가 없다. 이렇게 데이터들을 데이터 레이크에 쌓아 놓고 요구사항이 있을때 컴퓨팅 파워를 이용해서 요구사항에 맞도록 가공/분석 하여 쓸모있는 데이터를 만들게 된다.

예전 방법을 두고 이렇게 까지 해야 하나 ?
  1. 데이터의 양이 크게 늘었다.
  2. 데이터의 종류가 다양해졌다.
  3. 시장의 요구사항도 다양해졌다. 시장이 뭘 필요로 할지 모르니, 필요 할 때 목적에 맞게 빠르게 분석해야 한다.
  4. 분산 컴퓨팅 기술이 일반화 됐다. 온디맨드로 대량의 데이터를 분석 할 수 있게 됐다.
데이터 레이크의 컨셉은 아래와 같다.

... 계속