데이터 웨어하우스는 회사에 필요한 모든 데이터를 저장하여 분석할 수 있는 데이터베이스다.
SQL 기반의 관계형 데이터베이스 형태로 제공되며, Google Cloud의 BigQuery, Snowflake, AWS의 Redshift등이 대표적인 데이터 웨어하우스라 할 수 있다. 오픈소스 기반의 Hive/Presto/ClickHouse 등이 사용되기도 하며 Hive와 연동해서 Spark을 사용하는 경우도 있다.
이전 포스팅(댓글 참고)에서 이야기했던 것처럼 데이터 웨어하우스는 프로덕션 데이터베이스와는 별도로 운영되어, 고객이 아닌 내부 직원들이 데이터를 분석하고 활용하는 데 초점을 맞춘다.
OLAP, 고정비용 vs. 가변비용
지난 포스팅에서 이야기했던 것처럼 데이터 웨어하우스는 OLAP(Online Analytical Processing) 성격을 띠며, 주로 대량의 데이터를 분석하고 집계하는 작업에 적합하며 빠른 처리 속도보다는 처리할 수 있는 데이터의 크기가 훨씬 더 중요하다.
비용이란 측면에서는 고정비용 옵션은 매달 일정 금액을 내고 정해진 용량을 사용하는 반면, 가변비용 옵션은 사용한 만큼 비용을 지불하는 형태로 스케일링에 유리하지만 더 타이트한 관리가 필요하다. 고정비용 옵션의 예로는 AWS Redshift가 있는데 dc2.large 인스턴스 하나를 사용한다면 월 $180의 비용으로 고정된 용량(160GB의 SSD, 15GB Memory, 2 CPU)을 사용할 수 있다. AWS Redshift Serverless하고 가변비용 옵션도 제공된다.
일반적으로 가변비용 옵션이 더 큰 데이터를 처리하는데 적합하며 굳이 최고의 데이터 웨어하우스 옵션을 선택해달라고 묻는다면 BigQuery나 Snowflake를 추천한다.
데이터 웨어하우스의 특성
데이터 웨어하우스는 내부 분석 용도로 사용되므로, 외부 고객에게 영향을 미치지 않는 환경에서 대규모 데이터를 수집하고 분석하고 활용하는 형태로 사용된다.
큰 데이터를 적재해야 하다보니 Primary key uniqueness를 보장하지 못하며 INSERT INTO를 반복해 레코드를 적재하기 보다는 클라우드 스토리지에 레코드들이 적재된 파일을 로드하고 거기서 한번에 벌크 업데이트하는 형태(보통 COPY라는 명령을 사용)를 취한다.
실시간 처리보다 큰 데이터를 배치 형태로 적재하고 분석하는 데 최적화되어 있으며, 최근에는 ClickHouse와 같은 실시간 처리도 가능한 옵션들이 등장하고 있으며 Snowflake나 BigQuery, Redshift 등도 스트리밍 데이터 처리와 관계된 기능들을 출시하고 있다.
데이터 웨어하우스와 데이터 레이크와 데이터 레이크하우스
데이터 웨어하우스는 주로 구조화된 데이터를 처리하며 보존 기한이 설정된 데이터를 저장하는 반면, 데이터 레이크는 구조화되지 않은 데이터까지 포함하여 모든 데이터를 원형 그대로 보존하는 Raw Data 저장소에 가깝다. 데이터 레이크는 데이터 웨어하우스보다 큰 스토리지 용량을 저렴하게 제공하여, 장기 보관이 필요하거나 비구조화 데이터를 포함한 대규모 데이터를 관리할 때 유리하기 때문이다.
데이터 조직이 성숙해지면 보통 데이터 레이크를 채택하여 데이터 웨어하우스와 같이 사용하는 것이 일반적이다. 크고 비구조화된 데이터들을 먼저 데이터 레이크에 적재한 후 이를 선택적으로 처리해서 데이터 웨어하우스에 테이블 형태로 적재한다.
요즘은 데이터 레이크하우스라고 해서 데이터 웨어하우스와 데이터 레이크의 장점을 조합한 형태의 기술이 나오면서 많은 곳에서 사용되고 있는데 대표적인 기술로는 Databricks의 Delta Lake와 Netflix에서 오픈소스화한 Iceberg등이 있다. 나중에 Iceberg에 관한 포스팅을 따로 해보도록 하겠다. 다음 포스팅에서는 Snowflake라는 데이터 웨어하우스에 대해 좀더 심층분석해보도록 하겠다.
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 11월 8일 오전 1:46