datax 通用的关系数据库读写插件

快速介绍

组成介绍

读写插件由RDBMSWriter和RDBMSReader两部分组成

实现功能

实现关系型数据库的读写

实现原理

RDBMSReader通过JDBC连接器连接到远程的RDBMS数据库,并根据用户配置的信息生成查询SELECT SQL语句并发送到远程RDBMS数据库,并将该SQL执行返回结果使用DataX自定义的数据类型拼装为抽象的数据集,并传递给下游RDBMSWriter处理。
RDBMSWriter 插件实现了写入数据到 RDBMS 主库的目的表的功能。在底层实现上, RDBMSWriter 通过 JDBC 连接远程 RDBMS 数据库,并执行相应的 insert into … 的 sql 语句将数据写入 RDBMS

接入步骤

下面以人大金仓数据库为例子

1.前提条件

私服中又datax的pom依赖,本地有datax的编译好的jar包。详细步骤参考datax编译打包
我datax的编译好的包路径为D:\study\dataX\datax\datax

2.把新的驱动信息放置到读写插件中

2.1将驱动放置读插件中

{datax.home}\plugin\reader\rdbmsreader\lib中添加新的驱动jar包

2.2 j将驱动放置到写插件中

{datax.home}\plugin\writer\rdbmswriter\libs中添加新的驱动jar包

3.修改读写插件的plugin.json 增加新的驱动类

3.1 修改读的plugin.json 增加驱动类

编辑 {datax.home}\plugin\reader\rdbmsreader\plugin.json 增加新的驱动信息

3.2 修改写的plugin.json

编辑 {datax.home}\plugin\writer\rdbmswriter\plugin.json 增加新的驱动信息

4.在项目的pom中添加

注意这里的com.alibaba.datax.version 是指私服中的版本,或者你本地install的版本,而并非阿里云上的版本。阿里云中的版本可能和你本地的jar包有冲突

		<dependency>
			<groupId>com.alibaba.datax</groupId>
			<artifactId>rdbmsreader</artifactId>
			<version>${com.alibaba.datax.version}</version>
		</dependency>

5.编辑job文件,启动测试类
{
	"job": {
		"content": [
			{
				"reader": {
					"parameter": {
						"password": "sjjh@Bonc12#$",
						"connection": [
							{
								"querySql": [
									"SELECT \"id\", \"dis_task_id\", \"audit_type\", \"audit_state\", \"remark\", \"audit_user\", \"audit_username\", \"is_check\", \"dept_id\", \"level\", \"create_time\", \"create_user\", \"update_time\", \"update_user\" FROM \"PUBLIC\".\"dis_audit\""
								],
								 "splitPk": "id",
								"jdbcUrl": [
									"jdbc:kingbase8://192.168.72.193:54321/hamal"
								]
							}
						],
						"username": "sjjh"
					},
					"name": "rdbmsreader"
				},
				"writer": {
					"parameter": {
						"password": "sjjh@Bonc12#$",
						"column": [
							"\"id\"",
							"\"dis_task_id\"",
							"\"audit_type\"",
							"\"audit_state\"",
							"\"remark\"",
							"\"audit_user\"",
							"\"audit_username\"",
							"\"is_check\"",
							"\"dept_id\"",
							"\"level\"",
							"\"create_time\"",
							"\"create_user\"",
							"\"update_time\"",
							"\"update_user\""
							
						],
						"connection": [
							{
								"jdbcUrl": "jdbc:kingbase8://192.168.72.193:54321/hamal",
								"table": [
									"dis_audit_bak"
								]
							}
						],
						"username": "sjjh",
						"preSql": []
					},
					"name": "rdbmswriter"
				}
			}
		],
		"setting": {
			"errorLimit": {
				"record": 10,
				"percentage": 0.01
			},
			"speed": {
				"channel": 1
			}
		}
	}
}

6.解决运行中的报错。主要是修改阿里datax中的源码

7.运行测试类即可验证成功

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值