DataX二次开发——(8)rdbms的达梦8数据库的支持

1 前言

目前GitHub上的DataX3.0开源版本,rdbms里面默认是达梦7的驱动,因此,如果像链接达梦8需要替换驱动。

2 驱动替换

1、下载Dm8JdbcDriver18-xxxx.jar,放到libs下面(rdbmsreader和rdbmswriter同理
在这里插入图片描述
2、修改maven依赖,注释dm7的驱动,改成达梦8

        <dependency>
            <groupId>com.dameng</groupId>
            <artifactId>Dm8JdbcDriver18</artifactId>
            <version>8.1.1.49</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/libs/Dm8JdbcDriver18-8.1.1.49.jar</systemPath>
        </dependency>

        <!--		<dependency>-->
        <!--			<groupId>com.dm</groupId>-->
        <!--			<artifactId>dm</artifactId>-->
        <!--			<scope>system</scope>-->
        <!--			<systemPath>${basedir}/src/main/libs/Dm7JdbcDriver16.jar</systemPath>-->
        <!--		</dependency>-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.dameng</groupId>
                <artifactId>Dm8JdbcDriver18</artifactId>
                <version>8.1.1.49</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

3、重新打包编译

mvn -U clean package assembly:assembly -Dmaven.test.skip=true

3 读写达梦8的任务模板json

1、从达梦8读取写入到MySQL5.7模板

{
    "job": {
        "setting": {
            "speed": {
                 "channel": 3
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {

                "reader": {
                    "name": "rdbmsreader",
                     "parameter": {
                        "column": ["ID","USERNAME","PASSWORD"],
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:dm://10.252.xx.xxx:15236?schema=SYSDBA"],
                                "table": ["TEST_DATAX"]
                            }
                        ], 
                        "password": "", 
                        "username": "SYSDBA"
                    }
                },
               "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "print":true,   
                        "column": [
                            "id",
                            "username",
                            "password"
                        ], 
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://10.252.xxx.xx:30006/test_datax_dm?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai",      
                                "table": ["test_datax"]    
                            }
                        ], 
                        "password": "", 
                        "username": "root"
                    }
                }
            }
        ]
    }
}

2、从MySQL5.7读取写入到达梦8模板

{
    "job": {
        "setting": {
            "speed": {
                 "channel": 3
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {

                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "",
                        "column": [
                            "id",
                            "username",
                            "password"
                        ],
                        "connection": [
                            {
                                "table": [
                                    "test_datax"    
                                ],
                                "jdbcUrl": [
                                    "jdbc:mysql://10.252.xxx.xx:30006/test_datax_dm?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"
                                ]
                            }
                        ]
                    }
                },
               "writer": {
                    "name": "rdbmswriter", 
                    "parameter": {
                        "column": ["ID","USERNAME","PASSWORD"], 
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:dm://10.252.xx.xxx:15236?schema=SYSDBA", 
                                "table": ["TEST_DATAX"]
                            }
                        ], 
                        "password": "", 
                        "username": "SYSDBA",
                        "preSql": [], 
                        "session": []
                    }
                }
            }
        ]
    }
}
为了对 DataX数据库插件进行二次开发,需要了解 DataX 的插件体系结构以及其开发流程。以下是详细的二次开发指南: ### 插件结构 DataX 使用插件化架构,分为 **Reader 插件** 和 **Writer 插件**,分别用于从数据源读取数据和向目标端写入数据。每个插件需要实现特定的接口,并遵循一定的目录结构。 - **Reader 插件**:负责从数据源读取数据。 - **Writer 插件**:负责将数据写入目标端。 插件的源代码通常需要放置在 `plugin/reader` 或 `plugin/writer` 目录下,每个插件是一个独立的文件夹,包含插件的配置文件和实现类。 ### 开发环境准备 1. **JDK 环境**:确保安装了 JDK,并且环境变量配置正确。 2. **DataX 源码**:下载 DataX 的源码,并导入到开发工具中。 3. **插件目录结构**:确保插件目录结构正确,插件文件夹应包含 `plugin.json` 配置文件和实现类。 ### 开发步骤 1. **创建插件目录**:在 `plugin/reader` 或 `plugin/writer` 目录下创建一个新的插件文件夹。 2. **编写插件配置文件**:在插件文件夹中创建 `plugin.json` 文件,定义插件的基本信息和参数。 3. **实现插件接口**:根据插件类型(Reader 或 Writer),实现相应的接口,并编写具体的读取或写入逻辑。 4. **编译插件**:使用 Maven 或其他构建工具编译插件,并将生成的 JAR 文件放入插件目录中。 5. **测试插件**:编写 JSON 配置文件,使用 DataX 的命令行工具测试插件的功能。 ### 示例代码 以下是一个简单的 Reader 插件示例: ```java public class MyReader extends Reader { @Override public void init() { // 初始化逻辑 } @Override public void prepare() { // 准备工作 } @Override public void post() { // 后续处理 } @Override public void destroy() { // 清理资源 } } ``` ### 配置文件示例 以下是一个简单的 `plugin.json` 配置文件示例: ```json { "name": "myreader", "class": "com.example.MyReader", "description": "My custom reader plugin" } ``` ### 注意事项 - **插件兼容性**:确保插件与 DataX 的版本兼容。 - **异常处理**:在插件中添加适当的异常处理逻辑,以确保数据同步的稳定性。 - **性能优化**:根据数据源的特点,优化插件的读取和写入性能。 通过以上步骤,可以实现对 DataX 数据库插件的二次开发,扩展 DataX 的功能以满足特定的数据同步需求。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值