当前位置: 首页 > news >正文

datax

DataX

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。

https://github.com/alibaba/DataX

Features

DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。

System Requirements

  • Linux
  • JDK(1.8以上,推荐1.8)
  • Python(2或3都可以)
  • Apache Maven 3.x (Compile DataX)

Quick Start

  • 工具部署

    • 方法一、直接下载DataX工具包:DataX下载地址

      下载后解压至本地某个目录,进入bin目录,即可运行同步作业:

      $ cd  {YOUR_DATAX_HOME}/bin
      $ python datax.py {YOUR_JOB.json}

      自检脚本:    python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/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  usepython {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
http://www.lryc.cn/news/271232.html

相关文章:

  • 【Java】SpringBoot快速整合WebSocket实现客户端服务端相互推送信息
  • C语言 linux文件操作(一)
  • 007、控制流
  • 将学习自动化测试时的医药管理信息系统项目用idea运行
  • k8s 的YAML文件详解
  • 【Pytorch】Pytorch或者CUDA版本不符合问题解决与分析
  • 『精』CSS 小技巧之BEM规范
  • vue3-12
  • 操作系统期末复习
  • element el-table实现可进行横向拖拽滚动
  • 【兔子王赠书第14期】《YOLO目标检测》涵盖众多目标检测框架,附赠源代码和全书彩图!
  • WPF 基础入门(样式)
  • Java ArrayList在遍历时删除元素
  • 多模态大模型的前世今生
  • Android studio 花式按键
  • 使用spring boot实现异常的统一返回
  • 2023-12-11 LeetCode每日一题(最小体力消耗路径)
  • PID为1的僵尸进程的产生及清理
  • 043、循环神经网络
  • node使用nodemonjs自动启动项目
  • Ts自封装WebSocket心跳重连
  • 【unity学习笔记】捏人+眨眼效果+口型效果
  • 动态规划 | 最长公共子序列问题
  • RuntimeError: The NVIDIA driver on your system is too old.
  • Java开发过程中的幂等性问题
  • 基于Docker的软件环境部署脚本,持续更新~
  • C#上位机与欧姆龙PLC的通信08----开发自己的通讯库读写数据
  • 【Redis技术专区】「原理分析」探讨Redis6.0为何需要启用多线程
  • simulink代码生成(六)——多级中断的配置
  • 【Minikube Prometheus】基于Prometheus Grafana监控由Minikube创建的K8S集群