Dagster - Data Orchestration and Pipelines with Python & DAGs
- 데이터 엔지니어링은 다양한 소스의 데이터를 결합 및 변환하여 데이터 웨어하우스 등에 저장하는 과정 🔄.
- Dagster는 파이썬 코드를 사용하여 복잡한 워크플로우 및 파이프라인을 관리하고 조정하는 최신 데이터 오케스트레이션 도구 🐍.
- DAG(Directed Acyclic Graph)는 작업의 순서를 나타내는 그래프 형태로, Dagster 이름의 유래가 됨 📈.
- Dagster는 asset-centric 오케스트레이션 도구로, asset은 데이터베이스 테이블, 파일, 머신러닝 모델 등 영구 저장소의 객체를 의미 💾.
dagster.asset
데코레이터를 사용하여 asset을 정의하고, asset 간의 의존성을 설정할 수 있음 🔗.
Definitions
객체는 asset, IO 매니저, 작업 등 Dagster 프로젝트의 모든 객체에 대한 참조를 포함하는 최상위 구조 📦.
- Dagster UI를 통해 asset의 lineage(계보)를 시각적으로 확인하고, asset을 materialize(실체화)하여 파이프라인을 실행할 수 있음 🌐.
dagster dev
명령어를 사용하여 Dagster 웹 서버를 실행하고, UI를 통해 asset을 관리할 수 있음 💻.
dagster project scaffold
명령어를 사용하여 Dagster 프로젝트를 생성하고, asset 및 정의를 별도의 파일로 관리하는 것이 좋음 📂.
- Polars를 사용하여 CSV 파일을 읽고 쓰고, 데이터 변환 작업을 수행할 수 있음 🐼.