首页 > 其他分享 >Datax in Dolphinscheduler

Datax in Dolphinscheduler

时间:2024-03-19 14:34:49浏览次数:16  
标签:... 模版 Dolphinscheduler Framework Datax reader 数据 DataX

About DataX

DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。

DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。

  • Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
  • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
  • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

在Dolphinscheduler中通过自定义Json模版来同步数据

模版结构包括以下部分:

  • setting: 全局配置,如任务运行速度、错误处理策略。
  • content: 包含具体的数据同步任务详情。
  • reader: 定义数据读取源,包括数据库类型、连接信息、查询语句等。
  • transformer: (可选)数据转换处理,如数据清洗、格式转换。
  • writer: 定义数据写入目标,包括目标数据库信息、表名、列映射等。
  "job": {
    "setting": {
       //...
    },
    "content": [
      {
        "reader": {
          //...
        },
        "transformer": {
          //...
        },
        "writer": {
           //...
        }
      }
    ]
  }
}

全局变量配置

模版里面需要引用全局变量,包括数据库连接信息,时间信息等等,如下所示:

模版应用案例

{
    "job": {
        "setting": {
            "speed": {
                 "channel": 1
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",   
                    "parameter": {
                        "username": "${dmsusername}",
                        "password": "${dmspassword}",
                        "connection": [
                            {
                                "jdbcUrl": ["${sourcejdbc}"],
		                        "querySql": [  "SELECT ID,ASC_CODE,CLAIM_NO,ASC_NAME,ORG_ID,CLAIM_STATUS,SIGN_STATUS, CLAIM_KIND,RO_NO, VIN,UPDATED_AT FROM tm_xx_order WHERE UPDATED_AT >= '${dms_update_time}';" ]
                                        }
                                    ]
                                }
                            },
		        "transformer": [
                   {
                     "name": "dx_groovy",
                     "parameter": {
                         "code": "for(int i=0;i<record.getColumnNumber();i++){if(record.getColumn(i).getByteSize()!=0){Column column = record.getColumn(i); def str = column.asString(); def newStr=null; newStr=str.replaceAll(\"[\\r\\n\\t]\",\"\"); record.setColumn(i, new StringColumn(newStr)); };};return record;",
                         "extraPackage": []
                      }
                  }
                 ], 		
                "writer": {
                    "name": "starrockswriter",
                    "parameter": {
                        "username": "${srusername}",
                        "password": "${srpassword}",
                        "writeMode": "update",
                        "database": "ods",
                        "table": "ods_xx_tm_xx_order_delta",
                        "column": ["ID","ASC_CODE", "CLAIM_NO", "ASC_NAME","ORG_ID","CLAIM_STATUS", "SIGN_STATUS", "CLAIM_KIND", "RO_NO","VIN","UPDATED_AT"],
                        "postSql": [], 
                        "jdbcUrl": "${targetjdbc}",
                        "loadUrl": [${loadurl}],
                        "loadProps": {}
                    }
                }
            }
        ]
    }
}

标签:...,模版,Dolphinscheduler,Framework,Datax,reader,数据,DataX
From: https://www.cnblogs.com/irobotzz/p/18082734

相关文章

  • 2.Datax数据同步之Windows下,mysql和sqlserver之间的自定义sql文数据同步
    目录前言步骤操作大纲步骤明细mysql至sqlServersqlServer至mysql前言上一篇文章实现了不同的mysql数据库之间的数据同步,在此基础上本篇将实现mysql和sqlserver之间的自定义sql文数据同步准备工作:JDK(1.8以上,推荐1.8)Python(2或3都可以)ApacheMaven3.x(Co......
  • dolphinscheduler无法启动工作流
     dolphinscheduler版本:3.2.0情景复现:当操作dolphinschedulerwebui任意删除按钮功能时。dolphinscheduler工作流运行按钮。master节点报错日志如下:ViewCode根据错误栈信息,可以锁定源码TriggerRelationServiceImpl第50行查询语句导致selectOne报错,sql查询信息如下:ViewC......
  • Apache DolphinScheduler-3.2.0集群部署教程
    集群部署方案(2Master+3Worker)ApacheDolphinScheduler官网:https://dolphinscheduler.apache.org/zh-cnApacheDolphinScheduler使用文档:https://dolphinscheduler.apache.org/zh-cn/docs/3.2.0截止2024-01-19,最新版本:3.2.0部署版本:apache-dolphinscheduler-3.2.0-bin.t......
  • DataX批量增量同步pg库表数据
    批量pg2pg增量同步DataX.json配置文件:pg2pg_increment_sync.json{"job":{"setting":{"speed":{"channel":1}},"content":[{......
  • dolphinscheduler 实现master宕机故障转移能力源码分析
    DS(dolphinscheduler)的master是去中心化的,而故障转移能力是由master完成的,那么是多个master同时干故障转移,还是选举出一个master来干这件事情呢?回归到源码进行分析1.master启动方法@PostConstructpublicvoidrun()throwsSchedulerException{....this.failoverE......
  • datax从mysql迁移数据到OceanBase
    datax部署下载dataxdatax下载地址安装dataxtar-zxvfdatax.tar.gz使用datax使用配置文件{"job":{"setting":{"speed":{"channel":4},"errorLimit":{......
  • dolphinscheduler master实现去中心化源码分析
    dolphinschedulerMaster服务是去中心化的,也就是没有master和slave之分,每个master都参与工作,那么它是如何每个Master服务去取任务执行时,每个Master都取到不同的任务,并且不会漏掉,不会重复的呢,下面从源码角度来分析这个问题MasterServer.java/***runmasterserver*/@PostC......
  • dolphinscheduler管理页面主机host显示IP异常问题
    问题背景:登录dolphinscheduler管理页面,打开监控中心大盘发现IP显示异常,不是自己主机的业务IP问题分析:显示的IP是主机的bond0的IP,不是业务ip所在bond,则需要修改bond配置解决方案:需要将network.interface修改成业务ip所在的bond1网卡登录主机进行ipaddr查看业务IP所在bond......
  • dolphinscheduler指定元数据库名称
    问题背景:dolphinscheduler服务元数据库默认库名为dolphinscheduler,但是在一个数据库服务里边要创建安装部署两套dolphinscheduler服务那肯定得要两个不同的数据库名称进行区分,dolphinscheduler配置文件该怎么修改数据库名称?页面配置:dolphinscheduler数据库配置只有数据库类型,ho......
  • 使用ambari安装dolphinscheduler服务
    1.添加服务选择dolphinscheduler2.dolphinscheduler服务配置这个选择使用mysql数据作为dolphinscheduler服务的元数据库3.服务选择进行安装选择两个DS-master,至少两个DS-ALTERS,DS-APIS,其余节点都部署DS-worker节点4.如果在安装dolphinscheduler之前做了namenode-ha则可......