이 튜토리얼은 CSV 파일에서 데이터베이스로 데이터 전송을 자동화하기 위해 Apache Airflow, Docker 및 PostgreSQL을 사용하여 강력한 데이터 파이프 라인을 구축하는 것을 보여줍니다. 효율적인 워크 플로 관리를위한 DAG, 작업 및 운영자와 같은 핵심 공기 흐름 개념을 다룰 것입니다.
이 프로젝트는 CSV 데이터를 읽고 PostgreSQL 데이터베이스에 쓰는 신뢰할 수있는 데이터 파이프 라인을 만드는 것을 보여줍니다. 효율적인 데이터 처리를 보장하고 데이터 무결성을 유지하기 위해 다양한 공기 흐름 구성 요소를 통합합니다.
학습 목표 :
전제 조건 :
Apache Airflow 란 무엇입니까?
Apache Airflow (Airflow)는 프로그래밍 방식으로 저작, 예약 및 모니터링 워크 플로우를위한 플랫폼입니다. 코드로 워크 플로를 정의하면 유지 관리, 버전 제어, 테스트 및 협업이 향상됩니다. 사용자 인터페이스는 파이프 라인 시각화, 진행률 모니터링 및 문제 해결을 단순화합니다.
공기 흐름 용어 :
pythonoperator
, dumyoperator
및 postgresoperator
. Docker 및 Dockerfile으로 Apache Airflow 설정 :
Docker를 사용하면 일관되고 재현 가능한 환경이 보장됩니다. dockerfile
는 이미지 생성을 자동화합니다. 다음 지침은 dockerfile
(확장 없음)로 저장해야합니다.
FROM apache/airflow:2.9.1-python3.9 USER root COPY requirements.txt /requirements.txt RUN pip3 install --upgrade pip && pip3 install --no-cache-dir -r /requirements.txt RUN pip3 install apache-airflow-providers-apache-spark apache-airflow-providers-amazon RUN apt-get update && apt-get install -y gcc python3-dev openjdk-17-jdk && apt-get clean
이 dockerfile
는 공식 공기 흐름 이미지를 사용하고 요구 사항에서 종속성을 설치하고 필요한 공기 흐름 제공자를 설치합니다 (Spark and AWS 예제가 표시됩니다. 다른 사람들이 필요할 수 있습니다).
.
Docker Compose 구성 :
docker-compose.yml Docker 컨테이너를 오케스트레이션합니다. 다음 구성은 Webserver, Scheduler, Triggerer, Cli, Init 및 PostgreSQL의 서비스를 정의합니다. 공유 설정 및 PostgreSQL 데이터베이스에 대한
X-AirFlow-Common 섹션의 사용에 유의하십시오. (전체
docker-compose.yml 는 여기에 포함하기에는 너무 길지만 주요 섹션은 위에 표시됩니다).
프로젝트 설정 및 실행 :
및
docker-compose.yml 파일을 추가합니다.
run
에서 공기 흐름 UI에 액세스하십시오.
공기 흐름 UI에서 PostgreSQL 연결을 만듭니다 (
샘플을 만듭니다
공기 흐름 Dag (
sample.py) 워크 플로를 정의합니다 :
a generate_insert_queries
) CSV를 읽고 SQL 삽입
문장 dags/sql/insert_queries.sql
.
다른
postgresoperator
(전체
결론:
이 프로젝트는 Airflow, Docker 및 PostgreSQL을 사용하여 완전한 데이터 파이프 라인을 보여줍니다. 자동화의 이점과 재현 가능한 환경에 Docker의 사용을 강조합니다. 연산자와 DAG 구조의 사용은 효율적인 워크 플로 관리의 핵심입니다.
(FAQ 및 Github Repo를 포함한 나머지 섹션은 간결하게 생략됩니다. 원래 입력에 존재합니다.)
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3