幫助中心 | 我的帳號 | 關於我們

Apache Airflow數據編排實戰

  • 作者:(荷)巴斯·哈倫斯拉克//朱利安·德·瑞特|責編:王軍|譯者:殷海英
  • 出版社:清華大學
  • ISBN:9787302618157
  • 出版日期:2022/11/01
  • 裝幀:平裝
  • 頁數:410
人民幣:RMB 128 元      售價:
放入購物車
加入收藏夾

內容大鋼
    數據管道通過整合、清理、分析、可視化等方式來管理初始收集的數據流。Apache Airflow提供了一個統一的平台,可以使用它設計、實施、監控和維護數據的流動。Airflow具有易於使用的UI、即插即用的選項以及靈活的Python腳本,這些都使Airflow能夠非常輕鬆地完成任何數據管理任務。
    在《Apache Airflow數據編排實戰》中,介紹了如何構建和維護有效的數據管道。與你一同探索最常見的使用模式,包括聚合多個數據源、連接到數據湖以及雲端部署。可以將本書作為Airflow的實用指南,本書涵蓋了為Airflow提供動力的有向無環圖(DAG)的各方面知識,以及如何根據工作需求對其進行自定義的技術。
    主要內容
    構建、測試及部署Airflow管道作為DAG
    自動對數據進行移動和轉換
    使用回填技術分析歷史數據集
    開發自定義組件
    在生產環境中搭建Airflow
    本書面向具有一定Python編程基礎的程序員、DevOps工程師、數據工程師、機器學習工程師及系統管理員。

作者介紹
(荷)巴斯·哈倫斯拉克//朱利安·德·瑞特|責編:王軍|譯者:殷海英

目錄
第Ⅰ部分  入門
  第1章  遇見Apache Airflow
    1.1  數據管道介紹
      1.1.1  數據管道的圖形表示
      1.1.2  運行管道圖
      1.1.3  管道圖與順序腳本
      1.1.4  使用工作流管理器運行數據流
    1.2  Airflow介紹
      1.2.1  通過Python代碼靈活定義數據管道
      1.2.2  調度並執行數據管道
      1.2.3  監控和處理故障
      1.2.4  增量載入和回填
    1.3  何時使用Airflow
      1.3.1  選擇Airflow的原因
      1.3.2  不使用Airflow的理由
    1.4  本書的其餘部分
    1.5  本章小結
  第2章  Airflow DAG深度解析
    2.1  從大量數據源中收集數據
    2.2  編寫你的第一個Airflow DAG
      2.2.1  任務與operator
      2.2.2  運行任意Python代碼
    2.3  在Airflow中運行DAG
      2.3.1  在Python環境中運行Airflow
      2.3.2  在Docker容器中運行Airflow
      2.3.3  使用Airflow圖形界面
    2.4  運行定時任務
    2.5  處理失敗的任務
    2.6  本章小結
  第3章  Airflow中的調度
    3.1  示例:處理用戶事件
    3.2  定期執行DAG
      3.2.1  使用調度器計劃性運行
      3.2.2  基於cron的時間間隔
      3.2.3  基於頻率的時間間隔
    3.3  增量處理數據
      3.3.1  獲取增量事件數據
      3.3.2  使用執行日期的動態時間參考
      3.3.3  對數據執行分區
    3.4  理解Airflow的執行日期
    3.5  使用回填技術填補過去的空白
    3.6  任務設計的最佳實踐
      3.6.1  原子性
      3.6.2  冪等性
    3.7  本章小結
  第4章  使用Airflow context對任務進行模板化
    4.1  為Airflow準備數據
    4.2  任務context和Jinja模板
      4.2.1  對operator使用參數模板
      4.2.2  模板中可用的變數及表達式

      4.2.3  對PythonOperator使用模板
      4.2.4  為PythonOperator提供變數
      4.2.5  檢查模板化參數
    4.3  連接到其他系統
    4.4  本章小結
  第5章  定義任務之間的依賴關係
    5.1  基本依賴關係
      5.1.1  線性依賴關係
      5.1.2  扇入/扇出依賴
    5.2  分支
      5.2.1  在任務內部執行分支操作
      5.2.2  在DAG中使用分支技術
    5.3  帶有條件的任務
      5.3.1  在任務內部使用條件
      5.3.2  對DAG使用條件
      5.3.3  使用內置operator
    5.4  觸發條件詳解
      5.4.1  什麼是觸發規則
      5.4.2  失敗的影響
      5.4.3  其他觸發規則
    5.5  在任務之間共享數據
      5.5.1  使用XCom共享數據
      5.5.2  XCom的適用場景
      5.5.3  使用自定義XCom後端存儲
    5.6  使用Taskflow API連接Python任務
      5.6.1  使用Taskflow API簡化Python任務
      5.6.2  Taskflow API的適用場景
    5.7  本章小結
