Apache Airflow 数据编排实战

Apache Airflow 数据编排实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2022-11
版次: 1
ISBN: 9787302618157
定价: 128.00
装帧: 其他
开本: 16开
纸张: 胶版纸
5人买过
  • 数据管道通过整合、清理、分析、可视化等方式来管理初始收集的数据流。Apache Airflow提供了一个统一的平台,可以使用它设计、实施、监控和维护数据的流动。Airflow具有易于使用的UI、即插即用的选项以及灵活的Python脚本,这些都使Airflow能够非常轻松地完成任何数据管理任务。   在《Apache Airflow 数据编排实战》中,介绍了如何构建和维护有效的数据管道。与你一同探索最常见的使用模式,包括聚合多个数据源、连接到数据湖以及云端部署。可以将本书作为Airflow的实用指南,本书涵盖了为Airflow提供动力的有向无环图(DAG)的各方面知识,以及如何根据工作需求对其进行自定义的技术。 主要内容 ● 构建、测试及部署Airflow管道作为DAG ● 自动对数据进行移动和转换 ● 使用回填技术分析历史数据集 ● 开发自定义组件 ● 在生产环境中搭建Airflow Bas Harenslak和Julian de Ruiter是数据工程师,他们在为大公司开发数据管道方面拥有丰富的经验。同时,Bas也是一位Airflow的提交者。 第Ⅰ部分  入门

    第1章  遇见Apache Airflow 3

    1.1  数据管道介绍 3

    1.1.1  数据管道的图形表示 4

    1.1.2  运行管道图 5

    1.1.3  管道图与顺序脚本 6

    1.1.4  使用工作流管理器运行数据流 8

    1.2  Airflow介绍 9

    1.2.1  通过Python代码灵活定义数据管道 9

    1.2.2  调度并执行数据管道 10

    1.2.3  监控和处理故障 11

    1.2.4  增量载入和回填 14

    1.3  何时使用Airflow 14

    1.3.1  选择Airflow的原因 14

    1.3.2  不使用Airflow的理由 15

    1.4  本书的其余部分 15

    1.5  本章小结 16

    第2章  Airflow DAG深度解析 17

    2.1  从大量数据源中收集数据 17

    2.2  编写你的第一个Airflow DAG 19

    2.2.1  任务与operator 22

    2.2.2  运行任意Python代码 23

    2.3  在Airflow中运行DAG 25

    2.3.1  在Python环境中运行Airflow 25

    2.3.2  在Docker容器中运行Airflow 26

    2.3.3  使用Airflow图形界面 27

    2.4  运行定时任务 31

    2.5  处理失败的任务 32

    2.6  本章小结 34

    第3章  Airflow中的调度 35

    3.1  示例:处理用户事件 35

    3.2  定期执行DAG 37

    3.2.1  使用调度器计划性运行 37

    3.2.2  基于cron的时间间隔 38

    3.2.3  基于频率的时间间隔 40

    3.3  增量处理数据 40

    3.3.1  获取增量事件数据 40

    3.3.2  使用执行日期的动态时间参考 42

    3.3.3  对数据执行分区 43

    3.4  理解Airflow的执行日期 45

    3.5  使用回填技术填补过去的空白 47

    3.6  任务设计的最佳实践 49

    3.6.1  原子性 49

    3.6.2  幂等性 51

    3.7  本章小结 52

    第4章  使用Airflow context对任务进行模板化 53

    4.1  为Airflow准备数据 53

    4.2  任务context和Jinja模板 55

    4.2.1  对operator使用参数模板 56

    4.2.2  模板中可用的变量及表达式 57

    4.2.3  对PythonOperator使用模板 60

    4.2.4  为PythonOperator提供变量 64

    4.2.5  检查模板化参数 66

    4.3  连接到其他系统 67

    4.4  本章小结 74

    第5章  定义任务之间的依赖关系 75

    5.1  基本依赖关系 75

    5.1.1  线性依赖关系 75

    5.1.2  扇入/扇出依赖 77

    5.2  分支 79

    5.2.1  在任务内部执行分支操作 79

    5.2.2  在DAG中使用分支技术 81

    5.3  带有条件的任务 85

    5.3.1  在任务内部使用条件 85

    5.3.2  对DAG使用条件 86

    5.3.3  使用内置operator 88

    5.4  触发条件详解 88

    5.4.1  什么是触发规则 88

    5.4.2  失败的影响 89

    5.4.3  其他触发规则 90

    5.5  在任务之间共享数据 91

    5.5.1  使用XCom共享数据 91

    5.5.2  XCom的适用场景 94

    5.5.3  使用自定义XCom后端存储 95

    5.6  使用Taskflow API连接Python任务 95

    5.6.1  使用Taskflow API简化Python任务 96

    5.6.2  Taskflow API的适用场景 98

    5.7  本章小结 99

    第Ⅱ部分  Airflow深入学习

    第6章  触发工作流 103

    6.1  带有传感器的轮询条件 103

    6.1.1  轮询自定义条件 106

    6.1.2  传感器的异常情况 107

    6.2  触发其他DAG 110

    6.2.1  使用TriggerDagRunOperator执行回填操作 114

    6.2.2  轮询其他 DAG 的状态 114

    6.3  使用REST/CLI启动工作流 117

    6.4  本章小结 120

    第7章  与外部系统通信 121

    7.1  连接到云服务 122

    7.1.1  安装额外的依赖软件包 122

    7.1.2  开发一个机器学习模型 123

    7.1.3  在本地开发外部系统程序 128

    7.2  在系统之间移动数据 134

    7.2.1  实现PostgresToS3Operator 136

    7.2.2  将繁重的任务“外包”出去 139

    7.3  本章小结 141

    第8章  创建自定义组件 143

    8.1  从PythonOperator开始 143

    8.1.1  模拟电影评分API 144

    8.1.2  从API获取评分数据 146

    8.1.3  构建具体的DAG 149

    8.2  创建自定义hook 151

    8.2.1  设定自定义hook 151

    8.2.2  使用MovielensHook构建DAG 156

    8.3  构建自定义operator 158

    8.3.1  创建自定义operator 158

    8.3.2  创建用于获取评分数据的operator 159

    8.4  创建自定义传感器 162

    8.5  将你的组件打包 165

    8.5.1  引导Python包 166

    8.5.2  安装你的Python包 168

    8.6  本章小结 169

    第9章  测试 171

    9.1  开始测试 171

    9.1.1  所有DAG的完整性测试 172

    9.1.2  设置CI/CD管道 177

    9.1.3  编写单元测试 179

    9.1.4  pytest项目结构 180

    9.1.5  使用磁盘上的文件测试 184

    9.2  在测试中使用DAG和任务context 186

    9.3  使用测试进行开发 198

    9.4  使用Whirl模拟生产环境 201

    9.5  创建DTAP环境 201

    9.6  本章小结 201

    第10章  在容器中运行任务 203

    10.1  同时使用多个不同operator

    所面临的挑战 203

    10.1.1  operator接口和实现 204

    10.1.2  复杂且相互冲突的依赖关系 204

    10.1.3  转向通用operator 205

    10.2  容器 205

    10.2.1  什么是容器 206

    10.2.2  运行第一个Docker容器 207

    10.2.3  创建Docker映像 207

    10.2.4  使用卷持久化数据 209

    10.3  容器与Airflow 212

    10.3.1  容器中的任务 212

    10.3.2  为什么使用容器 212

    10.4  在Docker中运行任务 213

    10.4.1 使用DockerOperator 213

    10.4.2  为任务创建容器映像 215

    10.4.3  使用Docker任务创建DAG 218

    10.4.4  基于Docker的工作流 220

    10.5  在Kubernetes中运行任务 221

    10.5.1  Kubernetes介绍 221

    10.5.2  设置Kubernetes 222

    10.5.3  使用KubernetesPodOperator 225

    10.5.4  诊断Kubernetes相关的问题 228

    10.5.5  与基于docker的工作流的区别 230

    10.6  本章小结 231

    第Ⅲ部分  Airflow实践

    第11章  最佳实现 235

    11.1  编写清晰的DAG 235

    11.1.1  使用风格约定 235

    11.1.2  集中管理凭证 239

    11.1.3  统一指定配置详细信息 240

    11.1.4  避免在DAG定义中计算 242

    11.1.5  使用工厂函数生成通用模式 244

    11.1.6  使用任务组对相关任务进行分组 247

    11.1.7  为重大变更创建新的DAG 248

    11.2  设计可重用的任务 249

    11.2.1  要求任务始终满足幂等性 249

    11.2.2  任务结果的确定性 249

    11.2.3  使用函数式范式设计任务 250

    11.3  高效处理数据 250

    11.3.1  限制处理的数据量 250

    11.3.2  增量载入与增量处理 252

    11.3.3  缓存中间数据 252

    11.3.4  不要将数据存储在本地文件系统 253

    11.3.5  将工作卸载到外部系统或源系统 253

    11.4  管理资源 254

    11.4.1  使用资源池管理并发 254

    11.4.2  使用SLA和告警来检测长时间运行的任务 255

    11.5  本章小结 256

    第12章  在生产环境中使用Airflow 257

    12.1  Airflow架构 258

    12.1.1  挑选适合的执行器 259

    12.1.2  为Airflow配置metastore 259

    12.1.3  深入了解调度器 261

    12.2  安装每个执行器 265

    12.2.1  设置SequentialExecutor 266

    12.2.2  设置LocalExecutor 266

    12.2.3  设置CeleryExecutor 267

    12.2.4  设置KubernetesExecutor 269

    12.3  捕获所有Airflow进程的日志 276

    12.3.1  捕获Web服务器输出 276

    12.3.2  捕获调度器输出 277

    12.3.3  捕获任务日志 278

    12.3.4  将日志发送到远程存储 278

    12.4  可视化及监控Airflow指标 279

    12.4.1  从Airflow收集指标 279

    12.4.2  配置Airflow以发送指标 280

    12.4.3  配置Prometheus以收集指标 281

    12.4.4  使用Grafana创建仪表板 283

    12.4.5  应监控的指标 285

    12.5  如何获得失败任务的通知 287

    12.5.1  DAG和operator内的告警 287

    12.5.2  定义服务级别协议(SLA) 289

    12.6  可伸缩性与性能 290

    12.6.1  控制最大运行任务数 290

    12.6.2  系统性能配置 292

    12.6.3  运行多个调度器 292

    12.7  本章小结 293

    第13章  Airflow安全性 295

    13.1  保护Airflow Web界面 296

    13.1.1  将用户添加到RBAC界面 296

    13.1.2  配置RBAC界面 299

    13.2  加密静态数据 300

    13.3  连接LDAP服务 301

    13.3.1  理解LDAP 302

    13.3.2  从LDAP服务获取用户 304

    13.4  加密与Web服务器的通信 305

    13.4.1  了解HTTPS 305

    13.4.2  为HTTPS配置证书 307

    13.5  从认证管理系统获取凭证 311

    13.6  本章小结 314

    第14章  实战:探索游览纽约市的最快方式 315

    14.1  理解数据 318

    14.1.1  Yellow Cab文件共享 318

    14.1.2  Citi Bike REST API 319

    14.1.3  确定算法 320

    14.2  提取数据 320

    14.2.1  下载Citi Bike数据 321

    14.2.2  下载Yellow Cab数据 323

    14.3  对数据应用类似的转换 325

    14.4  构建数据管道 330

    14.5  开发幂等的数据管道 331

    14.6  本章小结 333

    第Ⅳ部分  在云端

    第15章  Airflow在云端 337

    15.1  设计云端部署策略 337

    15.2  云端专用的hook和operator 339

    15.3  托管服务 340

    15.3.1  Astronomer.io 340

    15.3.2  Google Cloud Composer 340

    15.3.3  适用于Apache Airflow的

    Amazon托管工作流 341

    15.4  选择部署策略 342

    15.5  本章小结 342

    第16章  在AWS中运行Airflow 345

    16.1  在AWS中部署Airflow 345

    16.1.1  选择云服务 345

    16.1.2  设计网络 347

    16.1.3  添加DAG同步 347

    16.1.4  使用CeleryExecutor扩展 348

    16.1.5  后续步骤 349

    16.2  针对AWS的hook和operator 350

    16.3  用例:使用AWS Athena进行无服务器的电影排名 351

    16.3.1  用例概要 352

    16.3.2  设置资源 352

    16.3.3  创建DAG 355

    16.3.4  环境清理 360

    16.4  本章小结 361

    第17章  在Azure中使用Airflow 363

    17.1  在Azure中部署Airflow 363

    17.1.1  选择服务 363

    17.1.2  设计网络 364

    17.1.3  使用CeleryExecutor扩展 365

    17.1.4  后续步骤 366

    17.2  针对Azure设计的hook和operator 367

    17.3  示例:在Azure上运行无服务器的电影推荐程序 367

    17.3.1  示例概要 368

    17.3.2  设定资源 368

    17.3.3  创建DAG 372

    17.3.4  环境清理 377

    17.4  本章小结 378

    第18章  在GCP中运行Airflow 379

    18.1  在GCP中部署Airflow 379

    18.1.1  选择服务 379

    18.1.2  使用Helm在GKE上

    部署Airflow 381

    18.1.3  与Google服务集成 383

    18.1.4  设计网络 385

    18.1.5  通过CeleryExecutor扩展 386

    18.2  针对GCP的hook和operator 388

    18.3  用例:在GCP上运行无服务器的电影评级 392

    18.3.1  上传到GCS 392

    18.3.2  将数据导入BigQuery 394

    18.3.3  提取最高评分 396

    18.4  本章小结 399

    附录A  运行示例代码 401

    附录B  Airflow 1和Airflow 2中的包结构 405

    附录C  Prometheus指标映射 409

     

     
  • 内容简介:
    数据管道通过整合、清理、分析、可视化等方式来管理初始收集的数据流。Apache Airflow提供了一个统一的平台,可以使用它设计、实施、监控和维护数据的流动。Airflow具有易于使用的UI、即插即用的选项以及灵活的Python脚本,这些都使Airflow能够非常轻松地完成任何数据管理任务。   在《Apache Airflow 数据编排实战》中,介绍了如何构建和维护有效的数据管道。与你一同探索最常见的使用模式,包括聚合多个数据源、连接到数据湖以及云端部署。可以将本书作为Airflow的实用指南,本书涵盖了为Airflow提供动力的有向无环图(DAG)的各方面知识,以及如何根据工作需求对其进行自定义的技术。 主要内容 ● 构建、测试及部署Airflow管道作为DAG ● 自动对数据进行移动和转换 ● 使用回填技术分析历史数据集 ● 开发自定义组件 ● 在生产环境中搭建Airflow
  • 作者简介:
    Bas Harenslak和Julian de Ruiter是数据工程师,他们在为大公司开发数据管道方面拥有丰富的经验。同时,Bas也是一位Airflow的提交者。
  • 目录:
    第Ⅰ部分  入门

    第1章  遇见Apache Airflow 3

    1.1  数据管道介绍 3

    1.1.1  数据管道的图形表示 4

    1.1.2  运行管道图 5

    1.1.3  管道图与顺序脚本 6

    1.1.4  使用工作流管理器运行数据流 8

    1.2  Airflow介绍 9

    1.2.1  通过Python代码灵活定义数据管道 9

    1.2.2  调度并执行数据管道 10

    1.2.3  监控和处理故障 11

    1.2.4  增量载入和回填 14

    1.3  何时使用Airflow 14

    1.3.1  选择Airflow的原因 14

    1.3.2  不使用Airflow的理由 15

    1.4  本书的其余部分 15

    1.5  本章小结 16

    第2章  Airflow DAG深度解析 17

    2.1  从大量数据源中收集数据 17

    2.2  编写你的第一个Airflow DAG 19

    2.2.1  任务与operator 22

    2.2.2  运行任意Python代码 23

    2.3  在Airflow中运行DAG 25

    2.3.1  在Python环境中运行Airflow 25

    2.3.2  在Docker容器中运行Airflow 26

    2.3.3  使用Airflow图形界面 27

    2.4  运行定时任务 31

    2.5  处理失败的任务 32

    2.6  本章小结 34

    第3章  Airflow中的调度 35

    3.1  示例:处理用户事件 35

    3.2  定期执行DAG 37

    3.2.1  使用调度器计划性运行 37

    3.2.2  基于cron的时间间隔 38

    3.2.3  基于频率的时间间隔 40

    3.3  增量处理数据 40

    3.3.1  获取增量事件数据 40

    3.3.2  使用执行日期的动态时间参考 42

    3.3.3  对数据执行分区 43

    3.4  理解Airflow的执行日期 45

    3.5  使用回填技术填补过去的空白 47

    3.6  任务设计的最佳实践 49

    3.6.1  原子性 49

    3.6.2  幂等性 51

    3.7  本章小结 52

    第4章  使用Airflow context对任务进行模板化 53

    4.1  为Airflow准备数据 53

    4.2  任务context和Jinja模板 55

    4.2.1  对operator使用参数模板 56

    4.2.2  模板中可用的变量及表达式 57

    4.2.3  对PythonOperator使用模板 60

    4.2.4  为PythonOperator提供变量 64

    4.2.5  检查模板化参数 66

    4.3  连接到其他系统 67

    4.4  本章小结 74

    第5章  定义任务之间的依赖关系 75

    5.1  基本依赖关系 75

    5.1.1  线性依赖关系 75

    5.1.2  扇入/扇出依赖 77

    5.2  分支 79

    5.2.1  在任务内部执行分支操作 79

    5.2.2  在DAG中使用分支技术 81

    5.3  带有条件的任务 85

    5.3.1  在任务内部使用条件 85

    5.3.2  对DAG使用条件 86

    5.3.3  使用内置operator 88

    5.4  触发条件详解 88

    5.4.1  什么是触发规则 88

    5.4.2  失败的影响 89

    5.4.3  其他触发规则 90

    5.5  在任务之间共享数据 91

    5.5.1  使用XCom共享数据 91

    5.5.2  XCom的适用场景 94

    5.5.3  使用自定义XCom后端存储 95

    5.6  使用Taskflow API连接Python任务 95

    5.6.1  使用Taskflow API简化Python任务 96

    5.6.2  Taskflow API的适用场景 98

    5.7  本章小结 99

    第Ⅱ部分  Airflow深入学习

    第6章  触发工作流 103

    6.1  带有传感器的轮询条件 103

    6.1.1  轮询自定义条件 106

    6.1.2  传感器的异常情况 107

    6.2  触发其他DAG 110

    6.2.1  使用TriggerDagRunOperator执行回填操作 114

    6.2.2  轮询其他 DAG 的状态 114

    6.3  使用REST/CLI启动工作流 117

    6.4  本章小结 120

    第7章  与外部系统通信 121

    7.1  连接到云服务 122

    7.1.1  安装额外的依赖软件包 122

    7.1.2  开发一个机器学习模型 123

    7.1.3  在本地开发外部系统程序 128

    7.2  在系统之间移动数据 134

    7.2.1  实现PostgresToS3Operator 136

    7.2.2  将繁重的任务“外包”出去 139

    7.3  本章小结 141

    第8章  创建自定义组件 143

    8.1  从PythonOperator开始 143

    8.1.1  模拟电影评分API 144

    8.1.2  从API获取评分数据 146

    8.1.3  构建具体的DAG 149

    8.2  创建自定义hook 151

    8.2.1  设定自定义hook 151

    8.2.2  使用MovielensHook构建DAG 156

    8.3  构建自定义operator 158

    8.3.1  创建自定义operator 158

    8.3.2  创建用于获取评分数据的operator 159

    8.4  创建自定义传感器 162

    8.5  将你的组件打包 165

    8.5.1  引导Python包 166

    8.5.2  安装你的Python包 168

    8.6  本章小结 169

    第9章  测试 171

    9.1  开始测试 171

    9.1.1  所有DAG的完整性测试 172

    9.1.2  设置CI/CD管道 177

    9.1.3  编写单元测试 179

    9.1.4  pytest项目结构 180

    9.1.5  使用磁盘上的文件测试 184

    9.2  在测试中使用DAG和任务context 186

    9.3  使用测试进行开发 198

    9.4  使用Whirl模拟生产环境 201

    9.5  创建DTAP环境 201

    9.6  本章小结 201

    第10章  在容器中运行任务 203

    10.1  同时使用多个不同operator

    所面临的挑战 203

    10.1.1  operator接口和实现 204

    10.1.2  复杂且相互冲突的依赖关系 204

    10.1.3  转向通用operator 205

    10.2  容器 205

    10.2.1  什么是容器 206

    10.2.2  运行第一个Docker容器 207

    10.2.3  创建Docker映像 207

    10.2.4  使用卷持久化数据 209

    10.3  容器与Airflow 212

    10.3.1  容器中的任务 212

    10.3.2  为什么使用容器 212

    10.4  在Docker中运行任务 213

    10.4.1 使用DockerOperator 213

    10.4.2  为任务创建容器映像 215

    10.4.3  使用Docker任务创建DAG 218

    10.4.4  基于Docker的工作流 220

    10.5  在Kubernetes中运行任务 221

    10.5.1  Kubernetes介绍 221

    10.5.2  设置Kubernetes 222

    10.5.3  使用KubernetesPodOperator 225

    10.5.4  诊断Kubernetes相关的问题 228

    10.5.5  与基于docker的工作流的区别 230

    10.6  本章小结 231

    第Ⅲ部分  Airflow实践

    第11章  最佳实现 235

    11.1  编写清晰的DAG 235

    11.1.1  使用风格约定 235

    11.1.2  集中管理凭证 239

    11.1.3  统一指定配置详细信息 240

    11.1.4  避免在DAG定义中计算 242

    11.1.5  使用工厂函数生成通用模式 244

    11.1.6  使用任务组对相关任务进行分组 247

    11.1.7  为重大变更创建新的DAG 248

    11.2  设计可重用的任务 249

    11.2.1  要求任务始终满足幂等性 249

    11.2.2  任务结果的确定性 249

    11.2.3  使用函数式范式设计任务 250

    11.3  高效处理数据 250

    11.3.1  限制处理的数据量 250

    11.3.2  增量载入与增量处理 252

    11.3.3  缓存中间数据 252

    11.3.4  不要将数据存储在本地文件系统 253

    11.3.5  将工作卸载到外部系统或源系统 253

    11.4  管理资源 254

    11.4.1  使用资源池管理并发 254

    11.4.2  使用SLA和告警来检测长时间运行的任务 255

    11.5  本章小结 256

    第12章  在生产环境中使用Airflow 257

    12.1  Airflow架构 258

    12.1.1  挑选适合的执行器 259

    12.1.2  为Airflow配置metastore 259

    12.1.3  深入了解调度器 261

    12.2  安装每个执行器 265

    12.2.1  设置SequentialExecutor 266

    12.2.2  设置LocalExecutor 266

    12.2.3  设置CeleryExecutor 267

    12.2.4  设置KubernetesExecutor 269

    12.3  捕获所有Airflow进程的日志 276

    12.3.1  捕获Web服务器输出 276

    12.3.2  捕获调度器输出 277

    12.3.3  捕获任务日志 278

    12.3.4  将日志发送到远程存储 278

    12.4  可视化及监控Airflow指标 279

    12.4.1  从Airflow收集指标 279

    12.4.2  配置Airflow以发送指标 280

    12.4.3  配置Prometheus以收集指标 281

    12.4.4  使用Grafana创建仪表板 283

    12.4.5  应监控的指标 285

    12.5  如何获得失败任务的通知 287

    12.5.1  DAG和operator内的告警 287

    12.5.2  定义服务级别协议(SLA) 289

    12.6  可伸缩性与性能 290

    12.6.1  控制最大运行任务数 290

    12.6.2  系统性能配置 292

    12.6.3  运行多个调度器 292

    12.7  本章小结 293

    第13章  Airflow安全性 295

    13.1  保护Airflow Web界面 296

    13.1.1  将用户添加到RBAC界面 296

    13.1.2  配置RBAC界面 299

    13.2  加密静态数据 300

    13.3  连接LDAP服务 301

    13.3.1  理解LDAP 302

    13.3.2  从LDAP服务获取用户 304

    13.4  加密与Web服务器的通信 305

    13.4.1  了解HTTPS 305

    13.4.2  为HTTPS配置证书 307

    13.5  从认证管理系统获取凭证 311

    13.6  本章小结 314

    第14章  实战:探索游览纽约市的最快方式 315

    14.1  理解数据 318

    14.1.1  Yellow Cab文件共享 318

    14.1.2  Citi Bike REST API 319

    14.1.3  确定算法 320

    14.2  提取数据 320

    14.2.1  下载Citi Bike数据 321

    14.2.2  下载Yellow Cab数据 323

    14.3  对数据应用类似的转换 325

    14.4  构建数据管道 330

    14.5  开发幂等的数据管道 331

    14.6  本章小结 333

    第Ⅳ部分  在云端

    第15章  Airflow在云端 337

    15.1  设计云端部署策略 337

    15.2  云端专用的hook和operator 339

    15.3  托管服务 340

    15.3.1  Astronomer.io 340

    15.3.2  Google Cloud Composer 340

    15.3.3  适用于Apache Airflow的

    Amazon托管工作流 341

    15.4  选择部署策略 342

    15.5  本章小结 342

    第16章  在AWS中运行Airflow 345

    16.1  在AWS中部署Airflow 345

    16.1.1  选择云服务 345

    16.1.2  设计网络 347

    16.1.3  添加DAG同步 347

    16.1.4  使用CeleryExecutor扩展 348

    16.1.5  后续步骤 349

    16.2  针对AWS的hook和operator 350

    16.3  用例:使用AWS Athena进行无服务器的电影排名 351

    16.3.1  用例概要 352

    16.3.2  设置资源 352

    16.3.3  创建DAG 355

    16.3.4  环境清理 360

    16.4  本章小结 361

    第17章  在Azure中使用Airflow 363

    17.1  在Azure中部署Airflow 363

    17.1.1  选择服务 363

    17.1.2  设计网络 364

    17.1.3  使用CeleryExecutor扩展 365

    17.1.4  后续步骤 366

    17.2  针对Azure设计的hook和operator 367

    17.3  示例:在Azure上运行无服务器的电影推荐程序 367

    17.3.1  示例概要 368

    17.3.2  设定资源 368

    17.3.3  创建DAG 372

    17.3.4  环境清理 377

    17.4  本章小结 378

    第18章  在GCP中运行Airflow 379

    18.1  在GCP中部署Airflow 379

    18.1.1  选择服务 379

    18.1.2  使用Helm在GKE上

    部署Airflow 381

    18.1.3  与Google服务集成 383

    18.1.4  设计网络 385

    18.1.5  通过CeleryExecutor扩展 386

    18.2  针对GCP的hook和operator 388

    18.3  用例:在GCP上运行无服务器的电影评级 392

    18.3.1  上传到GCS 392

    18.3.2  将数据导入BigQuery 394

    18.3.3  提取最高评分 396

    18.4  本章小结 399

    附录A  运行示例代码 401

    附录B  Airflow 1和Airflow 2中的包结构 405

    附录C  Prometheus指标映射 409

     

     
