淘宝异构数据源数据交换工具 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正是为了解决这些问题而生。

(问题: 新增第n+1个数据源,是不是要新开发n个数据同步工具 ?)

 
我们只需要针对新增的数据源开发的一套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%

项目主页:http://www.open-open.com/lib/view/home/1325771223625

时间: 2024-10-08 00:37:05

淘宝异构数据源数据交换工具 DataX的相关文章

大数据 -->淘宝异构数据源数据交换工具 DataX

淘宝异构数据源数据交换工具 DataX DataX是什么? DataX是一个在异构的数据库/文件系统之间高速交换数据的工具,实现了在任意的数据处理系统(RDBMS/Hdfs/Local filesystem)之间的数据交换,由淘宝数据平台部门完成. DataX用来解决什么? 目前成熟的数据导入导出工具比较多,但是一般都只能用于数据导入或者导出,并且只能支持一个或者几个特定类型的数据库.这样带来的一个问题是,如果我们拥有很多不同类型的数据库/文件系统(Mysql/Oracle/Rac/Hive/O

Python3爬虫爬取淘宝商品数据

这次的主要的目的是从淘宝的搜索页面获取商品的信息.其实分析页面找到信息很容易,页面信息的存放都是以静态的方式直接嵌套的页面上的,很容易找到.主要困难是将信息从HTML源码中剥离出来,数据和网页源码结合的很紧密,剥离数据有一定的难度. 然后将获取的信息写入excel表格保存起来,这次只爬取了前面10页 的内容.在运行代码的过程中发现,30页后面的数据有问题,出现了手机价格为0的情况,这是不符合实际的,码也没有写错误处理的代码. 这次先写个粗略的,有点凌乱的感觉,下次有时间再系统的整理整理吧. im

淘宝直播数据采集系统

淘宝直播数据采集系统 数据采集源为淘宝app 登录 直播列表页 根据不同频道搜索相应直播列表 直播信息详情页 弹幕会定时刷新更新,也可以手动刷新 原文地址:https://www.cnblogs.com/super19911115/p/12116062.html

thinkphp接收阿里淘宝客数据

坑在于淘宝客api返回的数据对象是SimpleXMLElement Object类型,不转为php的json array类型数据直接扔到thinkphp循环输出中会达不到要的效果,奇奇怪怪的数组,一度怀疑是html循环赋值有问题,最后终于怀疑到数据格式. 得到淘宝客的数据口,轻松将SimpleXMLElement Object转为json 对象一切正常了. date_default_timezone_set('Asia/Shanghai'); $c = new TopClient; $c->ap

爬虫技术:爬取淘宝美食数据:崔庆才思路

# TODO selenium已经被检测出来 import random import re import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions a

天猫淘宝评论数据抓取

import requests import re,json import pandas class base(): def __init__(self,url): self.url = url def all_url(self): return [self.url + "%s" % i for i in range(1,100)] def loads_jsonp(self,_jsonp): try: return json.loads(re.match(".*?({.*})

淘宝杨志丰:OceanBase--淘宝结构化大数据解决之道

时至今日,“Big data”(大数据)时代的来临已经毋庸置疑,尤其是在电信.金融等行业,几乎已经到了“数据就是业务本身”的地步.这种趋势已经让很多相信数据之力量的企业做出改变.恰逢此时,为了让更多的人了解和使用分析大数据,CSDN独家承办的大数据技术大会于今日在北京中旅大厦召开.本次大会汇集Hadoop.NoSQL.数据分析与挖掘.数据仓库.商业智能以及开源云计算架构等诸多热点话题.包括百度.淘宝.新浪等业界知名专家与参会者齐聚一堂,共同探讨大数据浪潮下的行业应对法则以及大数据时代的抉择. 淘

大数据平台演进之路 | 淘宝 & 滴滴 & 美团

声明:本文参考了淘宝/滴滴/美团发表的关于大数据平台建设的文章基础上予以整理.参考链接和作者在文末给出. 在此对三家公司的技术人员无私奉献精神表示感谢,如果文章造成了侵权行为,请联系本人删除.本人在尊重事实的基础上重新组织了语言和内容,旨在给读者揭开一个完善的大数据平台的组成和发展过程. 本文在未经本人允许情况下不得转载,否则追究版权责任. By 大数据技术与架构 场景描述:希望本文对那些正在建设大数据平台的同学们有所启发. 关键词:大数据平台 大数据平台是为了计算,现今社会所产生的越来越大的数

[TB-Technology] 淘宝在数据处理领域的项目及开源产品介绍

淘宝在数据存储和处理领域在国内互联网公司中一直保持比较靠前的位置,而且由于电子商务领域独特的应用场景,淘宝在数据实时性和大规模计算及挖掘方面一直在国内保持着领先,因此积累了很多的实践的经验和产品. TimeTunnel 基于Hbase打造的消息中间件,具有高可靠.消息顺序.事务等传统特性,还能按时间维度反复订阅最近历史的任意数据 高性能的broker,单节点达2万TPS,实际支持上千长链接并发 承载海量的数据传输,日同步数据达10TB,并且包含淘宝主营收入等关键性数据 在各IDC内,部署了超过2