「埃尔法哥哥」DB与ES混合应用之数据离线同步( 二 )
本文插图
从Mongodb切换到Elastic , 技术栈更换
技术产品
离线同步相比实时同步 , 技术复杂度降低很多 , 场景苛刻需求也要小很多 , 因此技术方案的选择度更多 , 有很多非常优秀的专用工具产品 , 只需要稍微配置即可启用 , 下面我们介绍几个当下很流行的产品(个人喜好问题) , 简要分析它们的优秀特性以及架构原理 。
Logstash
Logstash是Elastic官方产品 , 掌握Elastic-stack必备之一
基于Jvm平台JRuby语言开发 , 开源免费
产品架构设计简洁优秀 ,模块设计层次分明 ,input -> filter -> output
支持pipeline模型 , 且多个pipeline之间可以相互依赖
产品功能丰富 , 支持的数据源众多 , 也支持自定义编辑 , 其中包括Ruby脚本
支持泛JDBC协议 , 采用SQL表达式 , 从DB抽取数据到ES , 支持CRON定时 , 可做实时同步
与Elastic-stack可集成一体 , 在Kibana可以查看监控数据
单实例运行模式 , 多实例之间无集群通信 , 不支持集群 , 易掌握部署
非平台型工具 , 轻量级
Logstash 在开发圈中流行度不大 , 但在运维圈流行度很高 , 主要得益于ELK组合的概念普及 , 其实在数据同步方面 , 是最简单的最实用的产品工具之一 。
本文插图
logstash高级架构图
DataX
DataX是阿里出品的数据同步工具 , 定位多种数据库之间离线数据同步
基于Java开发 , 插件机制
产品架构设计简单 , 两大概念模块 , reader->writer
支持DB到Elastic数据同步 , 采用SQL表达式 , 仅限制离线同步
单实例运行模型 , 多实例之间无集群通信 , 无集群模式支持 , 易掌握使用
非平台型工具 , 轻量级
DataX工具称不上优秀 , 得益于阿里巴巴的名气 , 使用简洁与性能吞吐好 , 获得开发圈很大的支持 , 在很多一次性离线数据同步项目中 , 应用很广 。
本文插图
DataX内部架构设计
NiFi
NiFi是Apache的顶级产品项目之一 , 由美国军方早期开发捐献开源 , 定位数据同步领域 。
基于Java语言开发 , 插件机制 , 支持自定义开发
产品架构设计优秀 , Processor 核心模块概念 ,
功能强大 , 支持复杂的脚本功能 , 包括java , javascript , python , ruby等
支持DB到Elastic数据同步 , 可采用SQL表达式方式 , 也可以采用CDC机制
即可实时同步 , 也可离线同步 , 且可支持多种Processor组合
友好的操作界面 , 可视化配置
平台型产品 , 支持集群部署
入门简单 , 精通门槛高
NiFi虽然历史悠久 , 但在国内知名度却不高 , 不如Hadoop圈的Sqoop等 , 不过CDH已经在最新版中集成 。 个人非常喜欢这款产品 , 因为其平台化的系统架构 , 前面介绍的DataX与Logstash都属于雕虫小技的工具 , 已知国内NiFi最大应用规模是OPPO的数据i平台 , 号称日处理数据超过200TB , 详细见文章分享《OPPO 数据中台之基石:基于 Flink SQL 构建实数据仓库》
本文插图
NiFi平台集群示意图
Flink
Flink是当前大数据圈最有人气的流式处理产品 , 在实时计算领域应用最广 。
基于Java语言编写 , 平台型产品
分布式架构设计 , 机制功能丰富 , 支持检查点机制 , 程序容灾、状态持久等
推荐阅读
- 「」儿童节就送阿尔法蛋学习手表,安全贴心又能学习
- -悟空哥哥-618年中大促力来袭,iQOO Neo3应该是你不容错过的5G手机
- 埃尔法哥哥面对用户需求与AI技术之间的不平衡,AI产品经理该如何做?
- 埃尔法哥哥谁说机器学习难?它在这朵云上就没有门槛
- 埃尔法哥哥Python基础语法之“数据应用”
- 埃尔法哥哥Bionumerics软件的多位点VNTR分析
- 埃尔法哥哥一个例子就能读懂大数据,原来数据分析能在这些行业里使用
- 埃尔法哥哥C++程序员的职业生涯规划
- 埃尔法哥哥MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020
- 埃尔法哥哥数据规范之代码表