Datax官方笔记总结
#
DataX
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。
Features
DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。
System Requirements
Linux
JDK(1.6以上,推荐1.6)
Python(推荐Python2.6.X)
Apache Maven 3.x (Compile DataX)
Quick Start
工具部署
方法一、直接下载DataX工具包:DataX
下载后解压至本地某个目录,进入bin目录,即可运行同步作业:
$ cd {YOUR_DATAX_HOME}/bin
$ python datax.py {YOUR_JOB.json}
方法二、下载DataX源码,自己编译:DataX源码
(1)、下载DataX源码:
$ git clone git@github.com:alibaba/DataX.git
(2)、通过maven打包:
$ cd  {DataX_source_code_home}
$ mvn -U clean package assembly:assembly -Dmaven.test.skip=true
打包成功,日志显示如下:
[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------------
[INFO] Total time: 08:12 min
[INFO] Finished at: 2015-12-13T16:26:48+08:00
[INFO] Final Memory: 133M/960M
[INFO] -----------------------------------------------------------------
打包成功后的DataX包位于 {DataX_source_code_home}/target/datax/datax/ ,结构如下:
$ cd  {DataX_source_code_home}
$ ls ./target/datax/datax/
bin     conf        job     lib     log     log_perf    plugin      script      tmp
配置示例:从stream读取数据并打印到控制台
第一步、创建创业的配置文件(json格式)
可以通过命令查看配置模板: python datax.py -r {YOUR_READER} -w {YOUR_WRITER}
$ cd  {YOUR_DATAX_HOME}/bin
$  python datax.py -r streamreader -w streamwriter
DataX (UNKNOWN_DATAX_VERSION), From Alibaba !
Copyright (C) 2010-2015, Alibaba Group. All Rights Reserved.
Please refer to the streamreader document:
    https://github.com/alibaba/DataX/blob/master/streamreader/doc/streamreader.md
Please refer to the streamwriter document:
     https://github.com/alibaba/DataX/blob/master/streamwriter/doc/streamwriter.md
Please save the following configuration as a json file and  use
     python {DATAX_HOME}/bin/datax.py {JSON_FILE_NAME}.json 
to run the job.
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "streamreader", 
                    "parameter": {
                        "column": [], 
                        "sliceRecordCount": ""
                    }
                }, 
                "writer": {
                    "name": "streamwriter", 
                    "parameter": {
                        "encoding": "", 
                        "print": true
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": ""
            }
        }
    }
}
根据模板配置json如下:
#stream2stream.json
{
  "job": {
    "content": [
      {
        "reader": {
          "name": "streamreader",
          "parameter": {
            "sliceRecordCount": 10,
            "column": [
              {
                "type": "long",
                "value": "10"
              },
              {
                "type": "string",
                "value": "hello,你好,世界-DataX"
              }
            ]
          }
        },
        "writer": {
          "name": "streamwriter",
          "parameter": {
            "encoding": "UTF-8",
            "print": true
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 5
       }
    }
  }
}
第二步:启动DataX
$ cd {YOUR_DATAX_DIR_BIN}
$ python datax.py ./stream2stream.json 
同步结束,显示日志如下:
...
2015-12-17 11:20:25.263 [job-0] INFO  JobContainer - 
任务启动时刻                    : 2015-12-17 11:20:15
任务结束时刻                    : 2015-12-17 11:20:25
任务总计耗时                    :                 10s
任务平均流量                    :              205B/s
记录写入速度                    :              5rec/s
读出记录总数                    :                  50
读写失败总数                    :                   0
Support Data Channels
目前DataX支持的数据源有:
Reader
Reader实现了从数据存储系统批量抽取数据,并转换为DataX标准数据交换协议,DataX任意Reader能与DataX任意Writer实现无缝对接,达到任意异构数据互通之目的。
RDBMS 关系型数据库
�MysqlReader: 使用JDBC批量抽取Mysql数据集。
OracleReader: 使用JDBC批量抽取Oracle数据集。
SqlServerReader: 使用JDBC批量抽取SqlServer数据集
PostgresqlReader: 使用JDBC批量抽取PostgreSQL数据集
DrdsReader: 针对公有云上DRDS的批量数据抽取工具。
数仓数据存储
ODPSReader: 使用ODPS Tunnel SDK批量抽取ODPS数据。
NoSQL数据存储
OTSReader: 针对公有云上OTS的批量数据抽取工具。
HBaseReader: 针对 HBase 0.94版本的在线数据抽取工具
无结构化数据存储
TxtFileReader: 读取(递归/过滤)本地文件。
FtpReader: 读取(递归/过滤)远程ftp文件。
HdfsReader: 针对Hdfs文件系统中textfile和orcfile文件批量数据抽取工具。
OssReader: 针对公有云OSS产品的批量数据抽取工具。
StreamReader
Writer
Writer实现了从DataX标准数据交换协议,翻译为具体的数据存储类型并写入目的数据存储。DataX任意Writer能与DataX任意Reader实现无缝对接,达到任意异构数据互通之目的。
RDBMS 关系型数据库
MysqlWriter: 使用JDBC(Insert,Replace方式)写入Mysql数据库
OracleWriter: 使用JDBC(Insert方式)写入Oracle数据库
PostgresqlWriter: 使用JDBC(Insert方式)写入PostgreSQL数据库
SqlServerWriter: 使用JDBC(Insert方式)写入sqlserver数据库
DrdsWriter: 使用JDBC(Replace方式)写入Drds数据库
数仓数据存储
ODPSWriter: 使用ODPS Tunnel SDK向ODPS写入数据。
ADSWriter: 使用ODPS中转将数据导入ADS。
NoSQL数据存储
OTSWriter: 使用OTS SDK向OTS Public模型的表中导入数据。
OCSWriter
MongoDBReader:MongoDBReader
MongoDBWriter:MongoDBWriter
无结构化数据存储
TxtFileWriter: 提供写入本地文件功能。
OssWriter: 使用OSS SDK写入OSS数据。
HdfsWriter: 提供向Hdfs文件系统中写入textfile文件和orcfile文件功能。
StreamWriter
###linux 批量执行job
exec.sh
find ./ -name "*.json" -exec python datax.py {} \;
Datax官方笔记总结的更多相关文章
- 斯坦福经典AI课程CS 221官方笔记来了!机器学习模型、贝叶斯网络等重点速查...
		
[导读]斯坦福大学的人工智能课程"CS 221"至今仍然是人工智能学习课程的经典之一.为了方便广大不能亲临现场听讲的同学,课程官方推出了课程笔记CheatSheet,涵盖4大类模型 ...
 - CS231n官方笔记授权翻译总集篇发布
		
CS231n简介 CS231n的全称是CS231n: Convolutional Neural Networks for Visual Recognition,即面向视觉识别的卷积神经网络.该课程是斯 ...
 - cs231n官方note笔记
		
本文记录官方note中比较新颖和有价值的观点(从反向传播开始) 一 反向传播 1 “反向传播是一个优美的局部过程.在整个计算线路图中,每个门单元都会得到一些输入并立即计算两个东西:1. 这个门的输出值 ...
 - 异构数据源海量数据交换工具-Taobao DataX 下载和使用
		
DataX介绍 DataX是一个在异构的数据库/文件系统之间高速交换数据的工具,实现了在任意的数据处理系统(RDBMS/Hdfs/Local filesystem)之间的数据交换. 目前成熟的数据导入 ...
 - LARC Caffe笔记(二) 训练自己的img
		
继看完 贺完结!CS231n官方笔记 上一次已经成功跑起caffe自带的例程,mnist和cifar10 但是终归用的是里面写好的脚本,于是打算训练自己的img 〇.目标 准备好food图片3类(出于 ...
 - 【2017cs231n】:课程笔记-第2讲:图像分类
		
[2017cs231n]:课程笔记-第2讲:图像分类 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.n ...
 - 编译 datax
		
datax 是阿里巴巴官方开源的一个数据同步工具,可以用于诸多数据源之间的同步,并且使用简单.效率高. datax 官方有提供编译好的版本,可以直接下载,但是其中包含有 BUG. 我最近遇到的一个问题 ...
 - 【cs231n作业笔记】一:KNN分类器
		
安装anaconda,下载assignment作业代码 作业代码数据集等2018版基于python3.6 下载提取码4put 本课程内容参考: cs231n官方笔记地址 贺完结!CS231n官方笔记授 ...
 - 【C#学习笔记】 List.AddRange 方法
		
[官方笔记] 将指定集合的元素添加到 List 的末尾 命名空间:System.Collections.Generic程序集:mscorlib(在 mscorlib.dll 中) public: vo ...
 
随机推荐
- 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型
			
Swift 2.0学习笔记(Day 13)——数据类型之整型和浮点型 原创文章,欢迎转载.转载请注明:关东升的博客 Swift提供8.16.32.64位形式的有符号及无符号整数.这些整数类型遵循 ...
 - E - Rails (栈)
			
E - Rails Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Description The ...
 - angularjs   复选框 单选框
			
关于复选框,在做项目的时候,有一下几点心得 单选框 1.判断哪个单选框选中的情况 html代码 判断该复选框是否选中 $scope.agree.isChecked 判断这个值,如果等于1,代表 ...
 - RedHat6/Centos6.5安装mongodb php driver
			
条件: 安装apache 安装php 1.下载mongodb phh driver 下载地址:pecl wget http://pecl.php.net/get/mongo-1.5.8.tgz 2.解 ...
 - 为什么一定要调用 setlocale 呢?  因为在 C/C++ 语言标准中定义了其运行时的字符集环境为 "C" ,也就是 ASCII 字符集的一个子集。使用setlocal改变整个应用程序的字符集编码方式(wcstombs使用前要设置 setlocale (LC_ALL, "chs"); )
			
setlocale 配置地域化信息. 语法: string setlocale(string category, string locale); 返回值: 字符串 函数种类: 操作系统与环境 内容 ...
 - Mysql在大型网站的应用架构演变(转)
			
原文: Mysql在大型网站的应用架构演变 本文已经被多处转载,包括CSDN推荐以及码农周刊等等,阅读数超过5w+,回流到我博客流量的还是比较少,不过这不重要, 后续会分享更多技术,尽量试图把自己理解 ...
 - 介绍一下Python中webbrowser的用法?
			
webbrowser模块提供了一个高级接口来显示基于Web的文档,大部分情况下只需要简单的调用open()方法.webbrowser定义了如下的异常:exception webbrowser.Erro ...
 - Apache JServ Protocol (AJP)
			
The Apache JServ Protocol (AJP) is a binary protocol that can proxy inbound requests from a web serv ...
 - Linux服务管理(开启关闭防火墙)
			
1.firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status f ...
 - ASP.NET,什么是MVC,MVC的简单介绍
			
什么是MVC模式 MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式.它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Co ...