다양한 데이터 웨어하우스 옵션
1. 데이터 팀의 역할
- 비전 : 신뢰할 수 있는 데이터를 바탕으로 부가 가치를 생성하는 것.
- 의사 결정권자에게 조력하는 역할 → Decision Science
- 데이터를 고려한 결정 (Data informed decisions)
- 데이터 기반의 결정 (Data driven decisions)
- 사용자 서비스 경험 개선, 프로세스 최적화 수행
- 발전
- 데이터 인프라 구축 : ETL, 데이터 웨어하우스 구축 → 데이터 엔지니어가 수행
- 데이터 웨어하우스
- 회사에 필요한 모든 데이터를 모아놓은 중앙 데이터 베이스
- 크기가 커지면 클라우드 사용
- 프로덕션용 데이터 베이스와 별개의 데이터베이스이다.
- ETL (Extract, Transform, Load) : 데이터를 데이터 웨어하우스에 로드하는 작업
- Extract : 외부의 데이터 소스에서 추출
- Transform : 데이터 포맷을 변환
- Load : 데이터 웨어하우스에 적재
- 많이 쓰이는 프레임워크는 Airflow이나, Software as a Service(SaaS)도 사용하고 있다.
- 데이터 분석 수행 : 데이터 분석가가 데이터를 바탕으로 분석을 수행한다.
- 시각화 대시보드
- 중요한 지표 (3A : Accessible, Actionable, Auditable)을 토대로 보여준다.
- 룩커, 태블로, 파워BI, 수퍼셋 같은 대시보드들이 존재한다.
- 데이터 과학 적용 : 데이터 과학자들이 사용자 경험을 개선한다.
2. 데이터 조직 구성원
- 데이터 팀 구성원 (작은 회사에서는 몇개의 역할을 동시 수행하는 것이 일반적이다.)
- 데이터 엔지니어 : 데이터 인프라 구축
- 기본적으로 소프트웨어 엔지니어
- 데이터 웨어하우스 구축
- 데이터 분석가와 과학자를 지원한다.
- 데이터 분석가 : 데이터 기반의 지표 생성 및 시각화
- 비즈니스 인텔리전스 → 대시보드생성, 도메인 지식이 필요
- 데이터 관련 질의응답
- 데이터 과학자 : 머신러닝 모델등을 통해 사용자 경험 개선
- MLOps : DevOps에서 나아가 ML 모델을 대상으로 빌딩, 배포, 모니터링하는 직군
- 프라이버시 엔지니어 : 개인정보 보호를 위한 가이드라인/툴 제공
- 데이터 디스커버리 : 데이터 조직의 증가와 함께 테이블과 대시보드의 수가 늘어나기 때문에 이를 관리하는 서비스가 필요하다.
3. 데이터 웨어하우스와 ETL/ELT
- 데이터 웨어하우스 옵션 별 장단점
- 기본적으로 클라우드가 대세이다.
- 확장 가능성과 적절한 비용을 보아야한다. → 가변비용 옵션
- 오픈소스 기반인 경우에도 클라우드 버전이 존재한다.
- 데이터가 작은 경우 빅데이터 기반의 DB를 사용하지 않아도 된다.
- 데이터 레이크
- 구조화 데이터 + 비구조화 데이터
- 모든 데이터를 원래 형태로 보존하는 스토리지에 가깝다.
- 클라우드 스토리지가 되는 경우가 많다. (S3)
- ETL : 데이터 시스템 밖에 있는 데이터를 가져오는 것. → Airflow를 대표적으로 많이 사용한다.
- ELT : 데이터 시스템 안에 있는 데이터를 처리하는 것. → DBT 툴을 많이 사용
- 빅데이터 처리 프레임워크
- 분산 환경 기반 : 분산 파일 시스템과 분산 컴퓨팅 시스템이 필요하다.
- Fault Tolerance : 고장이 나더라도 동작에 문제가 없어야한다.
- 확장이 용이해야 한다. (Scale Out : 서버의 수를 늘리기, Scale up : 서버의 용량을 증가)
- 대표적인 픽데이터 프로세싱 시스템
- 하둡 기반의 Mapreduce, Hive/Presto → SQL 기반
- Spark
4. 데이터 웨어하우스 옵션들
- AWS Redshift
- 최대 2PB 스케일의 데이터 분산 처리가 가능하다.
- Postgresql과 호환된다.
- CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷을 지원한다.
- AWS의 다른 서비스들과의 연동이 쉽다.
- 실시간 데이터 처리도 지원한다, 기본적으로는 배치 데이터 중심이다.
- API를 통한 관리가 가능하다.
- Snowflake
- 데이터 클라우드라고 부를 정도로 많은 기능을 지원한다. ex) Data Sharing, Marketplace를 제공
- SQL 기반으로 빅데이터의 저장, 처리, 분석을 가능하게 해준다.
- CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷을 지원한다.
- S3, GC 클라우드 스토리지, Azure Blog Storage도 지원한다.
- 실시간 데이터 처리도 지원한다, 기본적으로는 배치 데이터 중심이다.
- API를 통한 관리가 가능하다.
- BigQuery
- BigQuery SQL을 통해 다양한 데이터 처리가 가능하다. (Nested fields, repeated fields를 지원한다.)
- 구글 클라우드의 다른 서비스들과 연동이 쉽다.
- 실시간 데이터 처리도 지원한다, 기본적으로는 배치 데이터 중심이다.
- API를 통한 관리가 가능하다.
- Apache Hive
- 하둡이 기반이다. → 하둡 기반의 오픈소스들과 연동이 쉽다.
- HiveQL이라는 SQL을 지원한다.
- 배치 빅데이터 프로세싱 시스템이다.
- Web UI와 CLI 모두 지원한다.
- Apache Presto
- Hive와 비슷하나 처리속도에 집중
- PrestoSQL을 지원한다.
- AWS Athena가 presto를 기반으로 만들어졌다.
- Apache Iceberg → Storage
- 데이터 웨어하우스 기술은 아니다.
- 대용량 SCD 데이터를 다룰 수 있는 테이블 포맷이다.
- 자바와 파이썬 API를 지원한다.
- 다른 Apache 시스템과 연동이 가능하다.
- Apache Spark → Processing engine
- 빅데이터 처리 관련에 있어 대부분의 기능을 지원한다.
- 배치처리, 실시간처리, 그래프처리, 머신러닝 기능을 제공한다.
- 다양한 분산처리 시스템을 지원한다.
- HDFS, S3, Cassandra, Hbase와 같은 파일시스템들과 연동이 가능하다.
- 자바, 파이썬, 스칼라, R과 같은 다양한 언어를 지원한다.
공통점 : Iceberg를 제외하고 SQL을 모두 지원한다.
5. 데이터 스택 트렌드
- 데이터 플랫폼의 발전단계
- 초기 : 데이터 웨어하우스 + ETL
- 발전 : 데이터 양 증가
- 빅데이터 처리시스템 도입 : Spark/Hadoop
- 데이터 레이크 구축
- 성숙 : 데이터 활용 증대
- ELT가 더 중요해지면서 DBT와 같은 분석엔진이 도입된다.
- MLOpas 등 머신러닝 관련 효율성 증대