Table of Contents

옮긴이 머리말 xiii 번역서 추천사 xv 베타리더 후기 xvii 원서 추천사 xix 시작하며 xx 감사의 글 xxii 이 책에 대하여 xxiv 표지에 대하여 xxviii PART I 기본편 CHAPTER 1 Apache Airflow 살펴보기 3 1.1 데이터 파이프라인 소개 4 1.1.1 데이터 파이프라인 그래프 4 1.1.2 파이프라인 그래프 실행 6 1.1.3 그래프 파이프라인과 절차적 스크립트 파이프라인 비교 7 1.1.4 워크플로 매니저를 이용한 파이프라인 실행 9 1.2 Airflow 소개 10 1.2.1 파이썬 코드로 유연한 파이프라인 정의 10 1.2.2 파이프라인 스케줄링 및 실행 11 1.2.3 모니터링과 실패 처리 13 1.2.4 점진적 로딩 및 백필 16 1.3 언제 Airflow를 사용해야 할까 16 1.3.1 Airflow를 선택하는 이유 17 1.3.2 Airflow가 적합하지 않은 경우 17 1.4 이후 내용 18 요약 19 CHAPTER 2 Airflow DAG의 구조 20 2.1 다양한 소스에서 데이터 수집 21 2.1.1 데이터 탐색 21 2.2 첫 번째 Airflow DAG 작성 23 2.2.1 태스크와 오퍼레이터 차이점 27 2.2.2 임의 파이썬 코드 실행 27 2.3 Airflow에서 DAG 실행하기 30 2.3.1 파이썬 환경에서 Airflow 실행 30 2.3.2 도커 컨테이너에서 Airflow 실행하기 31 2.3.3 Airflow UI 둘러보기 32 2.4 스케줄 간격으로 실행하기 36 2.5 실패한 태스크에 대한 처리 37 요약 40 CHAPTER 3 Airflow의 스케줄링 41 3.1 예시: 사용자 이벤트 처리하기 41 3.2 정기적으로 실행하기 43 3.2.1 스케줄 간격 정의하기 43 3.2.2 Cron 기반의 스케줄 간격 설정하기 45 3.2.3 빈도 기반의 스케줄 간격 설정하기 47 3.3 데이터 증분 처리하기 48 3.3.1 이벤트 데이터 증분 가져오기 48 3.3.2 실행 날짜를 사용하여 동적 시간 참조하기 49 3.3.3 데이터 파티셔닝 51 3.4 Airflow의 실행 날짜 이해 53 3.4.1 고정된 스케줄 간격으로 태스크 실행 53 3.5 과거 데이터 간격을 메꾸기 위해 백필 사용하기 56 3.5.1 과거 시점의 작업 실행하기 56 3.6 태스크 디자인을 위한 모범 사례 57 3.6.1 원자성 57 3.6.2 멱등성 59 요약 60 CHAPTER 4 Airflow 콘텍스트를 사용하여 태스크 템플릿 작업하기 62 4.1 Airflow로 처리할 데이터 검사하기 62 4.1.1 증분 데이터를 적재하는 방법 결정하기 63 4.2 태스크 콘텍스트와 Jinja 템플릿 작업 65 4.2.1 오퍼레이터의 인수 템플릿 작업 65 4.2.2 템플릿에 무엇이 사용 가능할까요? 67 4.2.3 PythonOperator 템플릿 70 4.2.4 PythonOperator에 변수 제공 75 4.2.5 템플릿의 인수 검사하기 76 4.3 다른 시스템과 연결하기 78 요약 86 CHAPTER 5 태스크 간 의존성 정의하기 87 5.1 기본 의존성 유형 88 5.1.1 선형 의존성 유형 88 5.1.2 팬인/팬아웃(Fan-in/Fan-out) 의존성 89 5.2 브랜치하기 92 5.2.1 태스크 내에서 브랜치하기 92 5.2.2 DAG 내부에서 브랜치하기 94 5.3 조건부 태스크 99 5.3.1 태스크 내에서 조건 99 5.3.2 조건부 태스크 만들기 100 5.3.3 내장 오퍼레이터 사용하기 102 5.4 트리거 규칙에 대한 추가 정보 102 5.4.1 트리거 규칙이란? 103 5.4.2 실패의 영향 104 5.4.3 기타 트리거 규칙 104 5.5 태스크 간 데이터 공유 106 5.5.1 XCom을 사용하여 데이터 공유하기 106 5.5.2 XCom 사용 시 고려사항 109 5.5.3 커스텀 XCom 백엔드 사용하기 110 5.6 Taskflow API로 파이썬 태스크 연결하기 111 5.6.1 Taskflow API로 파이썬 태스크 단순화하기 111 5.6.2 Taskflow API를 사용하지 않는 경우 113 요약 115 PART II 중급편 CHAPTER 6 워크플로 트리거 119 6.1 센서를 사용한 폴링 조건 120 6.1.1 사용자 지정 조건 폴링 123 6.1.2 원활하지 않는 흐름의 센서 처리 124 6.2 다른 DAG를 트리거하기 127 6.2.1 TriggerDagRunOperator로 백필 작업 131 6.2.2 다른 DAG의 상태를 폴링하기 132 6.3 REST/CLI를 이용해 워크플로 시작하기 135 요약 138 CHAPTER 7 외부 시스템과 통신하기 139 7.1 클라우드 서비스에 연결하기 140 7.1.1 추가 의존성 패키지 설치하기 141 7.1.2 머신러닝 모델 개발하기 142 7.1.3 외부 시스템을 사용하여 개발하기 147 7.2 시스템 간 데이터 이동하기 155