이번 포스팅에서는 데이터 파이프라인에 대해 알아보도록 하겠다.
What is Data Pipeline?
데이터 파이프라인이란 무엇일까? 간단히 말하면 다양한 소스에서 데이터를 변환하고 옮기는 일련의 과정을 구성한 시스템이라고 보면 되겠다.
그렇다면 데이터 파이프라인은 왜 필요할까?
데이터 파이프라인을 구성함으로써 데이터 기반의 의사결정을 지원할 수 있을 뿐만 아니라, 데이터 기반의 애플리케이션을 개발하는 데에도 큰 도움이 된다. 그리고 이러한 데이터 파이프라인은 "빅데이터 아키텍처" 설계에 기반하여 구축된다.
이와 같은 데이터 파이프라인을 구축하는 직무가 바로 "데이터 엔지니어" 이다!
지금부터 데이터 파이프라인 구축에 사용되는 각각의 용어들이 무엇을 의미하는지 한 번 살펴보도록 하겠다.
- ETL
- "Extract(추출), Transform(변환), Load(적재)"를 의미하며 여러 시스템의 데이터를 단일 데이터베이스, 데이터 저장소, 데이터 레이크 또는 데이터 웨어하우스에 결합하기 위해 일반적으로 사용되는 방법이다.
- ELT
- ELT에 비해 새로운 비정형 데이터에 대한 유연성 및 저장 용이성이 존재한다.
- 데이터 저장소
- Data Lake
- 일반적으로 원시 데이터를 저장하는 저장소이다.
- Data Warehouse와 달리 정형, 비정형 데이터 모두를 수용한다.
- Data Warehouse
- 미리 설계된 스키마에 맞춰서, 구조화된 데이터 모델로 변경하여 데이터를 저장하는 저장소이다.
- Data Lake
대부분의 데이터 파이프라인은 스크립트, 서비스 호출 및 모든 활동을 오케스트레이션하는 파이프라인으로 구성된다. 여기서 오케스트레이션이란 여러 개의 컴퓨터 시스템, 애플리케이션 또는 서비스를 조율 및 관리하는 것을 의미하며, 이를 통해 복잡한 task와 workflow를 쉽게 관리할 수 있도록 지원해준다.
이 때, 각 task 간 의존성을 설정해서 관리해줘야 하는데, 이러한 경우 사용되는 대표적인 workflow management가 바로 "Airflow" 와 "Oozie" 이다.
각각의 workflow management에 대한 설명을 하기에 앞서, "DAG(Directed Acyclic Graph)"에 대해 짚고 넘어가자!
DAG은 그래프 유형 중 하나로, 연결 방향이 존재하고 순회하지 않는 그래프를 의미한다. 즉, 한 작업이 완료된 이후에 다음 작업이 실행되며, 이전 작업으로 돌아가지 않는다. 다시 말해 task 설계에 유리한 구조를 갖는다고 할 수 있다.
Airflow와 Oozie는 DAG(방향성 비순환 그래프)에 의해 구동되며, 이외에도 Azkaban과 Luigi 등 다양한 workflow management가 존재한다.
각각의 workflow management 별 특징들을 간단히 정리해보면 다음과 같다.
Airflow | Oozie | Azkaban | Luigi | |
개발 회사 | Apache | Apache | Spotify | |
Workflow 정의 | Python | XML | YAML | Python |
Web UI | O | O | O | O |
Backfill | O | O | X | O |
이상으로 데이터 파이프라인에 대한 포스팅을 마치도록 하겠다.
<Reference>
1. [패스트캠퍼스] 한 번에 끝내는 빅데이터 처리 with Spark&Hadoop 강의
'Data Engineering > Hadoop Ecosystem' 카테고리의 다른 글
[Airflow Master Class] Docker 및 Airflow 설치 (0) | 2023.08.20 |
---|---|
[Airflow Master Class] WSL 설치 & 리눅스(Linux) 기본 명령어 (0) | 2023.08.20 |
[FastCampus-DE] 4. Hadoop & HDFS (0) | 2022.07.27 |
[FastCampus-DE] 3. 빅데이터 플랫폼과 Hadoop Ecosystem (0) | 2022.07.26 |
[FastCampus-DE] 1. 빅데이터 플랫폼 & 아키텍처 (0) | 2022.07.25 |