Apache NiFi之MySQL数据同步

简介: 一.简述Apache NiFi是一个易用、强大、可靠的数据处理与分发系统,Apache NiFi的设计目标是自动化管理系统间的数据流Apache NiFi是美国国家安全局(NSA)开发和使用了8年的一个可视化、可定制的数据集产品。

一.简述

Apache NiFi是一个易用、强大、可靠的数据处理与分发系统,Apache NiFi的设计目标是自动化管理系统间的数据流
Apache NiFi是美国国家安全局(NSA)开发和使用了8年的一个可视化、可定制的数据集产品。2014年NSA将其贡献给Apache开源社区,2015年7月成功成为Apache的顶级项目
Apache NiFi是一个基于web-ui用户界面,高度配置的、安全的、基于工作流设计理念、具有很强交互性、易用的、为不同系统间或系统内提供数据流管理与处理的系统

单机模式

集群模式

二.功能

Ⅰ).Processor

处理器接口是Apache NiFi公开对FlowFile属性及内容的访问机制,处理器是构成NiFi数据流的基本构建块;可完成功能如下:

  1. 创建FlowFiles
  2. 获取FlowFile内容
  3. 编辑FlowFile属性
  4. 更新FlowFile属性
  5. 摄取数据
  6. 输出数据
  7. 路由数据
  8. 提取数据
  9. 修改数据

Ⅱ).ReportingTask

Reporting Task接口是NiFi公开的一种机制,允许将指标、监控信息和内部NiFi状态发布到外部端点,例如日志文件、电子邮件和远程Web服务

Ⅲ).ControllerService

ControllerService在单个JVM中跨处理器,其为ControllerService和ReportingTask提供共享状态和功能。通过在ControllerService中执行工作,数据可加载一次,并通过此服务公开给所有处理器,而不用在许多不同的处理器加载数据集

Ⅳ).FlowFilePrioritizer

FlowFilePrioritizer接口提供了一种机制,通过该机制可以对队列中的FlowFile进行优先级排序,以便按照对特定用例最有效的顺序处理FlowFiles

Ⅴ).AuthorityProvider

AuthorityProvider负责确定应授予给定用户的特权和角色

三.特性

Ⅰ).可视化

数据流的处理有时非常复杂,NiFi提供了可视化的数据流开发功能,使用户直观、有效的进行业务开发

Ⅱ).可靠交付

遵循NiFi的核心理念:通过利用定制化的持续预写日志和数据仓库技术实现,即使在高压力、高规模的环境中,保证数据的交付。

Ⅲ).数据回压

NiFi提供所有队列数据的缓存,并在队列到指定限制或超时时,可提供数据回压

Ⅳ).高扩展性

NiFi最初设计为可扩展的数据流处理程序,可预测和可重复模式执行。NiFi通过提供自定义类型装载器模型,确保了每个扩展组件间的约束关系被限制在有限的范围

Ⅴ).优先级队列

NiFi允许设置一个或多个优先级方案,用于对数据如何在队列中被检索。默认:先进先出策略;可设置后进先出、最大先出

Ⅵ).数据跟踪

NiFi自动记录、索引对于数据流的每步个操作日志,并将可用的跟踪数据作为对象在系统中传输;这些信息可用于系统故障诊断、优化等其它场景

Ⅶ).历史数据恢复

NiFi的数据存储库被设计成历史滚动缓冲区的角色,数据仅在超时或空间不足时才数据存储库中删除

Ⅷ).流程模板

对数据流高度面向模式,在多种方式解决同一个问题时,可以创建共享的通用处理模板

Ⅸ).安全性

系统间:NiFi可通过双向SSL进行数据加密,并允许在发送与接收端共享密钥,以及其它机制的数据加密与解密
用户与系统间:NiFi允许双向SSL鉴定,并提供可插入的授权模式,来控制用户的登陆权限

四.案例

Ⅰ).案例一:获取MySQL数据到本地文件

1).配置ExecuteSQLRecord

a).选择ExecuteSQLRecord

在Processor中搜索ExecuteSQLRecord

b).配置ExecuteSQLRecord

1.创建Database Connection Pool
2.创建JsonRecordSetWriter
3.配置SQL select query

select Host,User,authentication_string from mysql.user;

c).创建DBCPConnectionPool

在Database Connection Pool中选择DBCPConnectionPool

d).配置DBCPConnectionPool

1.Database Connection URL: jdbc:mysql://hostname:3306/mysql
2.Database Driver Class Name: com.mysql.jdbc.Driver
3.Database User: username
4.Database Password: password

e).激活服务

f).选择JsonRecordSetWriter

在Processor中搜索JsonRecordSetWriter

g).配置JsonRecordSetWriter

h).选择AvroSchemaRegistry

在Processor中搜索AvroSchemaRegistry

i).配置AvroSchemaRegistry

j).激活JsonRecordSetWriter & AvroSchemaRegistry

2).配置PutFile

a).选择PutFile

在Processor中搜索PutFile

b).配置PutFile

1.配置Directory: 文件保存路径
2.可配置Create Missing Directories: 默认true

3).启动服务

可以点击选择单个Processor启动,也可以在空白处点击流程启动

4).验证结果

a).MySQL源数据查询

b).文件内容查询

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
监控 关系型数据库 MySQL
深入了解MySQL主从复制:构建高效稳定的数据同步架构
深入了解MySQL主从复制:构建高效稳定的数据同步架构
508 1
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
2400 4
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
637 17
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
880 6
|
消息中间件 canal 分布式计算
类似apache nifi的产品还有哪些?
【10月更文挑战第23天】类似apache nifi的产品还有哪些?
848 3
|
Java API 持续交付
apache nifi 如何进行二次开发?
【10月更文挑战第23天】apache nifi 如何进行二次开发?
993 2
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
323 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
消息中间件 NoSQL 关系型数据库
一文彻底搞定Redis与MySQL的数据同步
【10月更文挑战第21天】本文介绍了 Redis 与 MySQL 数据同步的原因及实现方式。同步的主要目的是为了优化性能和保持数据一致性。实现方式包括基于数据库触发器、应用层双写和使用消息队列。每种方式都有其优缺点,需根据具体场景选择合适的方法。此外,文章还强调了数据同步时需要注意的数据一致性、性能优化和异常处理等问题。
3262 0
|
10月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
588 158
|
10月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。

推荐镜像

更多