데이터 웨어하우스(Data Warehouse), 데이터 레이크(Data Lake) 개념 및 차이점
데이터 웨어하우스란?
데이터 웨어하우스(Data Warehouse)란 정보(data)와 창고(warehouse)의 의미가 합성되어 만들어진 어휘로, 조직 전체의 여러 소스들(ERP, CRM, 데이터베이스, IoT, 파트너 시스템 등)로부터 데이터를 저장하고 처리하여 비즈니스 인텔리전스(BI) 활동, 특히 분석을 활성화 및 지원하기 위해 설계된 데이터 관리 시스템의 한 유형입니다.
쉽게 사용자의 의사 결정에 도움을 주기 위하여 정보들이 분석 가능한 형태로 저장되어 있는 중앙 저장소이며, 때문에 '의사결정 지원 시스템'이라고도 하는데요.
데이터 웨어하우스는 기존의 정보를 활용해 더 나은 정보를 제공하고, 데이터 품질을 향상하며, 비용과 자원 관리의 효율성을 향상하는 등의 목적을 가지고 있으며, 실제 비즈니스 부분에서 사용되는 대시보드, 리포트, 분석 툴 등의 기능을 강화하는 역할을 하고 있습니다.
데이터 웨어하우스의 4가지 특성
- 주제 지향적(Subject Oriented)
'업무 중심이 아닌 주제 중심'
기존의 데이터베이스가 '기능'이나 '업무' 처리를 중심으로 설계된 것에 비해 데이터 웨어하우스는 이용자 관점에서 접근이 가능한 '주제' 중심으로 데이터가 구성됩니다.
- 통합적(Integrated)
'데이터의 정합성과 물리적 일관성을 갖는 구조'
데이터 웨어하우스(DW)는 데이터 속성의 이름, 코드 구조, 단위 등의 일관성을 유지하는 등, 전사적인 데이터 표준화를 통해 데이터의 통일성을 확보합니다.
- 비휘발성(Non-volatile)
'데이터의 갱신이 발생하지 않는 조회 전용 데이터'
데이터 웨어하우스에는 일반적으로 데이터 갱신 프로세스가 존재하지 않으며, 데이터 적재와 데이터 액세스만 존재합니다.
따라서 데이터 웨어하우스 내의 데이터는 일단 적재(Loading)가 완료되면 읽기 전용의 스냅 샷(Snapshot) 데이터로 존재하게 됩니다.
- 시계열적(Time Variant)
'시간 변이적'
시계열성은 어떤 자료가 시간에 따라 변경되어야 하는 것이 아니고, 시간에 따른 변경을 항상 반영하고 있어야 함을 의미합니다.
(이력 데이터를 통해 시간 경과에 따른 데이터의 변화 과정을 파악할 수 있습니다.)
ETL, ELT
ETL(Extract, Transform, Load)와 ELT(Extract, Load, Transform)는 모두 데이터를 변환하는 방법인데요.
데이터 웨어하우스의 구성 요소 중 ETL이란 Extract, Transform, Load의 합성어이며, 데이터 웨어하우스 구축 시 데이터를 운영 시스템에서 추출하여 가공한 후 데이터 웨어하우스에 적재하는 과정을 이야기합니다.
(데이터 변환 작업에는 필터링, 정렬, 집계, 데이터 정리, 중복 제거, 유효성 검사 등의 다양한 작업이 포함됩니다.)
- Extarct: 하나 또는 그 이상의 데이터 원천들로 부터 데이터를 추출
- Transform: 추출한 데이터를 요구사항에 맞게 변경하는 작업
- Load: 변형 단계의 처리가 완료된 데이터를 특정 목표 시스템에 적재
반면에 ELT란 데이터를 추출해서 먼저 적재한 뒤 적재한 곳에서 데이터를 처리하는 방식을 말하며, 보통 대용량 처리에서 사용됩니다.
데이터 웨어하우스와 데이터베이스의 차이점
데이터베이스와 데이터 웨어하우스는 모두 데이터를 저장하고 관리하는 데이터 스토리지 시스템입니다. 하지만 각각 다른 목적을 수행하며 그에 따른 차이점이 존재하는데요.
먼저 데이터베이스가 데이터를 저장, 관리하는 데 주목적이 있는 반면, 데이터 웨어하우스는 위에서 본 내용처럼 데이터를 저장하고 처리하여 의사결정에 필요한 분석 정보를 제공하는 것에 목적이 있습니다.
그에 따른 차이점으로는 데이터베이스의 경우 주로 트랜잭션 데이터를 저장하고 관리하는데(OLTP, On-Line Transaction Processing) 유용한 반면, 데이터 웨어하우스는 다차원 정보에 직접 접근하여 정보를 분석하고 의사결정에 활용하는 온라인 분석 처리(OLAP, On-Line Analytical Processing)에 적합합니다.
또한 데이터베이스는 신속한 CRUD 작업(Create, Lead, Update, Delete)에 최적화되어 있는 반면, 데이터 웨어하우스는 OLTP 데이터베이스 및 다른 소스에서 집계한 대량의 데이터에 복잡한 쿼리를 사용하는 것에 최적화되어 있습니다.
추가로 데이터 웨어하우스는 데이터를 가져오는 기능 외에도 데이터 모델링(Data Modeling), 데이터 수명 주기 관리(Data Life Cycle), 데이터 소스 통합 등의 추가적인 기능을 갖추고 있습니다.
*온라인 트랜잭션 처리(OLTP)
데이터베이스에서 트랜잭션 데이터를 캡처하고 관리하는 시스템으로 즉시 처리되는 행 데이터를 빠르게 업데이트한다는 특징이 있습니다.
데이터 레이크란?
데이터 레이크(Data Lake)는 정형, 반정형 및 비정형 데이터를 비롯한 가공되지 않은 모든 종류의 데이터 저장, 처리, 보호하기 위한 중앙 집중식 저장소입니다.
데이터 레이크는 크기 제한을 무시하고 다양한 데이터를 기본 형식으로 저장할 수 있다는 특징이 있는데요.
애플리케이션, SNS, IoT 등에서 얻은 데이터는 데이터 레이크에서 원시 데이터로 수집됩니다.
데이터 레이크는 빅데이터 시대가 도래하며 그 중요성이 다시 부각되고 있는데요.
빅데이터 분석을 위해 정형 데이터뿐만 아니라 비정형 데이터까지 수집하고 분석하는 것에 대한 수요가 높아지면서 데이터 종류와 모델에 관계없이 모든 유형의 데이터를 저장하고 분석할 수 있는 데이터 레이크의 활용도가 높아지고 있습니다.
한 문장으로 정리하자면, 데이터 레이크는 빅데이터를 효율적으로 분석하고 관리하는데 목적을 두고 있습니다.
데이터 레이크에 있는 데이터(원시 데이터)는 쿼리 되기 전까지는 정의되지 않는다는 특징이 있는데요.
해당 데이터는 분석을 위해 필요할 때 변환되며, 이때 '읽기 스키마(schema on read)'가 적용되어 데이터 분석이 가능해집니다.
***
데이터 레이크에는 데이터의 가치를 끌어낼 수 있는 적절한 설계와 명확한 방법 없이 그저 데이터를 수집만 하게 되는 경우 잘못 관리된 데이터에 대한 '데이터 늪(Data Swamp)'이 생길 수 있습니다.
데이터 레이크와 데이터 웨어하우스의 차이점
먼저 데이터 레이크는 처리되지 않은 원시 데이터를 저장하는 반면, 데이터 웨어하우스에서는 데이터를 정제한 뒤에 저장한다는 차이점이 있는데요.
데이터 레이크에는 정형, 반정형, 비정형 데이터를 모두 저장할 수 있는 반면, 데이터 웨어하우스는 정형 데이터를 저장하는데 최적화되어 있다는 차이점도 있습니다.
또한 데이터 레이크의 경우 미리 정의된 목적이 없는 데이터를 저장하는 반면, 데이터 웨어하우스는 미리 정의된 목적을 가진 데이터를 저장한다는 차이점이 있습니다.
이처럼 데이터 웨어하우스와 데이터 레이크는 데이터 저장의 기능을 포함하고 있지만 각각 다른 용도에 맞게 최적화되어 있으며, 필요에 따라 이 두 가지는 같이 사용되며 상호 보완적인 역할을 할 수 있습니다.
< 참고 자료 >
https://kr.analysisman.com/2020/08/cloud-dw-cdp.html
https://www.redhat.com/ko/topics/data-storage/what-is-a-data-lake
https://www.datanet.co.kr/news/articleView.html?idxno=163207
'Programming > Database' 카테고리의 다른 글
SQL SELECT 쿼리 실행 순서 및 처리 과정 정리 (0) | 2024.05.09 |
---|---|
MySQL CTE란? (+ WITH RECURSIVE CTE) (0) | 2024.01.27 |
Java Enum 타입 데이터베이스 저장 형식은 뭐가 좋을까? (enum, varchar, tinyint) (0) | 2023.04.02 |
MariaDB 가상 필드를 통한 JSON 인덱싱 방법(Generated Columns) (0) | 2023.01.21 |
(MySQL) IN, NOT IN, EXISTS, NOT EXISTS 동작 방식 정리 (0) | 2023.01.11 |