
- 데이터 웨어하우스
- ETL
- 데이터 레이크
- Airflow
- 데이터 웨어하우스 옵션
데이터 조직의 비전은 신뢰할 수 있는 데이터를 바탕으로 부가 가치를 생성하는 것이다. 고품질 데이터를 기반으로 의사 결졍권자에게 입력을 제공하여 사용자 서비스 경험을 개선하거나 프로세스를 최적화하는데 의의가 있다. 데이터 엔지니어는 데이터 분석에서 사용할 수 있는 데이터 웨어하우스와 같은 데이터 인프라를 구축하는 역할을 갖는다.



다른 곳에 존재하는 데이터를 가져다가 데이터 웨어하우스에 로드하는 작업. 이 일련의 작업을 데이터 파이프라인이라고 부르기도 함
관련하여 가장 많이 사용하는 프레임워크는 Airflow이다. Airflow는 오픈소스 프로젝트로 Python3 기반이며 AWS와 구글 클라우드에서도 지원한다.
ETL 관련 SaaS(Software as a Service)도 출현으로 흔한 데이터 소스의 경우 FiveTran, Stitch Data와 같은 SaaS를 사용하는 것도 가능하다.

구조화 데이터 + 비구조화 데이터 (로그파일), 보존 기한이 없는 모든 데이터를 원래 형태대로 보존하는 스토리지에 가까움. 보통은 데이터 웨어하우스보다 몇배는 더 크고 더 경제적인 스토리지로, 보통 클라우드 스토리지가 됨. (AWS의 S3가 대표적인 Data Lake) 데이터 레이크가 있는 환경에서 ETL과 ELT 란
- ETL : DW, DL 바깥에서 안으로 데이터를 가져오는 것
- ELT : DW, DL 안에 있는 데이터를 처리하는 것


ETL 관리 및 운영 프레임워크의 필요성이 커지면서 ETL 스케줄러라는 것이 등장했다. 다수의 ETL이 존재할 경우 이를 스케줄해주고 이들관의 의존관계(dependency)를 정의해주는 기능을 수행하고, 특정 ETL이 실패할 경우 이에 관한 에러 메시지를 받고 재실행해주는 기능도 중요해졌다. (Backfill)
현재 가장 많이 사용되는 프레임워크는 Airflow이다. Python3 기반의 오픈 소스 프로젝트로 많은 회사에서 사용 중이다. AWS, 구글 클라우드, Azure에서도 지원을 하고 있다.
Airflow에서는 ETL을 DAG라 부르며 웹 인터페이스를 통한 관리 기능을 제공한다. 크게 스케줄러, 웹서버, 워커(Worker) 3가지 컴포넌트로 구성된다.
이런 툴을 이용하여 데이터 웨어하우스를 구성한다면 다음과 같은 예를 들 수 있다.

데이터 레이크를 포함한 데이터 플랫폼이라면 다음과 같다


❖ 2012년에 시작된 AWS 기반의 데이터웨어하우스로 PB 스케일 데이터 분산 처리 가능
❖ CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷을 지원
❖ AWS내의 다른 서비스들과 연동이 쉬움
❖ 배치 데이터 중심이지만 실시간 데이터 처리 지원
❖ 웹 콘솔 이외에도 API를 통한 관리/제어 가능

❖ 2014년에 클라우드 기반 데이터웨어하우스로 시작됨 (2020년 상장)
❖ SQL 기반으로 빅데이터 저장, 처리, 분석을 가능하게 해줌
❖ CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷을 지원
❖ 배치 데이터 중심이지만 실시간 데이터 처리 지원
❖ 웹 콘솔 이외에도 API를 통한 관리/제어 가능

❖ 2010년에 시작된 구글 클라우드의 데이터 웨어하우스 서비스
❖ CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷을 지원
❖ 구글 클라우드 내의 다른 서비스들과 연동이 쉬움
❖ 배치 데이터 중심이지만 실시간 데이터 처리 지원
❖ 웹 콘솔 이외에도 API를 통한 관리/제어 가능

❖ Facebook이 2008년에 시작한 아파치 오픈소스 프로젝트
❖ 하둡 기반으로 동작하는 SQL 기반 데이터 웨어하우스 서비스
❖ CSV, JSON, Avro, Parquet 등과 같은 다양한 데이터 포맷을 지원
❖ 배치 빅데이터 프로세싱 시스템
❖ 웹 UI와 커맨드라인 UI (CLI라고 부름) 두 가지를 지원
❖ 점점 Spark에 의해 밀리는 분위기임

❖ Facebook이 2013년에 시작한 아파치 오픈소스 프로젝트
❖ 다양한 데이터소스에 존재하는 데이터를 대상으로 SQL 실행 가능
❖ CSV, JSON, Avro, ORC, Parquet 등과 같은 다양한 데이터 포맷을 지원
❖ 배치 빅데이터 프로세싱 시스템
❖ 웹 UI와 커맨드라인 UI (CLI라고 부름) 두 가지를 지원
❖ AWS Athena가 바로 Presto를 기반으로 만들어짐

❖ Netflix가 2018년에 시작한 아파치 오픈소스 프로젝트로 데이터 웨어하우스기술이 아님
❖ 대용량 SCD (Slowly-Changing Datasets) 데이터를 다룰 수 있는 테이블 포맷
❖ 자바와 파이썬 API를 지원
❖ Spark, Flink, Hive, Hudi 등의 다른 Apache 시스템과 연동 가능

❖ UC 버클리 AMPLab이 2013년에 시작한 아파치 오픈소스 프로젝트
❖ 빅데이터 처리 관련 종합선물세트
❖ 다양한 분산처리 시스템 지원
❖ 다양한 파일시스템과 연동 가능
❖ CSV, JSON, Avro, ORC, Parquet 등과 같은 다양한 데이터 포맷을 지원
❖ 다양한 언어 지원: 자바, 파이썬, 스칼라, R