올해 처음 오프라인으로 진행된 "한국 데이터 엔니지어 모임"에서 발표한 cloud dw와 snowflake라는 주제로 발표한 내용을 정리하여 공유함. (2022.07)
[ 발표 주제 ]
Cloud DW 기술 트렌드와 Snowflake 적용
- Modern Data Stack에서 Cloud DW의 역할
- 기존 Data Lake + DW와 무엇이 다른가?
- Data Engineer 관점에서 어떻게 사용하면 좋을까? (기능/성능/비용 측면의 장점/단점)
[ 주요 내용 ]
- 최근 많은 Data Engineer가 기존 기술 스택(Hadoop, Spark, DW 등)의 기술적/운영적 한계를 극복하기 위한 고민중.
- 특히 Cloud의 장점과 운영 및 성능을 고려한 Cloud DW(AWS Redshift, GCP BigQuery, DataBricks, Snowflake)를 고려
- 이 중 Snowflake를 실제 프로젝트에 적용한 경험과 기술적인 특징/장점/단점을 공유하고자 함.
작년부터 정부의 데이터 정책 변화와 Cloud 기반의 기술 변화 가속화로 기업의 데이터 환경에도 많은 변화가 발생하고 있고, 기업들은 이에 적응하기 위한 다양한 시도를 하고 있다.
그 중심에 cloud dw (또는 Lake house)가 위치하고 있으며, 이를 기반으로 통합 데이터 플랫폼으로의 아키텍처로 변화하고 있다. 하지만, 아직까지 기존 DW 제품과 주요 CSP(AWS, GCP, Azure)의 제품군을 다양하게 시도하고 있으나, 기대와 다르게 생각보나 낮은 성능 또는 비싼 사용료, 운영의 복잡성으로 인한 많은 시행착오를 거치고 있다.
이 상황에서 작년에 처음 검토한 snowflake의 다양한 기능들이 기업들의 고민과 문제를 상당부분 손쉽게 해결할 수 있다는 것을 확인할 수 있었고, 이를 이용하여 실제 많은 기업들에게 적용하기 위한 POC를 수행하거나, 실제 적용하는 프로젝트를 수행하게 되었다.
본 발표 내용은 이러한 경험을 기반으로 기업(그리고 실제 업무를 수행할 Data Engineer) 관점에서 snowflake가 어떻게 문제를 해결할 수 있는지 cloud dw를 도입/활용/확장 하는 단계별로 문제와 해결 방안을 중심으로 설명하였다.
https://blog.naver.com/freepsw?Redirect=Update&logNo=222815591918
Cloud DW technology trends and considerations for enterprises to apply snowflake
1. Cloud DW 기술 트렌드와
Snowflake 적용
( Data Engineer 관점에서 필요한 성능/비용/운영편의성 을 중심으로… )
2022.07
freepsw 1
2. 2
기업의 데이터 플랫폼 아키텍처의 진화 흐름
데이터 자체의 변화(다양한 포맷, 데이터 사이즈 등)와 데이터 수요의 가속화로 지속적 진화
업무 DB
(OLTP)
Data Warehouse
(On-Prem)
Data Lake
Cloud
Data Warehouse
Lake House
Cloud로 동적 자원 할당
(빠른 성능과 저비용)
제한된 자원 내에
데이터 통합
비정형 데이터
대용량 데이터 분석 가능
RDBMS 기반
Data Centralization
Data
Fabric
Data
Virtuali
zation
Data
Mesh
Data De-Centralization
3. 3
Modern data stack에서 Cloud DW란?
Cloud DW의 제약없는 저장공간 & 컴퓨팅 자원을 활용하여, 통합된 데이터 환경에서 복잡한 업무 요건을 처리 가능
https://medium.com/@jordan_volz/whos-who-in-the-modern-data-stack-ecosystem-spring-2022-c45854653dc4
4. On-Prem DW Cloud DW
Cloud
Data Lake
• Oracle Exadata
• Teradata
• IBM Netezza,
• EMC Greenplum Data
Computing Appliance
• SAP Sybase IQ
• HP Vertica
Data Mart
Managed Cloud
DW
Cloud based
Self-DW
Public Cloud
DW
Cloud 사업자 제공 서비스
• AWS Redshift
• GCP BigQuery
• Azure Synaps
DW 전문 기업의 Cloud기반 서비스
• Snowflake
• GCP BigQuery omni
• Teradata Vantage
Cloud Infra에 직접 DW 구축
• Vertica
• Greenplum
• IBM DB2
Cloud 사업자 종속 Multi-Cloud 지원
Multi-Cloud + Hybrid
Cloud
제품 종속 제거
운영 편의성
인프라 및 운영 비용, 성능 해결
Snowflake
빠른 성능과 운영 복잡성 감소
Databricks (LakeHouse)
기존 DW/DataMart 영역과 Data Lake영역을 포함하여 시장을 확장 중
Cloud DW (Lake House) 기술의 트렌드
• AWS EMR
• GCP Dataproc
• Azure HDInsight
• Cloudera CDP
• Databricks
5. 5
Cloud DW를 바라보는 Data Engineer의 고민
어떤 제품을 선택할까?
초기 구성(자원 할당)은 어떻게 할까?
계속 변화하는 워크로드(사용량)는 어떻게 대응할까?
사용자가 급증하는 상황에서 어떻게 안정적으로 서비스 할까?
6. 6
Cloud DW 제품 도입 후 어떤 상황이 발생할까?
Cloud DW 도입 후, 기업에서 활용하는 단계별로 예측하기 어려운 다양한 수요(기업환경 변화 등)가 발생함.
이러한 변화를 도입된 DW에서 민첩하게 지원할 수 있는지 확인 필요
초기 구성
단계
DW 활용
단계
클러스터
확장 단계
7. 7
Cloud DW 제품 초기 구성 단계에는?
도입된 DW의 가이드에 따라 기업에 최적화된 설정 및 구성이 필요
(어떻게 기업의 향후 데이터 사이즈, 예상되는 사용자 수, 각종 이벤트 등을 고려하여 설정할 수 있을까?)
초기 구성
단계
DW 활용
단계
클러스터
확장 단계
Data Engineer
• 미래의 스토리지 용량 및 컴퓨팅 자원 산정
• 설치 편의성
- 환경 구성 소요 시간
- 최적화 설정 검토 등
• 데이터 마이그레이션 성능
• 데이터 보안 환경
8. 8
DW 제품의 설치와 설정을 최적화 하려면?
고객이 특별히 고민하지 않고도 원하는 순간에 바로 설치 가능한가?
미래의 최대/평균/최소 사용량을 예측하여, 최적의 성능과 비용 효율적인 설정이 가능한가?
( 초기에 예측한 값이 미래 시점에도 유효할까? )
9. 9
CSP의 Cloud DW를 설치 및 구성하려면 ? (1/2)
미래에 발생 가능한 분석 수요(스토리지, 분석작업, 동시사용자 등)를 미리 예측하여, 최적의 type을 선택해야 함.
10. 10
[백업] AWS Redshift에서 선택해야 할 유형은 어떤 것이 있나?
Node Type을 먼저 선택하고, 용량과 성능을 고려하여 Node Size도 직접 선택해야 함 (최적의 설정을 찾기 어려움)
기업의 환경이 변하면
또 다시 최적의 선택이 필요!
(환경 변화에 민첩한 대응이 불가)
11. 11
CSP의 Cloud DW를 설치 및 구성하려면 ? (2/2)
백업 등 기업의 환경에 적합한 추가적인 설정을 운영자가 직접 선택해야 함.
12. 12
Snowflake를 설치 및 구성하려면?
Snowflake 계정만 생성 하면 모든 구성이 완료 !!
(기업 환경 변화에 따라 언제든지 유연하게 컴퓨팅/스토리지 변경 가능)
13. 13
초기 Data Loading 시 고려사항?
설치한 Cloud DW에 기존 데이터를 빠르게 Loading하여 실 운영을 위한 준비가 필요함.
14. 14
Cloud DW 제품 활용 단계
빠르게 변하는 기업 환경에 따라 다양한 분석 수요에 따라 탄력적으로 자원 확장 필요
(최소의 비용으로 최적의 성능을 제공해야 함)
초기 구성
단계
DW 활용
단계
클러스터
확장 단계
Data Engineer
• 설치 편의성
- 환경 구성 소요 시간
- 최적화 설정 검토 등
• 데이터 마이그레이션 성능
• 데이터 보안 환경
업무 담당자
(분석가)
(BI Tools)
• 데이터 조회 성능
- Scale out / in
- Scale up / down
• 멀티 클러스터 지원 여부
• 초기 설치 및 구성 비용
• 운영 편의성 (최적화 튜닝 등)
• 데이터 공유 (중복 없는)
• 데이터 안정성 (백업, 복구)
15. 15
기업의 일시적 분석 수요 증가 시,
빠르게 확장/축소 가능한가?
외부 데이터 (100 TB 이상)를 활용하고 싶은데, 빠르게 저장(Import)이 가능한가?
20년치 데이터를 Deep Learning으로 분석하고 싶은데, 충분한 성능을 제공할까?
년 1회 발생하는 대용량 배치작업(20시간 소요)을 빠르고 안정적으로 처리 가능한가?
(DW 성능저하 없이)
16. 16
CSP Cloud DW 클러스터를 확장하려면?
다양한 사용자의 요청에 따라 운영자가 직접 클러스터 변경
(클러스터 확장 시 cluster 사용 불가)
17. 17
CSP Cloud DW 클러스터 확장/축소 시 고려사항
성능과 비용 최적화를 위한 다양한 사전/사후 작업이 필요 (운영자가 관여하여 작업 필요)
데이터 백업
(snapshot)
클러스터 확장 시간 고려
스토리지 용량 확인
Auto snapshot은
일정 기간 경과 후 자동 삭제
(데이터 유실 가능)
디스크 최적화 실행(VACUUM)하여
데이터 복제 최소화
확장된 클러스터의 스토리지 용량이
현재 클러스터의 데이터를 저장
가능해야 함
Resize 유형에 따라 클러스터 확장 시간 계산
(중요 작업 시간 고려)
Cloud DW Type 변경(scale up)은 더 많은
시간이 소요됨
“ 용량 부족 시 장애 발생” “ 중요한 백업 데이터 확보 필요” ” 클러스터 중지로 작업 불가”
18. 18
Snowflake의 클러스터 확장은?
간단한 선택으로 클러스터 즉시 확장 !!
( 처리할 데이터 용량에 따라 클러스터 사이즈만 선택 )
9가지 유형 중 원하는 Size 선택
사용하지 않으면,
자동으로 클러스터 중지
19. 19
Demo) 분석가가 DW의 여러 테이블을 분석하는 Query 실행
280억 건의 대용량 데이터를 4개 테이블과 연결하는 복잡한 Query 실행
테이블 명 Record 건수
store-sales
28,800,239,865
(280 억건)
date_dim 73,049
store 1,500
household_demographics 7200
customer_address 32,500,000
(3천 2백만 건)
280 억건
20. 20
Demo) 280억 건 데이터 조회 성능 (클러스터 성능 확장, scale-up)
X-Small 사이즈 클러스터에서 2X-Large 클러스터로 쉽게 확장하여 거의 동일한 비용으로 28배 성능 향상
Table
(TPC-DS 10 TB)
21. 21
초 단위로 사용한 만큼 비용을 지불
다른 CSP는 초단위로 DW를 생성하기 어렵거나, 미리 자원 (Slot) 을 구매한 후 사용해야 함.
오전 업무 시간 오후 업무 시간
점심시간
22. 22
안전한 데이터 보관 (Data Protection)
Time travel 기능으로 최대 90일 내 모든 시점 복구 가능
Cross-Cloud & Cross-Region Data Replication 가능
23. 23
Code(python, scala 등) 기반
대용량 데이터 분석을 지원하는가?
Snowflake의 데이터를 python으로 처리/분석하기 위한 별도 자원(Apache spark 등)이 필요한가?
Data Scientist, Data Engineer가 code(data frame)로 처리하는 로직을 지원하는가?
( 기존 pyspark, pandas 기반 데이터 처리 코드를 쉽게 재사용 할 수 있는가? )
24. 24
데이터와 어플리케이션 실행 환경을 통합
데이터가 존재 하는 공간에서 모든 작업(로직)이 실행되어, 복잡한 데이터 처리 환경이 단순해짐
25. 25
데이터 수요 증가로
분석가, 웹서비스, BI 툴 사용량 급증 시
안정적인 서비스 가능한가?
분석가 교육/실습/경연대회로 급증하는 동시 사용자의 Query 요청을 처리할 수 있나?
(평소 대비 사용자 10배 이상 증가)
BI로 구성된 Report 수 및 BI Report 조회 건수 증가 시 성능 저하 없이 처리 가능한가?
(기존 DW 자원에서 처리 가능한 동시 사용자 수는 한계가 있음)
26. 26
동시 사용자 수 증가에 따른 클러스터 자동 확장
Snowflake는 동시 사용자 증가 시, 자동으로 Cluster 를 확장 및 축소하여 최소의 비용으로 최적의 성능 제공
“ 지원 불가”
사용자 급증 시
서비스 멈춤 또는 접속 에러 발생 가능
27. 27
Snowflake의 Multi Cluster 생성 방법 (자동 확장/축소)
업무의 확장성을 고려하여 최대한 많은 동시 사용자를 처리할 수 있는 사이즈 선택 (사용해야 비용이 과금)
최대 확장 가능한 Cluster 개수 지정
(사용하지 않으면 비용 없음)
28. 28
Demo) 동시 사용자 증가 시, 자동 Cluster 확장 가능한지?
각 사용자의 Query 복잡도에 따라 동시 사용자 수를 자동으로 조정 (간단한 쿼리는 1개 클러스터로 동시에 8명 이상 처리 가능)
분석가 4명 동시 접속
(1개 Cluster 로 실행)
분석가 4명 추가 접속
(총 8명 동시 접속 시 확장)
29. 29
Cloud DW 제품 확장 단계
기업의 value chain에 속한 수 많은 협력사 및 계열사 데이터를 공유 및 융합하여 새로운 비즈니스 가치 창출 가능
초기 구성
단계
DW 활용
단계
클러스터
확장 단계
Data Engineer
• 설치 편의성
- 환경 구성 소요 시간
- 최적화 설정 검토 등
• 데이터 마이그레이션 성능
• 데이터 보안 환경
업무 담당자
(분석가)
(BI Tools)
• 데이터 조회 성능
- Scale out / in
- Scale up / down
• 멀티 클러스터 지원 여부
• 안정적인 분석 업무 수행
• 초기 설치 및 구성 비용
• 운영 편의성 (최적화 튜닝 등)
• 동적인 자원 할당 기능
• 데이터 공유 (중복 없는)
• 데이터 안정성 (백업, 복구)
• Multi CSP 단위 데이터 공유
• Multi CSP DR 구성
• 유휴 컴퓨팅 시간에 대한 비용
• 일, 주, 월, 년도 별 비용 제한 가능
• 확장 시 투자 및 인건 비용
30. 30
다른 CSP를 사용하는 계열사 또는 협력사와
DB를 쉽게 공유 할 수 있는가?
각 계열사 별로 CSP를 선정하여 각자 DB를 운영 중인 상황에서, 협업을 위해 DB를 공유하여 쉽게 분석할 수 있는가?
CSP 간 공유된 데이터의 일관성을 쉽게 유지할 수 있는가? (동기화)
31. 31
CSP간 데이터 복제 및 공유를 통한 협업 지원
CSP Cloud DW는 다른 CSP의 데이터 공유 및 협업이 불가능
“ 지원 불가”
33. 33
Snowflake Summit 2022에서 소개된 신규 기능의 의미
기업 관점에서 고민하던 목적별로 분리된 데이터 플랫폼을 통합하고, 다양한 데이터 수요를 지원하는 기능 강조
33
활용 영역 확장
(Data Engineer + Data Scientist)
Snowflake 서비스 개선
(성능, 운영 편의성)
데이터 영역 확장 & 통합
(OLTP + External Storage)
기존 python 코드를 이용하여 데이터
분석/처리 가능 (별도 Spark Cluster 불필요)
Data Product(Data + Web service) 생성 및
공유 가능 (별도 서비스 환경 불필요)
데이터 목적 별로 구성되는 데이터 솔루션
통합 가능
데이터 복제/이동 등의 복잡한 ETL 비용
절감
데이터 조회 성능 향상 (동시 처리량, Latency)
Warehouse Type 추가 (5XL, 6XL)
비용 관리 및 통제 강화 기능 제공
“ 데이터 통합으로 일관된 데이터 제공” “ 복잡한 분석 클러스터 도입 비용 절감” ” Snowflake 도입/활용 비용 절감”
34. 34
데이터 영역 확장 & 통합 (OLTP + 외부 스토리지)
기존 Snowflake는 OLAP용 Data Warehouse 용도로 특화된 용도로만 사용 가능
Data Warehouse
(OLAP)
데이터 분석가
DBMS
(OLTP)
External Storage
현재도 External Storage 조회 가능
(성능이 느리고, 편집 불가)
데이터 분석을 위한 별도 자원 필요
(Apache Spark 등)
35. 35
데이터 영역 확장 & 통합 (OLTP + 외부 스토리지)
Snowflake에서 지원하는 데이터 유형을 확장 및 통합하여, 시스템 복잡성을 줄이고 일관된 분석환경 제공 가능
Data Warehouse
(OLAP)
데이터 분석가
DBMS
(OLTP)
External Storage