数据治理落地之Apache NiFi

1. 数据治理落地之 Apache NiFi 侯乾
2. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
3. 数据治理
4. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
5. Apache NiFi 与数据治理对齐 • 数据血缘 • 可视化 • 业务应用 • 业务效率 • ...
6. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
7. Apache NiFi 简介、特性 Old name : Niagara Files Created by : Joe Witt in NSA Since: 2006 Incubating : 2014 Available : 2015 Main contributors: Hortonworks Current Stable Version : 1.5.0 Delivery Guarantees : at least once Out of Order Processing : no Windowing : no Back-pressure : yes Latency : configurable Resource Management : native API : REST (GUI)
8. Apache NiFi 简介、特性 基于 web 的 UI 设计,控制,反馈和监控之间的无缝体验 高可配置 数据丢失容错 vs 保证交付 低延迟 vs 高吞吐量 动态优先级 流可以在运行时修改 背压 (Back presure) 数据血统 从始至终的追踪数据流( dataflow ) 为扩展而设计 构建自己的处理器和跟多 支持快速开发和有效测试 安全 支持 SSL,SSH,HTTPS 加密内容,等等…… 多租户授权和内部授权 / 策略管理
9. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
10. NiFi 核心功能
11. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
12. 生 态 系 统
13. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
14. 单节点架构
15. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
16. 集群架构 Zero-Master Clustering
17. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
18. NiFi 核心概念 名称 Flow File Flow File Processor Connection Flow Controller Process Group 解释 一个 FlowFile 代表每个被系统处理的数据对象,一个 FlowFile 由两部分组成:属性和内容。内容是数据本身 ,属性是关于内容的元数据,即与数据相关的 keyvalue 的键值对,用于描述数据。 Processor 是 NiFi 的组件,可以用来创建、发送、接受 、转换、路由、割裂、合并、处理 FlowFiles 。在用户建 立数据流时, Processor 是最重要的组成部分。 提供 Processors 之间的连接,用来定义 Processors 之 间的执行关系,并允许不同 Processors 之间以不同的优 先级、速度进行交互。 其负责维护 Processors 之间的关联信息,并且管理所有 进程对于线程的使用、分配。 一个特定集合的 Processors 与它们之间的连接关系形成 一个 Process Group ,其定义了从接受端口接受数据到 通过发送端口发送数据之间,整个数据流的处理过程。并 可以通过简单组合其它的部件来创建新的部件。
19. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
20. Processor
21. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
22. 示例 计算指标涅磐进件量 -GPS 定位省(按天) JDBC Cron by day
23. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
24. 思考 • 这么做有什么弊端? • 任务可视化 • 复用性 • 计算市的 • 计算县的 • 数据血缘 • 还有更好的做法吗? • 拆分算子,使用 NiFi 实现
25. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
26. NiFi- 涅磐进件量指标总览
27. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
28. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
29. 1. 首先我们在找到 Process Group 拖拽到画布空白处 4. 右键点击空白处,上传模 板 2. 为处理器组起个名字吧 3. 画布上出现了一个有 复杂参数的方块,我们先 不关注这些参数,右键点 击它,选中 Enter Group 进入
31. 1. 右键,点击配置 2. 选中『属性』选项卡,点击向右的箭头,这里我们配置一个数据 库连接池 3. 选择 Controller Service 选项卡,点击加号,在出现的 Add Controller Service 对话框内搜索 DBCPConnectionPool( 支持模 糊查询 ) ,找到后,点击 ADD ,添加完成。
32. 5. 点击『 4 』中红框 内的小齿轮,我们解决 黄色警告。 选中属性选项卡,出现 的是 MySQL JDBC 的 经典配置项,在此不再 赘述。 4. 此时可以看到我们新创 建的一个类型为 DBCPConnectionPool 的 Controller Service 。 一般的,我们需要注意黄色 叹号,他表明该配置项存在 一些问题,解决它您才可以 正常使用。 6. 在『 Settings 』选项卡中可以自定 义名称,此处我们写入业务 - 汇总库 - 涅磐。
33. 7. 点击闪电按钮,启动这些控制器吧 ~ 8. 正常启动后, Status 状态变为 Enabled
34. 启动、查看结果
35. 核心代码 - 清单 1 根据省分组: 1. 取出 Flow File 2. 解析 Flow Content 为 Object 列表 3. 使用高阶函数 Group by 对 province 分组 4. 写回 Flow Flie y Groov
36. 核心代码 - 清单 2
37. 应对需求变化
38. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
39. 排查错误
40. 目录 数据治理 Apache NiFi 数据治理需求对齐 简介、特性 核心功能 生态系统 单节点架构 集群架构 核心概念 处理器 示例 思考 示例概览 示例概览(变更需求) 示例流程解析 补充 排查错误 Flow based programming
41. Processor 多语言支持
42. Flow Based Programming http://www.jpaulmorrison.com/fbp/ https://en.wikipedia.org/wiki/Flow-based_programming
43. Q&A