查看详情
12
相关图书 / 更多
Apache Airflow 数据编排实战
Apache Pulsar实战
(美)戴维·克杰鲁姆加德(David Kjerrumgaard)
Apache Airflow 数据编排实战
Apache APISIX实战
王院生 张晋涛 屠正松 朱欣欣 著
Apache Airflow 数据编排实战
Apache Spark 深度学习实战
[爱尔兰]古列尔莫·伊奥齐亚(Guglielmo Iozzia)
Apache Airflow 数据编排实战
Apache OpenWhisk学习手册
[美]米歇尔·西巴拉
Apache Airflow 数据编排实战
ApplicationTheoryResearchofGob-SideEntryRe
YangHongyun、LiuYanbao、LinZhi 著
Apache Airflow 数据编排实战
Apache Spark大数据分析 基于Azure Databricks云平台
[瑞典]罗伯特·伊利杰森(Robert Ilijason)
Apache Airflow 数据编排实战
AppInventor开发实战
金从军、张路 著
Apache Airflow 数据编排实战
AppInventor智能手机编程与开发
冯敬益 著
Apache Airflow 数据编排实战
App Inventor移动应用开发标准教程 第2版
瞿绍军
Apache Airflow 数据编排实战
Apley & Solomon 实用骨科学教程(第10版)
迈克尔 · 怀特豪斯 原著;刘笑 主译;[英]阿什莉·布洛姆;大卫·沃里克;叶招明
Apache Airflow 数据编排实战
App个人信息保护治理实践
中国信息通信研究院
Apache Airflow 数据编排实战
Apache Pulsar原理解析与应用实践
杨国栋 著
您可能感兴趣 / 更多
Apache Airflow 数据编排实战
巴恩斯作品:穿红外套的男子(妇科医生波齐与19世纪末的法国)
朱利安·巴恩斯 著;郭国良 译
Apache Airflow 数据编排实战
希腊绝美历史遗迹
朱利安·大卫·勒鲁瓦
Apache Airflow 数据编排实战
材料可持续发展:事实与真相
朱利安.奥尔伍德
Apache Airflow 数据编排实战
透过窗户(巴恩斯作品)
朱利安·巴恩斯 著;郭国良 译
Apache Airflow 数据编排实战
世界是如何思考的:一部哲学全球通史
朱利安·巴吉尼(Julian Baggini)
Apache Airflow 数据编排实战
没有极限的增长
朱利安·L.西蒙 著
Apache Airflow 数据编排实战
你以为的人生意义就是人生的意义吗?
朱利安·巴吉尼
Apache Airflow 数据编排实战
人工智能如何玩游戏:机器挑战人类的时代,探索学习、认知和思维的新模式
朱利安·图吉利斯(Julian Togelius)
Apache Airflow 数据编排实战
唯一的故事(巴恩斯作品)
朱利安·巴恩斯 著;郭国良 译
Apache Airflow 数据编排实战
英格兰.英格兰(名奖作品.互文)
朱利安·巴恩斯(Julian Barnes) 著;周晓阳 译
Apache Airflow 数据编排实战
终结的感觉(巴恩斯作品)
朱利安·巴恩斯 著;郭国良 译
Apache Airflow 数据编排实战
伦敦郊区(名奖作品.互文)
朱利安·巴恩斯(Julian Barnes) 著;安妮 译;轶群