본문 바로가기
데이터 엔지니어링

DeltaLake(Databricks), Snowflake

by 내기록 2022. 8. 9.
반응형

References

 

 

Databricks

Apache spark(빅데이터 프로세싱의 표준이 될 만큼 많이 쓰이는 오픈소스 빅데이터 프로젝트)를 만든 사람들이 모여서 창립했으며, DeltaLake, MLFlow 등 다양한 오픈소스 프로젝트를 만들고 이를 기반으로 모든 데이터/분석 AI 워크로드를 한꺼번에 통합해서 쓸 수 있는 통합 클라우드 분석 플랫폼을 제공하는 SaaS 회사이다.

그리고 그 플랫폼의 이름이 "Lakehouse" 이다.

 

Lakehouse Platform

통한 클라우드 분석 플랫폼 (SaaS)

데이터 과학자, 데이터 엔지니어를 위해 설계된 빠르고 쉽게 협업이 가능한 Apache Spark 기반 빅 데이터 분석 서비스

 

데이터 웨어하우스, 데이터 레이크, 스트리밍 데이터 

한 기업 내에서 데이터를 가지고 업무를 보는 여러 팀들, 분석가나 엔지니어링, 사이언티스트 들이 서로 다른 부서에서 다른 플랫폼을 사용함으로써 발생하는 silo로 인한 어려움이 발생한다.

특히, 데이터 웨어하우스나 데이터 레이크는 각각의 장점이 있다. 웨어하우스는 관리성이나 편리성이 좋은 반면에 비정형 데이터를 저장하기 힘들고 확장성이나 비용면에서 아쉬움이 있다. 반면에 데이터 레이크는 특정 데이터 셋에 종속되지 않고 개방적으로 사용할 수 있으며, 클라우드로 넘어감으로써 무제한성인 확장성이 가능하다. 데이터 양이 많아도 저비용으로 여러 분석 워크로드를 처리할 수 있는 장점이 있다.

하지만 데이터레이크는 데이터 웨어하우스가 가지고 있는 성능, 관리성 편리성 같은 장점은 가지고 있지 못한다.

 

데이터레이크 위에 데이터 웨어하우스의 장점을 얹음으로써 여러 팀들이 한번에 공유할 수 있는 통합 플랫폼을 고민하여 탄생했다.

Data Warehouse, Data Lake의 장점을 하나로 통합한 플랫폼을 Lake house라고 부른다.

Data Warehouse(성능, 관리성, 편의성) + Data Lake(확장성, 저비용, 개방성)

 

레이크 하우스를 이루는 핵심 기술은 "델타 레이크" 라고 하는 오픈소스 프로젝트이다.

 

 

레이크하우스 플랫폼은 azure, aws, gcloud 3사 csp 환경에서 모두 동작한다.

클라우드 위에서 고객의 데이터는 object storage에 많이 모여있는데 (datalake) 여기 있는 정형/비정형 데이터를 spark, deltalake 등의 레이어를 둬서 보안이나 관리, 거버넌스를 데이터브릭스가 커버해서 엔지니어 팀이나 분석가, 과학자가 손쉽게 데이터를 사용할 수 있게 단순하고 개방적이고 협업이 가능하게 하는 플랫폼이다.

 

 

1) 단순성 : 사일로 되어 있는 여러 솔루션을 하나의 플랫폼에서 관리할 수 있으므로 유지보수 관리가 쉽다.

데이터 사용 사례 전체를 통틀어 데이터, 분석과 AI를 단 하나의 공용 플랫폼에 통합

 

2) 개방성 : 오픈소스화 되어있는 프로젝트를 기반으로 구성되어 있다. 오픈 소스, 표준 및 형식으로 데이터 에코시스템 통합

450+ 데이터 영역의 파트너 에코시스템들과 통합하는 구조를 가지고 있다.

데이터를 시각화하거나 제공하는 부분, 머신러닝 등 여러 솔루션과도 통합할 수 있는 개방성을 가지고 있다.

 

3) 협업 : 데이터 유관 부서들이 하나의 플랫폼에서 데이터를 통합할 수 있는 구조를 만들 수 있다.

 

 

 

