데이터 레이크하우스

용어집으로 돌아가기

데이터 레이크하우스란 무엇입니까?

데이터 레이크하우스는 데이터 레이크가 가지고 있는 유연성, 비용 효율성, 그리고 대용량 지원 기능에 더해, 데이터 웨어하우스의 데이터 관리 기능과 ACID 트랜잭션을 통합한 새로운 형태의 오픈 데이터 관리 아키텍처로, 모든 데이터를 대상으로 비즈니스 인텔리전스(BI)와 머신 러닝(ML)을 지원합니다.

데이터 레이크하우스: 단순함, 유연함 그리고 저렴한 비용

데이터 레이크하우스는 새로운 오픈 시스템 디자인 입니다. 데이터 웨어하우스와 비슷한 데이터 구조와 데이터 관리 기능을 구현하되, 데이터 레이크에 쓰이는 저가 스토리지 상에 직접 구현하였습니다. 이 두가지를 하나로 병합함으로써 데이터 팀의 작업 속도가 빨라지는데, 이는 여러 시스템에 액세스하지 않고도 데이터를 사용할 수 있기 때문입니다. 또한 데이터 레이크하우스를 사용하면 팀원들이 가장 완전한 버전의 최신 데이터를 이용하여 데이터 사이언스, 머신 러닝과 비즈니스 분석 프로젝트를 수행할 수 있습니다. 데이터 웨어하우스부터 데이터 레이크와 데이터 레이크하우스까지, 데이터 스토리지 발전사

데이터 레이크하우스를 가능하게 하는 주요 요소 기술

데이터 레이크하우스를 가능하게 한 기술적 발전이 몇 가지 있습니다.
  • 데이터 레이크용 메타데이터 계층
  • 데이터 레이크에서 고성능 SQL 실행이 가능한 새로운 쿼리 엔진 디자인
  • 데이터 사이언스 및 머신 러닝 툴에 최적화된 액세스 등입니다.
메타데이터 계층도 오픈 소스 Delta Lake와 마찬가지로 오픈 파일 형식을 기반으로 하며(예: Parquet 파일) 어느 파일이 여러 테이블 버전 중 어디에 속하는지 추적하여 ACID 규정 준수 트랜잭션과 같은 강력한 관리 기능을 제공합니다. 메타데이터 계층을 사용하면 데이터 레이크하우스에 공통으로 제공되는 다른 기능도 지원됩니다. 스트리밍 I/O 지원(Kafka와 같은 메시지 버스가 필요 없어짐), 기존 테이블 버전으로의 시간 이동, 스키마 적용과 변화 및 데이터 검증 등이 대표적인 예입니다. 성능은 데이터 레이크하우스가 최근 비즈니스에서 사용되는 대세 데이터 아키텍처로 자리 잡은 중대한 요인입니다. 데이터 웨어하우스가 2계층(two-tier) 아키텍처에 존재하는 주된 원인 중 하나이기도 합니다. 저가의 개체 스토리지를 사용하는 데이터 레이크의 경우 이전에 액세스 속도가 느렸지만, 새로운 쿼리 엔진 디자인 덕분에 고성능 SQL 분석을 지원하게 되었습니다. 이와 같은 최적화에는 RAM/SSD에서의 핫 데이터 캐싱(더 효율적인 형식으로 트랜스코딩할 가능성이 큼), 클러스터에서 공동 액세스되는 데이터에 맞춘 데이터 레이아웃 최적화, 통계와 인덱스 등의 보조적 데이터 구조, 그리고 최신형 CPU에서의 벡터화된 실행 등이 포함됩니다. 데이터 레이크는 이와 같은 여러 기술을 조합하여 TPC-DS 벤치마크에 따른 다른 대중적인 데이터 웨어하우스에 비견할 만큼 대규모 Dataset에 우수한 성능을 달성합니다. 데이터 레이크하우스에서 사용하는 오픈 데이터 형식(예: Parquet)을 이용하면 데이터 사이언티스트와 머신 러닝 엔지니어가 레이크하우스에 저장된 데이터에 손쉽게 액세스할 수 있습니다. pandas, TensorFlow, PyTorch 등과 같이 이미 Parquet와 ORC 등의 소스에 액세스를 확보한 DS/ML 에코시스템에서 보편적으로 쓰이는 툴을 사용하면 됩니다. Spark DataFrames의 경우 이러한 오픈 형식에 선언적 인터페이스까지 제공하여 추가적인 I/O 최적화를 지원하기도 합니다. 이외에 감사 기록이나 시간 이동과 같은 데이터 레이크하우스의 다른 여러 기능도 머신 러닝의 재현성 향상에 도움이 됩니다. 데이터 레이크하우스로 이동하는 추세의 기저가 되어준 여러 가지 기술 발전에 대해 더 자세히 알아보려면 CIDR 논문 레이크하우스: 데이터 웨어하우징과 고급 분석을 하나로 통합한 차세대 오픈 플랫폼과 또 다른 논문인 Delta Lake: 클라우드 개체 스토어 기반 고성능 ACID 테이블 스토리지를 참조하시기 바랍니다.

