数据同步

数据同步

Sqoop

Sqoop是Hadoop生态系统”中的其中一员——Apache Sqoop。

Apache Sqoop(TM) is a tool designed for efficiently transferringbulk data between ApacheHadoopandstructured datastoressuch as relational databases.

使用Sqoop进行数据的导入、导出,其本质上是运行Mapreduce程序,充分利用了MR的并行化和容错性。

从图1可以看出,通过客户端CLI(命令行界面)方式或Java API方式调用Sqoop工具,Sqoop可以将指令转换为对应的MapReduce作业(通常只涉及到Map任务,每个Map任务从数据库中读取一片数据,这样多个Map任务实现并发的拷贝,可以快速的将整个数据拷贝到HDFS上),然后将关系型数据库和Hadoop中的数据进行相互转换,从而完成数据的迁移。

可以说,Sqoop是关系型数据库与Hadoop之间的数据桥梁,这个桥梁的重要组件是Sqoop连接器,它用于实现与各种关系型数据库的连接,从而实现数据的导入和导出操作。Sqoop连接器能够支持大多数常用的关系型数据库,例如MySQL、Oracle、DB2和SQL Server等,同时它还有一个通用的JDBC连接器,用于连接支持JDBC协议的数据库。

1.导入原理

在导入数据之前,Sqoop使用JDBC检查导入的数据表,检索出表中的所有列以及列的SQL数据类型,并将这些SQL类型映射为Java数据类型,在转换后的MapReduce应用中使用这些对应的Java类型来保存字段的值,Sqoop的代码生成器使用这些信息来创建对应表的类,用于保存从表中抽取的记录。

2.导出原理

在导出数据之前,Sqoop会根据数据库连接字符串来选择一个导出方法,对于大部分系统来说,Sqoop会选择JDBC。Sqoop会根据目标表的定义生成一个Java类,这个生成的类能够从文本中解析出记录数据,并能够向表中插入类型合适的值,然后启动一个MapReduce作业,从HDFS中读取源数据文件,使用生成的类解析出记录,并且执行选定的导出方法。

DataX

https://zhuanlan.zhihu.com/p/81817787

Kettle

Kettle_百度百科

DBSync

一个国产工具

Apache NIFI

  • 介绍了一个新框架, Apache NiFi, 提供 Web UI 和流水线,值得调研
  • 一个易用、强大、可靠的数据处理与分发系统
KAMI
KAMI
数据挖掘研究员,专注分享数据领域的技术和业务,以及逻辑、思维和方法论

发表回复

文章结构
相关文章