정형/비정형 데이터를 종류나 양에 상관 없이 프로세싱 할 수 있는 데이터 파이프라인을 만들고 데이터를 기반으로 분석,machine learning 등을 할 수 있다.

 

 

Databricks Architecture

Control Plane은 데이터 브릭스가 관리하는 영역이며, Data Plane은 고객의 특정 클라우드 계정

사용자는 컨트롤플랜에 붙어서 다양한 처리를 할 수 있다. 그리고 Data Plane에서 고객의 데이터를 분석/처리할 수 있다. 스파크 클러스터를 고객의 계정 내에 띄워서 사용하고 고객의 계정에 있는 데이터 스토어를 직접 활용한다.

일반적인 SaaS 솔루션은 고객의 데이터를 클라우드에 다 옮겨가서 분석해야 하지만 데이터브릭스는 고객의 데이터나 컴퓨팅은 고객쪽에 남아있기 때문에 보안적인 측면에서 더 좋다.

 

cluster management는 spark를 고객의 클라우드 계정에 만들고 관리한다. 일반적인 오픈소스 클러스터 매니저처럼 yarn 등을 쓰지 않고 자체 클러스터 매니저를 사용하여 더 효율적으로 리소스를 관리할 수 있다.

 

- Cluster Types

Cluster ? 고객사의 클라우드 계정 내에서 동작하는 스파크 클러스터

 

 

 

 

핵심 기술 - DeltaLake

Lakehouse 아키텍처의 핵심 컴포넌트

애플 등.. 해외 대기업들이 사용하고 있음

delta lake는 오픈소스화 되어 있어서 aws athena 등 여러 분석 엔진에서 사용 가능하게 지원하고 있다.

 

- ACID 지원으로 데이터 일관성/품질 보장

- Robust data store

- Apache Spark로 처리하기 최상의 궁합

 

데이터 관리와 거버넌스를 데이터 레이크로 가져오는 개방적인 방식

기존의 스토리지 시스템 위에 데이터 레이크 하우스를 구축할 수 있게 도와주는 오픈소스 프로젝트이다.

 

델타레이크 레이어를 사용하면 ACID 트랜잭션을 오브젝트스토리지에 사용할 수 있다.

 

Before Delta : Parquet

통계에 최적화, spark 사용 시 분산처리에 parquet 파일 포맷이 유용하지만 append만 지원한다.

 

Delta : ACID 트랜잭션을 보장, small file 자동으로 optimization, update/delete, Time travel (과거 파일을 일정기간 보관)

 

히든 디렉토리에는 로그와 통계정보를 가진 메타데이터를 보관한다.

트랜잭션 로그를 통해서 관리 가능

 

하이브 메타스토어 - 파티션 키가 많아질수록 메타데이터 관리 성능이 느려져서 전체 성능이 느려지는 문제가 있다.

 

트랜잭션 로그도 스파크에서 처리하기 때문에 확장성 좋은 메타데이터 엔진이다.

 

Data skipping : 델타 로그에 있는 통계 데이터를 활용해서 필요한 파일만 읽을 수 있다.

기존에는 불필요 데이터를 걸러내는게 파티션 키에 의존할 수밖에 없었지만 델타 로그 통계 데이터 활용 가능

 

 

Delta table을 생성해서 update/delete이 가능하다 -delete 명령어를 날리면 실제 파일의 데이터를 delete 하는 것이 아니고 delete 전 파일 유지하고 최신 파일은 delete 적용되어있는 파일로 읽는다.-

merge를 활용한 upsert 수행이 가능하다.

 

Optimize 명령어를 사용하면 small file을 묶을 수 있다. 특정 컬럼을 기준으로 묶어서 클러스터링, 재배치 가능

예) id 1-10은 첫번째 파일, 11-20은 두 번째 파일,... 

 

 

- Data Engineering

Airflow와 유사한 workflow 제공

 

 

 

 

 

Snowflake

 

 

서비스로서의 데이터 웨어하우스(SaaS)를 제공해주며 복잡하게 구성된 데이터 웨어하우스를 효과적으로 관리한다.

빠르고 사용하기 쉽고 유연한 데이터 스토리지, 처리 및 분석 솔루션을 제공해준다.

 

