datax 导入数据中文乱码_浅谈数据同步之道
数据同步,顾名思义就是不同系统的数据进行同步处理。而业务系统所涉及的数据库同步是重中之重,虽然大部分数据库都提供了导入导出的工具,但是数据存储到各个地方,Hive、Hbase、MySQL、Oracle 等各种各样的不同数据库,然而要把数据同步到指定不同类型的存储库是非常麻烦。那该如何统一实现数据源同步?下面介绍几种常用的同步的方案和工具。
1、Sqoop
Apache Sqoop 是一种工具,用于在 Apache Hadoop 和外部数据存储(如关系数据库,企业数据仓库)之间高效传输批量数据。
Sqoop 用于将数据从外部数据存储导入 Hadoop Hdfs 或 Hive 和 HBase 等相关 Hadoop 生态系统。同样,Sqoop 还可用于从 Hadoop 或其生态系统中提取数据,并将其导出到外部数据存储区,如关系数据库、数据仓库。Sqoop 适用于 Oracle,MySQL,Postgres 等关系数据库。
Sqoop 数据导入命令示例如下。
sqoop import
-connect jdbc:mysql://localhost:3306/sqoop
-username root
-password 123456
-table emp_etl
-m 3
-hive-import
-create-hive-table
-hive-table emp_mysql
通过命令行界面执行 Sqoop 命令。也可以使用 Java API 访问 Sqoop。Sqoop 解析命令行生成 MapRedure 并只启动 Hadoop Map 作业以导入或导出数据,因为只有在需要聚合时才需要 Reduce 阶段。Sqoop 只是导入和导出数据, 它没有做任何聚合。
映射作业根据用户定义的数量(-m 3)启动多个映射器。对于 Sqoop 导入,将为每个映射器任务分配一部分要导入的数据。Sqoop 在映射器之间平均分配输入数据以获得高性能。然后,每个映射器使用 JDBC 创建与数据库的连接,并获取由 Sqoop 分配的数据部分,将其写入 HDFS 或 Hive 或 HBase。
2、Datax
DataX 是阿里开发的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源之间稳定高效的数据同步功能。
DataX 本身作为离线数据同步框架,采用 Framework + plugin 架构构建。将数据源读取和写入抽象成为 Reader/Writer 插件,纳入到整个同步框架中。
Reader:为数据采集模块,负责采集数据源的数据,将数据发送给 Framework。
Writer: 为数据写入模块,负责不断向 Framework 取数据,并将数据写入到目的端。
Framework:用于连 接reader 和writer ,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
Datax 使用比较简单,只下载 Datax 解压,配置需要运行环境,通过命令运行写好的 json 文件既可以执行任务,另外可以通过二次开发插件支持新的数据源类型,易拓展。
{"job": {"content": [{"reader": {"name": "xxxreader",...},"writer": {"name": "xxxwriter",...}}],...}
}
3、Canal
无论是 Sqoop 还是 Datax 都是属于离线同步, 不支持实时的数据抽取。这里说个 MySQL 数据库的同步组件
Canal,非常便捷地将 MySQL 中的数据抽取到任意目标存储中。
原理就是 Canal 伪装成 MySQL 从节点,读取 MySQL 的 binlog(一个二进制格式的文件,它记录了数据库的所有改变,并以二进制的形式保存在磁盘中。),生成消息,客户端订阅这些数据变更消息,处理并存储。只要开发一个 Canal 客户端就可以解析出 MySQL 的操作,再将这些数据发送到大数据流计算处理引擎,即可以实现对 MySQL 实时处理。
4、kettle
Kettle 是一款开源的 ETL 工具,实现对各种数据源读取,操作和写入数据,Kettle 无需安装解压即可使用,可通过客户端进行配置和执行作业。Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。
5、Informatica PowerCenter
Informatica PowerCenter 是世界级的 企业数据集成平台,从异构的已有系统和数据源中抽取数据,用来构建和管理企业的数据仓库,从而帮助企业做出快速、正确的决策。此产品为满足企业级要求而设计,可以提供企业部门的数据和非关系型数据之间的集成,如XML,网站日志,关系型数据,主机和遗留系统等数据源。
小结
那我们该如何选择合适同步的工具。大数据平台是与 Hadoop 集群相挂钩,在离线同步一般选择 Sqoop,Sqoop 从一开始就是为大数据平台的数据采集业务服务,而且作为 Apache 顶级的项目,Sqoop 比起 Datax 更加可靠,如果涉及阿里自身的数据库系列选择 Datax 是一个不错的选择。在实时同步数据,一般采用 Kafka 作为中间组件,跟 Canal 结合实现 MySQL 到 Hive 增量数据同步。kettle 和 Informatica PowerCenter 一般在建设数仓中使用,通过客户端配置 ETL 任务定制。
datax 导入数据中文乱码_浅谈数据同步之道相关推荐
- java socket 异步回调函数_浅谈socket同步和异步、阻塞和非阻塞、I/O模型
原标题:浅谈socket同步和异步.阻塞和非阻塞.I/O模型 在进行网络编程时,常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式 同步/异步主要针 ...
- 导入数据中文乱码_基于Navicat和Kettle的数据迁移完全解读(多图)
需求描述 对于数据分析人员来说,工作的基础是数据,没有数据分析就无从谈起,即巧妇难为无米之炊. #数据库# #数据迁移# #Oracle# 然而,数据分析往往在实验环境或者准生产环境中开展,而数据分布 ...
- 处理中文乱码_浅入深出:一次提问引发的深思,从此再也不怕“乱码”问题
这是恋习Python之浅入深出系列第3篇原创首发文章 作者|丁彦军 来源|恋习Python(ID:sldata2017) 转载请联系授权(微信ID:2394608316) 近日,有位粉丝向我请教,在爬 ...
- ajax后台返回数据中文乱码_解决Jmeter返回值显示中文乱码 的三种方法及设置随机动态参数(非原创侵删)...
一.Jmeter返回值显示中文乱码解决方法 第一种解决方法: 1. 点击线程组--添加--后置处理器--BeanShell后置处理程序 2.点击BeanShell后置处理程序,编写:prev.setD ...
- python数据类型转换原因_浅谈Python数据类型之间的转换
Python数据类型之间的转换 函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 compl ...
- 怎么向easyui grid里面插入空数据_浅谈数据结算(三)
1. 第二章:栈和队列 通过下面的思维导图来依次分享「栈和队列」里面重要知识点. 2. 第一节:栈 1. 栈的定义: 栈(stack):只允许在一端进行插入或删除操作的线性表. 栈顶(Top):线性表 ...
- 从数据中台实践,浅谈数据质量管理
时代背景 近20年来,我国的科学技术发展日新月异,各种新兴技术层出不穷,深刻的改变着各行各业,也改变着我们的生活.大数据.云计算.人工智能的出现更是将技术革命推向了高潮.在这种背景下,继农业经济.工业 ...
- 数据治理系列:浅谈数据质量管理
题外话:看过之前的文章的小伙伴不难发现,文章开篇几乎都是定义.概念,这已成了笔者写文章的一个习惯.本着对专业知识和技术的敬畏以及对文章主题的聚焦,笔者认为文章的开篇是非常有必要先把概念或定义交待清楚的 ...
- datax 导入数据中文乱码_四种方法处理MYSQL导入中文数据时的乱码问题 | 很文博客...
我是用的最后一种方法,前面三种解决MYSQL导入数据乱码的方法没试过,很文博客推荐大家直接使用第四种方法处理MYSQL导入中文数据时的乱码问题. 首先在新建数据库时一定要注意生成原数据库相同的编码形式 ...
最新文章
- 重磅直播|GDR-Net:基于几何信息指导的单目6D物体姿态估计算法(CVPR2021作者开讲啦)...
- 【 Linux 】创建、查看、删除文件
- 【大版本】Adobe PDF控件ABCpdf V11发布 | 附下载
- 新品【国内动态】服务器列表
- 现在计算机学什么好找工作吗,计算机专业都学什么 毕业好找工作吗
- 04-CA/TA编程:hash demo
- 黑马程序员-----内部类、匿名内部类应用
- 智能提示和那些值得崇拜的人
- linux跟踪内存块,在Linux程序中跟踪活动使用的内存
- hql 查询条件 set集合_Redis从入门到深入-Sorted_set的value
- openwrtx 安装无线_面向工业物联网的远距离无线输电技术
- 安装 ActiveState Perl
- 20172020图片对比_50张迷人的对比摄影照片作品
- 第一代计算机的拼音,计算机系列拼音
- 表间的关系一对多/一对一/多对多关系是怎样建立的?
- 副本全攻略之哀号洞穴(超详细)
- Python AST node转为string(source code)
- 【Qt】一文总结Qt5.15的在线安装
- C#区域性语言(CultureInfo)与资源本地化(WINFORM,多线程,原理可适用于网络开发)
- HTML中的删除线:del和s的区别
热门文章
- how is service url defined in configuration.js consumed
- ERP customizing extraction - how extraction function module is determined
- 推荐一个免费的在线图片工具网站
- 使用nodejs对Marketing Cloud的contact主数据进行修改操作
- One order time zone
- Java Word break analysis
- 查看SAP CRM和C4C的UI technical信息
- 观察者模式在SAP CRM One Order回调函数中的应用
- Jerry的通过CDS view + Smart Template 开发Fiori应用的blog合集
- rs485如何使用_12个经典问答:带你全面了解RS485接口知识