数据抽取工具选型调研
数据抽取工具调研
1.数据抽取简述
数据抽取是从数据源中抽取数据的过程。实际应用中,数据源较多采用的是关系数据库。从数据库中抽取数据一般有以下几种方式。
(1)全量抽取
全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数据库中抽取出来,并转换成自己的ETL工具可以识别的格式。全量抽取比较简单。
(2)增量抽取
增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据。在ETL使用过程中。增量抽取较全量抽取应用更广。如何捕获变化的数据是增量抽取的关键。对捕获方法一般有两点要求:准确性,能够将业务系统中的变化数据按一定的频率准确地捕获到;性能,不能对业务系统造成太大的压力,影响现有业务。目前增量数据抽取中常用的捕获变化数据的方法有:
- 触发器
- 时间戳
- 全表对比。
数据抽取解决方案
下面将会对比几种常见的数据抽取工具。每一种都有根据官网Demo进行验证。
1.sqoop
sqoop是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。
input:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统
output:从 Hadoop 的文件系统中导出数据到关系数据库 mysql
优点:
- sqoop可以高效的可控的利用资源,比如它可以通过调整任务数,来控制任务的并发度,另外还可以配置数据库的访问时间
- sqoop能自动的完成数据类型的映射与转换
- sqoop学习成本低,上手就可以用
- sqoop2支持多种交互方式 命令行,webUI,restAPI。
建议:可以通过sqoop完成日常的Mysql到Hive的基本组建。
2.waterdrop
waterdrop是github上开源的数据抽取工具。通过读取配置文件,转换成Spark任务。
input:ES,FileSystem,JDBC,Mysql MongoDB,HIVE
output:Mysql,Hive,ES,HDFS,Clickhouse
优点:
- waterdrop比较灵活,支持插件开发,同时为spark任务,比sqoop同步数据速度快。
- 可以根据业务场景自定义开发插件,更加贴近业务场景
- 支持多数据源配置。可以进行join操作
建议:可以通过waterdrop作为mysql-hive的备用方案。
开发自定义组件,如果mysql表过大,可以通过批量读取的方式进行同步。使用成本比sqoop稍大。可以作为2redis,2clickhouse的工具使用,插件可以根据业务进行自定义开发。
gobblin
gobblin是apache下开源的数据抽取工具 其功能则将流式数据转换成批次数据,并存入HDFS上并且还可以和Oozie,Akazban等调度系统和kafka结合实现数据的ETL处理。
input: KAFKA,MYSQL
output:HDFS,HIVE
优点:
- 组件都可以自定义编写,使得Gobblin可以应对几乎任何形式的数据源,并将所有数据抽取任务统一管理。
- Gobblin Job可以以MapReduce的形式直接运行在Yarn上,在HDFS读写上具有更高效率。
建议:可以通过gobblin作为kafka-hive kafka-hdfs的工具使用。但是配置安装比较复杂,需要学习成本,深入研究
DataX
阿里的数据抽取工具。DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入
input: MySQL,HIVE,OSS,HDFS
output:MySQL,HIVE,OSS,HDFS
优点:
- 独立的架构,不依赖于MR或者SPARK任务,有清晰的资源使用情况以及数据流量详情
- 可以自定义开发组件
建议:编译过程中有比较多的BUG需要修复,社区比较少,代码迭代不频繁。暂时不建议作为线上工具使用。
flume
Flume是一个分布式、可靠、和高可用的海量日志聚合的系统。
input:KAFKA,FS
output:HDFS,HIVE
针对A2B的解决方案
1.结合调度系统
可以将上述工具开发为小的插件,嵌入至调度系统。
最终选型waterdrop作为离线同步工具,flink作为实时同步工具
2.开发独立的数据抽取系统
包含实时,离线数据的抽取,kafka数据的落地等等。
- 可以先实行第一步,等各个工具维护完善工作就绪后,发开系统迁移。
- 目前的重点应该是深入到各个工具中,了解组织架构。从离线工具的开发入手 逐步深入。
数据抽取工具选型调研相关推荐
- bboss hadoop hdfs大数据抽取工具
bboss大数据抽取工具功能特点如下: 实现db到hadoop hdfs数据导入功能,提供高效的分布式并行处理能力,可以采用数据库分区.按字段分区.分页方式并行批处理抽取db数据到hdfs文件系统中: ...
- 数据抽取工具比对:Kettle、Datax、Sqoop、StreamSets
数据抽取工具比对:Kettle.Datax.Sqoop.StreamSets 工具比对: Kettle 特性:纯Java编写 优点:可在Windows.linux.Unix上执行:数据抽取高效稳定:子 ...
- GBase 8a 数据抽取工具orato8a用法介绍
1. 说明 orato8a是用于从Oracle抽取数据,可以导入GBase 8a数据库的数据抽取工具 2. 使用语法 ./orato8a parameter_1 parameter_2 -- para ...
- gbase8a的orato8a和db2to8a 数据抽取工具简介
orato8a简介 orato8a是一个可以快速.高效地从oracle数据库系统中抽取数据,并将数据保存到指定文件或直接迁移到GBase 8a中的专用工具.并且orato8a还提供查询语句导出和全表导 ...
- etl数据抽取工具_数据同步工具ETL、ELT傻傻分不清楚?3分钟看懂两者区别
什么是数据同步工具(ETL.ELT) 数据同步工具ETL或者ELT的作用是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决 ...
- 数据可视化工具选型指南
引自:IT168.com Tableau Tableau Desktop是Tableau公司开发的桌面系统中最简单的商业智能工具软件,Tableau没有强迫用户编写自定义代码,新的控制台也可完全自定义 ...
- 开源Linux、Windows服务器数据备份工具选型分析(一) UrBackup
目的:实现Windows.Linux服务器的数据自动备份 要求:有可视化界面,可以web上操作:可以全量备份,也可以增量备份 备份工具总结见(3)的末尾 UrBackup 1. 简介 UrBackup ...
- GBase 8a 数据抽取工具orato8a——全表导出
1. 参数说明 table_name:指定表名,该参数不能与query参数同时使用.参数简称t. 2. 用法示例 执行orato8a,将table_name参数设置要导出的表名,parallel参数可 ...
- 数据中台怎么选型?终于有人讲明白了
导读:数据中台选型主要包括数据仓库选型.调度平台选型.BI工具选型3个方面,好的工具可以大幅提升开发效率,降低运维工作量. 点我跳转文末 领书,新出版的 <高效使用Greenplum>! ...
- 小程聊微服务-数据抽取那点事(一)
一.前言 我们在<微服务是在双刃剑 http://blog.csdn.net/u013970991/article/details/73195907 >中提到了当我们将应用服务化以后,很多 ...
最新文章
- ISME:胡锋/朱永官等揭示土壤噬菌体-宿主菌协同应对有机氯农药胁迫机制
- 使用python对比两个目录下的文件名差异
- Github标星5.4k+:常见NLP模型的代码实现(基于TensorFlow和PyTorch)
- 基于Windows Socket 的网络通信中的心跳机制原理
- 安装独立版本的 Adobe Community Help
- 例题:打印正三角形。两层for循环,难点明白行与列的关系
- 斐波那契数列【java实现】
- Linux下安装Scala
- 几个特别棒的免费可商用字体
- [转载]Coursera课程批量下载(保持资源原目录结构)
- Struts2面试题
- pgAdmin连接postgresql
- 计算机开机显示器不亮,电脑开机显示器不亮,小编教你电脑显示器不亮怎么解决...
- Frp内网穿透保姆级教程 windows内网穿透
- 04_从啤酒与尿布,聊关联规则推荐
- 麦克风阵列声源定位 SRP-PHAT
- 硬盘格式化数据恢复(图文教程)
- HTML表单验证(含用户名,密码,邮箱,手机号,验证码-验证)
- HTML+Css 简易淘宝界面
- 专为Oracle数据恢复而生 - PRM