第Ⅱ部分  Airflow深入學習
  第6章  觸發工作流
    6.1  帶有感測器的輪詢條件
      6.1.1  輪詢自定義條件
      6.1.2  感測器的異常情況
    6.2  觸發其他DAG
      6.2.1  使用TriggerDagRunOperator執行回填操作
      6.2.2  輪詢其他DAG的狀態
    6.3  使用REST/CLI啟動工作流
    6.4  本章小結
  第7章  與外部系統通信
    7.1  連接到雲服務
      7.1.1  安裝額外的依賴軟體包
      7.1.2  開發一個機器學習模型
      7.1.3  在本地開發外部系統程序
    7.2  在系統之間移動數據
      7.2.1  實現PostgresToS3Operator
      7.2.2  將繁重的任務「外包」出去
    7.3  本章小結
  第8章  創建自定義組件
    8.1  從PythonOperator開始
      8.1.1  模擬電影評分API

      8.1.2  從API獲取評分數據
      8.1.3  構建具體的DAG
    8.2  創建自定義hook
      8.2.1  設定自定義hook
      8.2.2  使用MovielensHook構建DAG
    8.3  構建自定義operator
      8.3.1  創建自定義operator
      8.3.2  創建用於獲取評分數據的operator
    8.4  創建自定義感測器
    8.5  將你的組件打包
      8.5.1  引導Python包
      8.5.2  安裝你的Python包
    8.6  本章小結
  第9章  測試
    9.1  開始測試
      9.1.1  所有DAG的完整性測試
      9.1.2  設置CI/CD管道
      9.1.3  編寫單元測試
      9.1.4  pytest項目結構
      9.1.5  使用磁碟上的文件測試
    9.2  在測試中使用DAG和任務context
    9.3  使用測試進行開發
    9.4  使用Whirl模擬生產環境
    9.5  創建DTAP環境
    9.6  本章小結
  第10章  在容器中運行任務
    10.1  同時使用多個不同operator所面臨的挑戰
      10.1.1  operator介面和實現
      10.1.2  複雜且相互衝突的依賴關係
      10.1.3  轉向通用operator
    10.2  容器
      10.2.1  什麼是容器
      10.2.2  運行第一個Docker容器
      10.2.3  創建Docker映像
      10.2.4  使用卷持久化數據
    10.3  容器與Airflow
      10.3.1  容器中的任務
      10.3.2  為什麼使用容器
    10.4  在Docker中運行任務
      10.4.1  使用DockerOperator
      10.4.2  為任務創建容器映像
      10.4.3  使用Docker任務創建DAG
      10.4.4  基於Docker的工作流
    10.5  在Kubernetes中運行任務
      10.5.1  Kubernetes介紹
      10.5.2  設置Kubernetes
      10.5.3  使用KubernetesPodOperator
      10.5.4  診斷Kubernetes相關的問題
      10.5.5  與基於docker的工作流的區別
    10.6  本章小結