Snowflake를 사용하면 즉시 사용 가능한 분석형 데이터 웨어하우스를 이용할 수 있다.

Snowflake는 데이터 저장, 데이터 처리부터 시각화, 머신러닝까지 한 번에 할 수 있는 클라우드 기반 통합 데이터 플랫폼이다.

즉, '데이터 클라우드' 플랫폼 내에서 자유롭게 데이터 편집과 이동이 가능하고 데이터 저장 및 보관을 효율적으로 할 수 있게 도움을 주는 소프트웨어라고 할 수 있다.

 

snowflake의 6가지의 주요 서비스

1. 데이터 엔지니어링

데이터 엔지니어링 서비스를 통해 다양한 부서에서 SQL을 이용해 데이터 파이프라인을 효율적으로 구축하고 관리할 수 있다. 클라우드상에서 작업이 가능하기 때문에 실시간으로 데이터를 사용할 수 있는 형태로 바로 변환하여 사용할 수 있다.

2. 데이터 레이크

데이터 레이크를 통해 중앙 데이터의 저장소 역할에 강력한 보안 기능까지 더해져 모든 데이터를 안전하게 저장할 수 있다.

3. 데이터 웨어하우스

데이터 웨어하우스를 통해 snowflake에 분석 가능한 형태로 가공된 데이터를 저장할 수 있다. 이 웨어하우스 기능으로 데이터에 쉽게 접근할 수 있다.

4. 데이터 사이언스

통계 분석 툴, 머신러닝 기능 등을 제공받아 방대한 양의 데이터를 분석할 수 있다. 다양한 프로그래밍 언어를 지원받을 수 있어 언어에 구애받지 않고 한 플랫폼 안에서 데이터 분석을 할 수 있다.

5. 데이터 어플리케이션

데이터 분석 애플리케이션을 신규로 개발할 수 있다. 또, 기존 어플리케이션을 snowflake 플랫폼과 연동시킬 수 있다.

6. 데이터 교환

데이터를 공유하고 서로 연결하고 협업할 수 있는 솔루션을 제공받을 수 있다. 데이터 허브를 통하기 때문에 사용하는 사람들끼리 정보 교환은 물론, 협력 기업들도 빠르게 데이터를 교환할 수 있다.

 

 

 

snowflake의 장점

snowflake는 유연한 리소스 관리를 통해 비용을 절감할 수 있다는 장점이 있다. compute 레이어와 스토리지 레이어를 분리해서 필요에 따라 리소스를 늘리고 줄임으로써 많은 비용을 절감할 수 있다.

또 광범위한 Native 커넥터를 제공한다는 점도 snowflake의 장점 중 하나다. Snowflake에는 Spark, Python 네이티브 커넥터와 수많은 써드파티 커넥터가 있어서 다양한 커넥터, 드라이버, 프로그래밍 언어 및 유틸리티를 통해 Snowflake에 액세스 할 수 있다.

또 다른 장점은 멀티 클라우드 환경에서 유리하다는 점이다. snowflake는 아마존, 마이크로소프트, 구글 3사 모두의 환경에서 구동 가능한 유일한 데이터 웨어하우스이다. 환경에 제약 없이 데이터를 활용할 수 있기 때문에 여러 종류의 클라우드 컴퓨팅 벤더사를 사용하는 기업은 대형 단일 플랫폼을 사용하는 것보다 snowflake 제품을 사용하는 게 편리할 수 있다.

 

Before Snowflake

기존에는 아래처럼 STAGING, DTA LAKE, DATA WAREHOUSE, DATA MARTS & EXTRACTS가 서로 다른 곳에 분리되어 있다.

 

https://data-engineer-tech.tistory.com/5

 

After Snowflake

 

Data silo를 통합하여 비용과 복잡성을 줄여준다.

https://data-engineer-tech.tistory.com/5

 

 

 

 

 

 

 

References

https://fastcampus.co.kr/story_article_snowflake2

https://data-engineer-tech.tistory.com/5 [데이터 엔지니어 기술 블로그:티스토리]

 

 

 

 

 

 

반응형

댓글