"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 일체 포함 > Airflow 및 Docker를 사용하여 CSV의 CSV 가져 오기

Airflow 및 Docker를 사용하여 CSV의 CSV 가져 오기

2025-04-12에 게시되었습니다
검색:453

이 튜토리얼은 CSV 파일에서 데이터베이스로 데이터 전송을 자동화하기 위해 Apache Airflow, Docker 및 PostgreSQL을 사용하여 강력한 데이터 파이프 라인을 구축하는 것을 보여줍니다. 효율적인 워크 플로 관리를위한 DAG, 작업 및 운영자와 같은 핵심 공기 흐름 개념을 다룰 것입니다.

이 프로젝트는 CSV 데이터를 읽고 PostgreSQL 데이터베이스에 쓰는 신뢰할 수있는 데이터 파이프 라인을 만드는 것을 보여줍니다. 효율적인 데이터 처리를 보장하고 데이터 무결성을 유지하기 위해 다양한 공기 흐름 구성 요소를 통합합니다.

학습 목표 :

  • Core Core Apache Airflow Concepts : DAG, 작업 및 연산자.
  • 워크 플로 자동화를 위해 Docker를 사용하여 Apache Airflow를 설정하고 구성하십시오.
  • 공기 흐름 파이프 라인 내 데이터 관리를 위해 PostgreSQL을 통합합니다.
  • 마스터 읽기 CSV 파일 및 PostgreSQL 데이터베이스에 데이터 삽입 자동화.
  • Airflow 및 Docker를 사용하여 확장 가능하고 효율적인 데이터 파이프 라인을 빌드 및 배포합니다.

전제 조건 :

  • Docker Desktop, 대 코드, Docker Compose
  • Docker 컨테이너 및 명령에 대한 기본 이해
  • 기본 Linux 명령
  • 기본 파이썬 지식
  • Dockerfiles에서 Docker 이미지를 구축하고 Docker Compose

Apache Airflow 란 무엇입니까?

Apache Airflow (Airflow)는 프로그래밍 방식으로 저작, 예약 및 모니터링 워크 플로우를위한 플랫폼입니다. 코드로 워크 플로를 정의하면 유지 관리, 버전 제어, 테스트 및 협업이 향상됩니다. 사용자 인터페이스는 파이프 라인 시각화, 진행률 모니터링 및 문제 해결을 단순화합니다.

Automating CSV to PostgreSQL Ingestion with Airflow and Docker

공기 흐름 용어 :

  • Workflow : 목표를 달성하기위한 단계별 프로세스 (예 : 케이크 베이킹)
  • DAG (DIRCYCLIC GRAPH) : 작업 종속성 및 실행 순서를 보여주는 워크 플로우 청사진. 워크 플로의 시각적 표현입니다. Automating CSV to PostgreSQL Ingestion with Airflow and Docker
  • task : 워크 플로 내 단일 동작 (예 : 믹싱 성분).
  • 연산자 : 작업의 빌딩 블록, 파이썬 스크립트 실행 또는 SQL 실행과 같은 작업을 정의합니다. 주요 사업자는 pythonoperator , dumyoperator postgresoperator .
  • 가 포함됩니다.
  • xcoms (Cross-Communications) : 작업이 데이터를 전달하고 공유 할 수있는 활성화.
  • Connections : 외부 시스템에 연결하기위한 자격 증명 관리 (예 : 데이터베이스)

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 는 여기에 포함하기에는 너무 길지만 주요 섹션은 위에 표시됩니다).

프로젝트 설정 및 실행 :

    프로젝트 디렉토리 생성.
  1. dockerfile docker-compose.yml 파일을 추가합니다.
  2. 필요한 Python 패키지 (예 : 팬더)를 나열하는
  3. 요구 사항을 작성합니다. run
  4. docker -compose -d
  5. 컨테이너를 시작합니다.
  6. http : // localhost : 8080
  7. . 에서 공기 흐름 UI에 액세스하십시오. 공기 흐름 UI에서 PostgreSQL 연결을 만듭니다 (
  8. write_to_psql
  9. 를 연결 ID로 사용). 샘플을 만듭니다
  10. input.csv
  11. 파일.
dag and python function :

공기 흐름 Dag (

sample.py

) 워크 플로를 정의합니다 :

    postgresoperator
  • 데이터베이스 테이블을 만듭니다. a
  • pythonoperator
  • ( generate_insert_queries ) CSV를 읽고 SQL 삽입 문장 dags/sql/insert_queries.sql . 다른 postgresoperator
  • 생성 된 SQL을 실행합니다.
  • (전체
  • sample.py
코드는 여기에 포함하기에는 너무 길지만 주요 섹션은 위에 표시됩니다).

결론:

이 프로젝트는 Airflow, Docker 및 PostgreSQL을 사용하여 완전한 데이터 파이프 라인을 보여줍니다. 자동화의 이점과 재현 가능한 환경에 Docker의 사용을 강조합니다. 연산자와 DAG 구조의 사용은 효율적인 워크 플로 관리의 핵심입니다.

(FAQ 및 Github Repo를 포함한 나머지 섹션은 간결하게 생략됩니다. 원래 입력에 존재합니다.)

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3