第Ⅲ部分  Airflow實踐
  第11章  最佳實現
    11.1  編寫清晰的DAG
      11.1.1  使用風格約定
      11.1.2  集中管理憑證
      11.1.3  統一指定配置詳細信息
      11.1.4  避免在DAG定義中計算
      11.1.5  使用工廠函數生成通用模式
      11.1.6  使用任務組對相關任務進行分組
      11.1.7  為重大變更創建新的DAG
    11.2  設計可重用的任務
      11.2.1  要求任務始終滿足冪等性
      11.2.2  任務結果的確定性
      11.2.3  使用函數式範式設計任務
    11.3  高效處理數據
      11.3.1  限制處理的數據量
      11.3.2  增量載入與增量處理
      11.3.3  緩存中間數據
      11.3.4  不要將數據存儲在本地文件系統
      11.3.5  將工作卸載到外部系統或源系統
    11.4  管理資源
      11.4.1  使用資源池管理併發
      11.4.2  使用SLA和告警來檢測長時間運行的任務
    11.5  本章小結
  第12章  在生產環境中使用Airflow
    12.1  Airflow架構
      12.1.1  挑選適合的執行器
      12.1.2  為Airflow配置metastore
      12.1.3  深入了解調度器
    12.2  安裝每個執行器
      12.2.1  設置SequentialExecutor
      12.2.2  設置LocalExecutor
      12.2.3  設置CeleryExecutor
      12.2.4  設置KubernetesExecutor
    12.3  捕獲所有Airflow進程的日誌
      12.3.1  捕獲Web伺服器輸出
      12.3.2  捕獲調度器輸出
      12.3.3  捕獲任務日誌
      12.3.4  將日誌發送到遠程存儲
    12.4  可視化及監控Airflow指標
      12.4.1  從Airflow收集指標
      12.4.2  配置Airflow以發送指標
      12.4.3  配置Prometheus以收集指標
      12.4.4  使用Grafana創建儀錶板
      12.4.5  應監控的指標
    12.5  如何獲得失敗任務的通知
      12.5.1  DAG和operator內的告警
      12.5.2  定義服務級別協議(SLA)
    12.6  可伸縮性與性能
      12.6.1  控制最大運行任務數

      12.6.2  系統性能配置
      12.6.3  運行多個調度器
    12.7  本章小結
  第13章  Airflow安全性
    13.1  保護Airflow Web界面
      13.1.1  將用戶添加到RBAC界面
      13.1.2  配置RBAC界面
    13.2  加密靜態數據
    13.3  連接LDAP服務
      13.3.1  理解LDAP
      13.3.2  從LDAP服務獲取用戶
    13.4  加密與Web伺服器的通信
      13.4.1  了解HTTPS
      13.4.2  為HTTPS配置證書
    13.5  從認證管理系統獲取憑證
    13.6  本章小結
  第14章  實戰:探索遊覽紐約市的最快方式
    14.1  理解數據
      14.1.1  Yellow Cab文件共享
      14.1.2  Citi Bike REST API
      14.1.3  確定演算法
    14.2  提取數據
      14.2.1  下載Citi Bike數據
      14.2.2  下載Yellow Cab數據
    14.3  對數據應用類似的轉換
    14.4  構建數據管道
    14.5  開發冪等的數據管道
    14.6  本章小結
第Ⅳ部分  在雲端
  第15章  Airflow在雲端
    15.1  設計雲端部署策略
    15.2  雲端專用的hook和operator
    15.3  托管服務
      15.3.1  Astronomer.io
      15.3.2  Google Cloud Composer
      15.3.3  適用於Apache Airflow的Amazon托管工作流
    15.4  選擇部署策略
    15.5  本章小結
  第16章  在AWS中運行Airflow
    16.1  在AWS中部署Airflow
      16.1.1  選擇雲服務
      16.1.2  設計網路
      16.1.3  添加DAG同步
      16.1.4  使用CeleryExecutor擴展
      16.1.5  後續步驟
    16.2  針對AWS的hook和operator
    16.3  用例:使用AWS Athena進行無伺服器的電影排名
      16.3.1  用例概要
      16.3.2  設置資源
      16.3.3  創建DAG

      16.3.4  環境清理
    16.4  本章小結
  第17章  在Azure中使用Airflow
    17.1  在Azure中部署Airflow
      17.1.1  選擇服務
      17.1.2  設計網路
      17.1.3  使用CeleryExecutor擴展
      17.1.4  後續步驟
    17.2  針對Azure設計的hook和operator
    17.3  示例:在Azure上運行無伺服器的電影推薦程序
      17.3.1  示例概要
      17.3.2  設定資源
      17.3.3  創建DAG
      17.3.4  環境清理
    17.4  本章小結
  第18章  在GCP中運行Airflow
    18.1  在GCP中部署Airflow
      18.1.1  選擇服務
      18.1.2  使用Helm在GKE上部署Airflow
      18.1.3  與Google服務集成
      18.1.4  設計網路
      18.1.5  通過CeleryExecutor擴展
    18.2  針對GCP的hook和operator
    18.3  用例:在GCP上運行無伺服器的電影評級
      18.3.1  上傳到GCS
      18.3.2  將數據導入BigQuery
      18.3.3  提取最高評分
    18.4  本章小結
附錄A  運行示例代碼
附錄B  Airflow 1和Airflow 2中的包結構
附錄C  Prometheus指標映射

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032