데이터 아키텍처의 역사

데이터 웨어하우스 배경 지식

데이터 웨어하우스는 의사 결정 지원과 비즈니스 인텔리전스 애플리케이션 분야에서 오랫동안 존재해 왔지만, 비구조적 데이터, 반구조적 데이터 및 다양성, 속도와 볼륨이 모두 높은 수준인 데이터를 취급하기에는 적합하지 않거나 비용이 너무 비쌌습니다.

데이터 레이크의 출현

그러다 데이터 레이크가 출현하면 데이터 사이언스와 머신 러닝 용도로 저가 스토리지에서 다양한 형식의 원시 데이터를 처리할 수 있게 되었는데, 다만 여기에는 데이터 웨어하우스 분야의 중대한 기능이 빠져 있었습니다. 데이터 레이크는 트랜잭션을 지원하지 않고, 데이터 품질을 적용하지 않으며 일관성/격리가 부족해 추가(append)와 읽기, 배치와 스트리밍 작업을 혼합하기란 불가능에 가까웠습니다.

보편적인 2계층(Two-Tier) 데이터 아키텍처

데이터 팀에서는 이 두 가지 시스템을 끊임없이 짜집고 봉합하여 두 시스템 양쪽 모두의 데이터에 BI와 ML을 지원하고자 애썼으며, 그 결과 중복 데이터, 인프라 추가 비용, 보안 문제점, 중대한 운영 비용 등이 발생하게 되었습니다. 2계층(two-tier) 데이터 아키텍처에서는 데이터를 운영 데이터베이스에서 데이터 레이크로 ETL합니다. 이 레이크에 기업 전체에서 가져온 데이터를 저가 Object storage에 저장하고, 보편적인 머신 러닝 툴과 호환회는 형식으로 저장하지만 구성이나 유지 상태는 좋지 않은 경우가 많습니다. 다음으로, 중요한 업무용 데이터의 작은 조각을 다시 ETL하여 데이터 웨어하우스에 로드해 비즈니스 인텔리전스와 데이터 분석에 씁니다. 이런 2계층(two-tier) 아키텍처는 이처럼 ETL 단계를 여러 번 거치기 때문에 정기적으로 유지해주어야 하고 데이터가 부실해질 때가 많습니다. 이는 Kaggle이나 Fivetran에서 최근에 실시한 설문조사에 따르면 데이터 애널리스트와 데이터 사이언티스트가 주목하는 공통의 중대한 우려 사항이라고 합니다. 2계층(two-tier) 아키텍처의 보편적인 문제점에 관해 자세히 알아보세요.

기타 리소스


용어집으로 돌아가기