`
yangshen998
  • 浏览: 1288865 次
文章分类
社区版块
存档分类
最新评论

淘宝的数据解决方案:datax - DataX产品说明

 
阅读更多

DataX是什么?


DataX是一个在异构的数据库/文件系统之间高速交换数据的工具,实现了在任意的数据处理系统(RDBMS/Hdfs/Local filesystem)之间的数据交换,由淘宝数据平台部门完成。 

 

DataX用来解决什么?


目前成熟的数据导入导出工具比较多,但是一般都只能用于数据导入或者导出,并且只能支持一个或者几个特定类型的数据库。这样带来的一个问题是,如果我们拥有很多不同类型的数据库/文件系统(Mysql/Oracle/Rac/Hive/Other…),并且经常需要在它们之间导入导出数据,那么我们可能需要开发/维护/学习使用一批这样的工具(jdbcdump/dbloader/multithread/getmerge+sqlloader/mysqldumper…)。而且以后每增加一种库类型,我们需要的工具数目将线性增长。(当我们需要将mysql的数据导入oracle的时候,有没有过想从jdbcdump和dbloader上各掰下来一半拼在一起到冲动?) 这些工具有些使用文件中转数据,有些使用管道,不同程度的为数据中转带来额外开销,效率差别很非常大。很多工具也无法满足ETL任务中常见的需求,比如日期格式转化,特性字符的转化,编码转换。另外,有些时候,我们希望在一个很短的时间窗口内,将一份数据从一个数据库同时导出到多个不同类型的数据库。 DataX正是为了解决这些问题而生。 


我们只需要针对新增的数据源开发的一套Reader/Writer插件,即可实现任意数据的互导

DataX特点?

 

  • 在异构的数据库/文件系统之间高速交换数据
  • 采用Framework + plugin架构构建,Framework处理了缓冲,流控,并发,上下文加载等高速数据交换的大部分技术问题,提供了简单的接口与插件交互,插件仅需实现对数据处理系统的访问
  • 运行模式:stand-alone
  • 数据传输过程在单进程内完成,全内存操作,不读写磁盘,也没有IPC
  • 开放式的框架,开发者可以在极短的时间开发一个新插件以快速支持新的数据库/文件系统。(具体参见《DataX插件开发指南》)

 

DataX结构模式(框架+插件)



 

  • Job: 一道数据同步作业
  • Splitter: 作业切分模块,将一个大任务与分解成多个可以并发的小任务.
  • Sub-job: 数据同步作业切分后的小任务
  • Reader(Loader): 数据读入模块,负责运行切分后的小任务,将数据从源头装载入DataX
  • Storage: Reader和Writer通过Storage交换数据
  • Writer(Dumper): 数据写出模块,负责将数据从DataX导入至目的数据地


DataX框架内部通过双缓冲队列、线程池封装等技术,集中处理了高速数据交换遇到的问题,提供简单的接口与插件交互,插件分为Reader和Writer两类,基于框架提供的插件接口,可以十分便捷的开发出需要的插件。比如想要从oracle导出数据到mysql,那么需要做的就是开发出OracleReader和MysqlWriter插件,装配到框架上即可。并且这样的插件一般情况下在其他数据交换场合是可以通用的。更大的惊喜是我们已经开发了如下插件:


Reader插件

  • hdfsreader : 支持从hdfs文件系统获取数据。
  • mysqlreader: 支持从mysql数据库获取数据。
  • sqlserverreader: 支持从sqlserver数据库获取数据。
  • oraclereader : 支持从oracle数据库获取数据。
  • streamreader: 支持从stream流获取数据(常用于测试)
  • httpreader : 支持从http URL获取数据。


Writer插件

  • hdfswriter:支持向hdbf写入数据。
  • mysqlwriter:支持向mysql写入数据。
  • oraclewriter:支持向oracle写入数据。
  • streamwriter:支持向stream流写入数据。(常用于测试)


您可以按需选择使用或者独立开发您自己的插件 (具体参见《DataX插件开发指南》)


DataX在淘宝的运用


DataX上线后,我们对淘宝数据平台原有作业进行了逐步批量迭代替换。数据同步工具归一化为DataX后,大大提高了用户拖表数据速度和内存利用率, 同时针对归一化后的DataX工具,我们能够做到更好应对mysql切库、数据同步监控等以前零散工具下很难完成的运维任务。
下面是部分工具替换后的比对情况: 



目前DataX在淘宝数据平台数据已经广泛地被用于数据同步作业,每天共计有4000+道DataX数据同步作业分布在全天各个时段运行。
DataX/DbSync/TT已经构成了淘宝数据平台数据提供的三大支柱: 





其中DataX每天为淘宝贡献2.5T数据量,占淘宝数据平台总体数据同步的23%,占数据库数据同步的96%。 

5
1
分享到:
评论
1 楼 luckymjl2 2012-01-06  
请问淘宝不是使用的mysql,分表分库查询吗?

相关推荐

    数据同步工具datax-web可视化工具

    数据同步工具DataX-Web是一款基于DataX的可视化数据迁移工具,它提供了用户友好的界面,使得数据库之间的数据同步变得更加简单和直观。DataX是阿里巴巴开源的一款强大的数据同步框架,支持多种数据库之间的数据迁移...

    datax-web-2.1.2.zip

    《DataX Web 2.1.2:高效数据同步工具详解》 DataX Web 是阿里巴巴开源的一款基于 DataX 的数据同步平台,它为用户提供了友好的图形化...无论是简单的数据迁移还是复杂的业务需求,DataX Web 都能提供完善的解决方案。

    datax-web-2.1.2.tar.gz+datax.tar.gz

    总的来说,DataX是一款强大且灵活的ETL工具,无论是小型项目还是大型企业级应用,都能找到适合的解决方案。通过DataX-web的图形化界面和DataX引擎的插件化设计,我们可以轻松地管理和执行数据迁移任务,实现数据的...

    java集成datax所需pom依赖包

    这个过程可能会遇到的问题包括但不限于依赖冲突、配置错误、数据源连接问题等,解决这些问题通常需要对DataX的架构和配置有深入理解,同时熟悉相关数据源的使用。在实际开发中,建议参考DataX的官方文档和示例,以便...

    ETL对比datax-nifi

    - **设计理念**:DataX旨在解决异构数据源间的同步问题,通过将复杂的数据同步链路简化为星型结构,使得新增数据源的接入变得更加简单,从而实现无缝的数据同步。 - **核心架构**: - **DataX Job**:这是DataX的...

    CDH和datax-web离线安装文档.docx

    CDH6.2.0、datax-web2.1.2 离线安装文档,从本地yum源配置到数据库安装以及cdh和datax-web的安装,亲测非常详细

    windows本地部署DataX-web

    1. **JDK (1.8及以上版本)**:DataX-Web基于Java开发,因此需要安装Java环境。推荐使用1.8版本,以确保兼容性。 2. **Python (推荐2.7.x版本)**:虽然不是必须的,但某些情况下可能需要使用Python脚本来辅助部署或...

    DataX-master.zip

    8. **运行DataX**:DataX通过命令行参数或配置文件指定数据源、任务和转换规则。使用`java -jar`命令可以运行生成的jar包,执行数据迁移任务。 总的来说,DataX与Maven的结合使得数据同步项目的构建和管理变得简单...

    cloudin-datax是基于DataX开发的分布式数据同步工具,提供简单易用的操作界面,可视化定时任务配置监控和增量同步功能

    在数据库管理领域,Cloudin-DataX提供了有效的解决方案,能够对多个数据库进行统一管理,进行数据迁移、备份、恢复等操作,同时监控数据同步的性能指标,为数据库维护人员提供决策依据。 **4. 文件名称列表解析** ...

    DataX Web分布式数据同步工具 v2.1.2.zip

    3. **丰富的数据源支持**:DataX内置了对MySQL、Oracle、HDFS、HBase、ADS、MaxCompute等多种数据源的支持,可以满足不同场景下的数据迁移需求。 4. **灵活的任务配置**:用户可以根据实际需求,自由配置数据同步的...

    datax-web部署手册

    本篇指南将详细介绍如何在IntelliJ IDEA环境下编译DataX-Web源码,并在Linux系统中部署发布服务,以及如何通过Web页面访问。 ### 一、环境准备 1. **Java环境**:确保已安装Java 8,推荐版本为1.8.201或以上。 2. ...

    datax_web搭建.zip

    1. 多数据源支持:DataX Web内置了丰富的数据源插件,覆盖关系型数据库、NoSQL数据库、文件系统等多种类型。 2. 图形化配置:通过拖拽和配置,用户可以直观地创建和修改数据同步任务,降低使用难度。 3. 任务调度:...

    datax-web 啊啊啊啊啊啊啊啊啊啊啊啊

    6. **插件扩展**:DataX Web允许用户自定义数据源插件,扩展支持更多的数据源类型。 在我们的压缩包文件中,`datax-web-2.1.2.tar.gz`是DataX Web的源码或者二进制包,通常包含DataX Web的服务器端程序、配置文件、...

    datax-elasticsearch-master.zip

    阿里巴巴Datax离线同步方案到ElasticSearch(官方由于不维护,所以没有读取/写入到ElasticSearch的方案),这里给出了读取/写入方案插件代码,直接编译出Jar包放到Datax中即可。

    javase源码-datax-web:dataxweb。datax中的web配置界面没有集成在一起开源出来,此为web端配置项目

    java se源码 主要功能 提供一个 web 系统,方便开发人员快速创建作业 示例 打包 使用 spring ...build/libs/datax-web-0.0.1.war ...datax安装目录: ...DATAX_HOME=... datax源码目录: ...DATAX_JSON_HOME=...

    Datax-ClickHouse读写插件

    2. 分片策略:DataX提供了多种分片策略,例如按照时间切片、按照主键值进行分片等,确保大规模数据的高效读取。 四、写入操作 1. ClickHouseWriter:该组件负责将数据写入ClickHouse。它可以处理来自其他数据库的...

    PyPI 官网下载 | datax-0.0.3-py3-none-any.whl

    资源来自pypi官网。 资源全名:datax-0.0.3-py3-none-any.whl

    datax-web.tar.gz

    阿里 数据同步软件,自己git下来打包的。开箱即用。 使用步骤:1、 bin目录 ./intall.sh,修改yourpath/datax-web-2.1.2/modules/datax-executor/conf/application.yml 在最后指定你datax.py路径 2、./startup-all.sh...

    datax-web:DataX集成可视化页面,选择数据源即可使用一键生成数据同步任务,支持RDBMS,Hive,HBase,ClickHouse,MongoDB等数据源,批量创建RDBMS数据同步任务,集成嵌入式调度系统,支持分布式,增量同步数据,实时查看运行日志,监控执行器资源,KILL运行进程,数据源信息加密等

    数据网 DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的操作界面,减少用户使用DataX的学习成本,更改任务配置时间,避免配置过程中出错。用户可以通过页面选择数据源即可创建数据同步任务,支持...

    datax-web-ui:DataX Web UI

    Datax Web UI说明该项目由修改而来构建设置运行npm install [ 慢的话用 npm install --registry https://registry.npm.taobao.org]修改配置找到vue.config.js修改proxy里的属性即可[process.env.VUE_APP_API]: { ...

Global site tag (gtag.js) - Google Analytics