文档下载建议反馈入口

  • 概述
  • 配置 KaiwuDBWriter
  • 配置 KaiwuDBReader
  • 参考信息

DataX 读写数据

DataXopen in new window 是一款广泛使用的离线数据同步工具,能够实现 MySQLopen in new windowSQL Serveropen in new windowOracleopen in new windowPostgreSQLopen in new windowHadoop HDFSopen in new windowApache Hiveopen in new windowApache HBaseopen in new windowOTSopen in new window 等各种异构数据源之间的数据同步。

概述

作为数据同步框架,DataX 能够将不同数据源的同步抽象为从源数据源读取数据的 Reader 插件,以及向目标数据源写入数据的 Writer 插件,从而实现不同数据源的数据同步工作。基于 DataX 框架,KaiwuDB 提供了用于写入和读取数据的 KaiwuDBWriter 和 KaiwuDBReader 插件。

数据类型映射

下表列出 DataX 数据类型与 KaiwuDB 数据类型之间的映射关系。

DataX 数据类型KaiwuDB 数据类型
INTTINYINT、SMALLINT、INT
LONGTINYINT、SMALLINT、INT、BIGINT、TIMESTAMP、TIMESTAMPTZ
DOUBLEFLOAT、REAL、DOUBLE、DECIMAL
BOOLBOOL、BIT
DATEDATE、TIME、TIMESTAMP、TIMESTAMPTZ
BYTESBYTES、VARBYTES
STRINGCHAR、NCHAR、VARCHAR、NVARCHAR、TIMESTAMP、TIMESTAMPTZ

KaiwuDBWriter

KaiwuDBWriter 通过 DataX 获取 Reader 生成的协议数据,将目标表的数据以全量或增量的方式写入 KaiwuDB 的时序表和关系表中。KaiwuDBWriter 支持将以下版本的数据库数据同步到 KaiwuDB 数据库:

说明

理论上,支持使用 DataX 将其它类型的数据库数据同步到 KaiwuDB,但未经测试。

数据库插件版本说明
ClickHouseClickHouseReader插件支持的版本- DataX 插件使用的 JDBC 驱动版本较低,不支持毫秒级精度的时间读取,可能导致错误删除数据。建议先升级 DataX 插件的 JDBC 驱动版本。解决升级导致的问题后,再进行数据迁移。
- 在 ClickHouse 中,NULL 值会显示为 0,导入 KaiwuDB 后,NULL 值会被处理为 false
- 二进制类型数据导入 KaiwuDB 后,会以 \x+ 空字符串的形式显示。
InfluxDBInfluxDB10Reader1.x 版本-
InfluxDB20Reader2.x 版本
KaiwuDBKaiwuDBReader2.0.0 及以上版本-
MongoDBDataX MongoDBReader插件支持的版本- DataX 自带的 Reader 插件不支持 MongoDB 7。
- 不支持迁移 MongoDB 数据库的 _id 列。
MySQLDataX MysqlReader插件支持的版本-
OpenTSDBDataX OpenTSDBReader2.3.X 版本- OpenTSDB 是键值对类型的数据库。在读取 OpenTSDB 数据时,数据以键值对的形式呈现。
- KaiwuDBWriter 会对读取的 OpenTSDB metric 进行修改,将 metric 中的英文句号(.)修改为下划线(_),然后将其作为 KaiwuDB 数据库的表名。每张表中存储的数据包括 k_timestampvalue 两列。
- 当写入数据的表不存在时,支持自动创建表。
- 使用 beginDateTimeendDateTime 设置数据读取时间时,beginDateTimeendDateTime 的间隔需为 1 小时以上。
OracleOracleReader插件支持的版本-
PostgreSQLDataX PostgresqlReader插件支持的版本-
TDenginetdengine20readeropen in new window2.4.0.14 以下版本- TDengine 数据库中,如果 BOOL 类型的字段值为 null,导入 KaiwuDB 后,会显示为 false
- TDengine 数据库中,如果 NCHAR 类型的字段值为 null,导入 KaiwuDB 后,会显示为空字符串。
- TDengineReader 不支持读取 JSON 类型数据。如果数据表的标签列采用 JSON 格式,需要转为其他类型,否则会导致迁移失败。
DataX TDengineReader2.4.0.14 - 3.0.0 版本-
tdengine30readeropen in new window3.0.0 以上版本-

KaiwuDBReader

KaiwuDBReader 通过 DataX 将 KaiwuDB 数据库的数据写出到其他数据库,完成数据库的异步数据迁移。KaiwuDBReader 支持将 KaiwuDB 数据库的数据同步到以下版本的数据库。

说明

理论上,支持使用 DataX 将 KaiwuDB 数据库的数据读取到其它类型的数据库数据,但未经测试。

数据库插件版本说明
MySQLDataX MysqlWriter插件支持的版本-
TDengineDataX TDengineReader2.x 和 3.x大数据量场景下,建议将 batchSize 设置为 1000
KaiwuDBKaiwuDBWriter2.0.0 及以上版本-

配置 KaiwuDBWriter

前提条件

配置步骤

  1. 将 KaiwuDB DataX 插件包上传到安装 DataX 的机器,解压缩插件包,然后将解压后的kaiwudbwriter 文件夹复制到 datax/plugin/writer/ 目录下。

  2. 进入 DataX 的 datax/job/ 目录,创建 DataX 作业配置文件,定义源数据库和目标数据库的连接、读写的数据和相应的格式要求。

    说明

    不同数据源的作业配置文件要求不同,用户可以在 datax/datax/ 目录下运行 python ../bin/datax.py -r {YOUR_READER} -w {YOUR_WRITER} 命令查看源数据库和目标数据库的作业配置模板,参考模板定义所需的配置文件,例如 python ./bin/datax.py -r mysqlreader -w kaiwudbwriter

  3. datax/datax/job/ 目录下执行创建的 DataX 作业配置文件,启动 DataX,开启数据同步。

    说明

    在迁移大数据量数据时,建议在启动命令后加上参数 --jvm,增大 JVM 内存,例如 python ../bin/datax.py mysql2kaiwudb.json --jvm="-Xms10G -Xmx10G"

    示例:

    python ../bin/datax.py mysql2kaiwudb.json
    

    如果同步正常结束,控制台将输出以下信息:

    ...
    2024-01-24 9:20:25.262 [job-0] INFO  JobContainer -
    任务启动时刻            : 2024-01-24 9:20:15
    任务结束时刻            : 2024-01-24 9:20:20
    任务总计耗时            : 5s
    任务平均流量            : 205B/s
    记录写入速度            : 5rec/s
    读出记录总数            : 50
    读写失败总数            : 0
    

    如果同步异常,可能会出现以下异常信息,请根据异常提示原因,进行检查。

    异常信息处理措施
    KaiwuDBWriter-00:您的配置错误检查 DataX 作业配置文件。
    KaiwuDBWriter-01:缺少必要的值检查 JSON 配置文件中必须字段,确认是否配置相应的值。
    KaiwuDBWriter-02:值非法检查 JSON 配置文件中相关字段的值,确认是否符合规范和数据类型要求。
    KaiwuDBWriter-03:运行时异常检查 JSON 配置文件后重试。如果问题仍然存在,请联系 KaiwuDB 技术支持人员。
    KaiwuDBWriter-04:DataX 类型无法正确映射到 KaiwuDB 类型检查使用的 DataX 是否支持映射到 KaiwuDB 数据类型。更多信息,参见数据类型映射
    KaiwuDBWriter-05:尚未支持实现功能不支持。

配置示例

从 MySQL 同步到 KaiwuDB

KaiwuDB 支持通过 DataX 将 MySQL 的数据同步到 KaiwuDB 数据库的时序表和关系表中。不同类型的表对应的 DataX 作业配置(job.json 文件)有所不同。

关系表同步到时序表

以下示例假设已经在 KaiwuDB 数据库中创建时序数据库(benchmark)和时序表(cpu)。

/* 创建时序数据库:benchmark */
CREATE TS DATABASE benchmark;

/* 创建时序表:cpu */
CREATE TABLE benchmark.cpu (k_timestamp TIMESTAMPTZ NOT NULL, usage_user INT8 NOT NULL, usage_system INT8 NOT NULL, usage_idle INT8 NOT NULL) TAGS (id INT8 NOT NULL, hostname VARCHAR NOT NULL, region VARCHAR NOT NULL, datacenter VARCHAR NOT NULL) PRIMARY TAGS (id);

全量数据同步配置示例

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "username": "mysql_user",
            "password": "123456",
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "9001 as id",
              "'localhost' as hostname",
              "'beijing' as region",
              "'center' as datacenter"
            ],
            "splitPk": "id",
            "connection": [
              {
                "table": [
                  "cpu"
                ],
                "jdbcUrl": [
                  "jdbc:mysql://127.0.0.1:3306/mysql_db?useSSL=false&useUnicode=true&characterEncoding=utf8"
                ]
              }
            ]
          }
        },
        "writer": {
          "name": "kaiwudbwriter",
          "parameter": {
            "username": "kaiwudb_user",
            "password": "kaiwudb@123",
            "jdbcUrl": "jdbc:kaiwudb://127.0.0.1:26257/benchmark",
            "table": "cpu",  
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "id",
              "hostname",
              "region",
              "datacenter"
            ],
            "preSql": [
              ""
            ],
            "postSql": [
              ""
            ],
            "batchSize": 100
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
 }

增量数据同步配置示例

DataX 支持通过 reader 插件中的 querySqlwhere 参数限定数据读取范围,从而实现增量数据同步。

示例 1:通过 querySql 限定数据同步范围。

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "username": "root",
            "password": "123456",
            "connection": [
              {
                "querySql": [
                  "select k_timestamp, usage_user, usage_system, usage_idle, 9001 as id, 'localhost' as hostname, 'beijing' as region, 'center' as datacenter from cpu where id > 2000"
                ],
                "jdbcUrl": [
                  "jdbc:mysql://127.0.0.1:3306/test_db?useSSL=false&useUnicode=true&characterEncoding=utf8"
                ]
              }
            ]
          }
        },
        "writer": {
          "name": "kaiwudbwriter",
          "parameter": {
            "username": "kaiwudb_user",
            "password": "kaiwudb@123",
            "jdbcUrl": "jdbc:kaiwudb://127.0.0.1:26257/benchmark",
            "table": "cpu",  
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "id",
              "hostname",
              "region",
              "datacenter"
            ],
            "preSql": [
              ""
            ],
            "postSql": [
              ""
            ],
            "batchSize": 100
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
 }

示例 2:通过 where 参数限定数据同步范围。

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "username": "root",
            "password": "123456",
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "9001 as id",
              "'localhost' as hostname",
              "'beijing' as region",
              "'center' as datacenter"
            ],
            "connection": [
              {
                "table": [
                  "cpu"
                ],
                "jdbcUrl": [
                  "jdbc:mysql://127.0.0.1:3306/test_db?useSSL=false&useUnicode=true&characterEncoding=utf8"
                ]
              }
            ],
            "where": "id > 1000"
          }
        },
        "writer": {
          "name": "kaiwudbwriter",
          "parameter": {
            "username": "kaiwudb_user",
            "password": "kaiwudb@123",
            "jdbcUrl": "jdbc:kaiwudb://127.0.0.1:26257/benchmark",
            "table": "cpu",  
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "id",
              "hostname",
              "region",
              "datacenter"
            ],
            "writeMode": "INSERT",
            "preSql": [
              ""
            ],
            "postSql": [
              ""
            ],
            "batchSize": 100
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
 }
关系表同步到关系表

关系表与时序表的同步区别在于关系表数据写入支持通过 writeMode 指定 INSERTUPDATE 模式 。

以下示例假设已经在 KaiwuDB 数据库中创建关系库(order_db)和关系表(orders)。

/*创建关系库:order_db*/
create database order_db;

/*创建关系表:orders */
create table order_db.orders (order_id serial primary key, created_at timestamp, product_count int, total_amount float, customer_id int);

DataX 作业配置示例如下:

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "username": "mysql_user",
            "password": "123456",
            "column": [
              "order_id",
              "created_at",
              "product_count",
              "total_amount",
              "customer_id"
            ],
            "splitPk": "order_id",
            "connection": [
              {
                "table": [
                  "orders"
                ],
                "jdbcUrl": [
                  "jdbc:mysql://127.0.0.1:3306/ecommerce_db?useSSL=false&useUnicode=true&characterEncoding=utf8"
                ]
              }
            ]
          }
        },
        "writer": {
          "name": "kaiwudbwriter",
          "parameter": {
            "username": "kaiwudb_user",
            "password": "kaiwudb@123",
            "jdbcUrl": "jdbc:kaiwudb://127.0.0.1:26257/order_db",
            "table": "orders",  
            "column": [
              "order_id",
              "created_at",
              "product_count",
              "total_amount",
              "customer_id"
            ],
            "writeMode": "INSERT",
            "preSql": [
              "DELETE FROM orders WHERE total_amount = 0"
            ],
            "postSql": [
            ],
            "batchSize": 100
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
}

从 TDengine 同步到 KaiwuDB

KaiwuDB 支持通过 DataX 将 TDengine 的数据同步到 KaiwuDB 数据库的时序表。用户可以选择将 TDengine 的子表或普通表同步到 KaiwuDB 的时序表,也可以选择将 TDengine 超表下所有子表的数据同步到 KaiwuDB 的时序表。

以下示例假设已经在 TDengine 数据库中创建一张超表 st,两张子表 ct1ct2 和一张普通表 cpu

/* 源数据库benchmark */
CREATE DATABASE if not exists benchmark;

/* 超表st  */
CREATE TABLE benchmark.cpu (k_timestamp TIMESTAMPTZ NOT NULL, usage_user INT8 NOT NULL, usage_system INT8 NOT NULL, usage_idle INT8 NOT NULL, hostname VARCHAR NOT NULL, region VARCHAR NOT NULL, datacenter VARCHAR NOT NULL) tags (id INT8 NOT NULL);

/* 子表 ct1和ct2*/
CREATE TABLE benchmark.ct1 using st tags (1);
CREATE TABLE benchmark.ct2 using st tags (2);

/* 普通表 cpu*/
CREATE TABLE benchmark.cpu (k_timestamp TIMESTAMPTZ NOT NULL, usage_user INT8 NOT NULL, usage_system INT8 NOT NULL, usage_idle INT8 NOT NULL, id INT8 NOT NULL, hostname VARCHAR NOT NULL, region VARCHAR NOT NULL, datacenter VARCHAR NOT NULL);
普通表或子表同步到时序表

以下示例假设已经在 KaiwuDB 数据库中创建时序数据库(benchmark)和时序表(cpu),用于同步 TDengine 中的普通表 cpu

/*创建时序数据库:benchmark */
CREATE TS DATABASE benchmark;
/*创建时序表:cpu */
CREATE TABLE benchmark.cpu (k_timestamp TIMESTAMPTZ NOT NULL, usage_user INT8 NOT NULL, usage_system INT8 NOT NULL, usage_idle INT8 NOT NULL) TAGS (id INT8 NOT NULL, hostname VARCHAR NOT NULL, region VARCHAR NOT NULL, datacenter VARCHAR NOT NULL) PRIMARY TAGS (id);

DataX 作业配置示例如下:

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "tdengine30reader",
          "parameter": {
            "username": "root",
            "password": "taosdata",
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "9001 as id",
              "'localhost' as hostname",
              "'beijing' as region",
              "'center' as datacenter"
            ],
            "connection": [
              {
                "table": [
                  "cpu"
                ],
                "jdbcUrl": [
                  "jdbc:TAOS-RS://127.0.0.1:6041/test_db?timestampFormat=STRING"
                ]
              }
            ]
          }
        },
        "writer": {
          "name": "kaiwudbwriter",
          "parameter": {
            "username": "root",
            "password": "kaiwudb@123",
            "jdbcUrl": "jdbc:kaiwudb://127.0.0.1:26257/tdengine_kwdb",
            "table": "cpu", 
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "id",
              "hostname",
              "region",
              "datacenter"
            ],
            "batchSize": 100
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
}
超表同步到时序表

以下示例假设已经在 KaiwuDB 数据库中创建时序数据库(benchmark)和时序表(st),用于同步 TDengine 中的超表 st

/*创建时序数据库:benchmark */
create ts database benchmark;
/*创建时序表:st */
CREATE TABLE benchmark.st (k_timestamp TIMESTAMPTZ NOT NULL, usage_user INT8 NOT NULL, usage_system INT8 NOT NULL, usage_idle INT8 NOT NULL) TAGS (id INT8 NOT NULL, hostname VARCHAR NOT NULL, region VARCHAR NOT NULL, datacenter VARCHAR NOT NULL) PRIMARY TAGS (id);

DataX 作业配置示例如下:

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "tdengine30reader",
          "parameter": {
            "username": "root",
            "password": "taosdata",
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "9001 as id",
              "'localhost' as hostname",
              "'beijing' as region",
              "'center' as datacenter"
            ],
            "connection": [
              {
                "table": [
                  "st"
                ],
                "jdbcUrl": [
                  "jdbc:TAOS-RS://127.0.0.1:6041/test_db?timestampFormat=STRING"
                ]
              }
            ]
          }
        },
        "writer": {
          "name": "kaiwudbwriter",
          "parameter": {
            "username": "root",
            "password": "kaiwudb@123",
            "jdbcUrl": "jdbc:kaiwudb://127.0.0.1:26257/tdengine_kwdb",
            "table": "st",  
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "id",
              "hostname",
              "region",
              "datacenter"
            ],
            "batchSize": 100
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
}

配置 KaiwuDBReader

前提条件

配置步骤

  1. 将 KaiwuDB DataX 插件包上传到安装 DataX 的机器,解压缩插件包,将解压后的kaiwudbreader 文件夹复制到 datax/plugin/reader/ 目录下。

  2. 进入 DataX 的 datax/job/ 目录,创建 JSON 格式的 DataX 作业配置文件,定义源数据库和目标数据库的连接、读写的数据和相应的格式要求。

    说明

    不同数据源的作业配置文件要求不同,用户可以在 datax/datax/ 目录下运行 python ../bin/datax.py -r {YOUR_READER} -w {YOUR_WRITER} 命令查看源数据库和目标数据库的作业配置模板,参考模板定义所需的配置文件,例如 python ./bin/datax.py -r kaiwudbreader -w mysqlwriter

  3. datax/datax/job/ 目录下执行创建的 DataX 作业配置文件,启动 DataX,开启数据同步。

    示例:

    python ../bin/datax.py kaiwudb2mysql.json
    

配置示例

从 KaiwuDB 同步到 MySQL

以下示例假设已经在 KaiwuDB 数据库中创建时序数据库(benchmark)和时序表(cpu)。

/* 创建时序数据库:benchmark */
CREATE TS DATABASE benchmark;

/* 创建时序表:cpu */
CREATE TABLE benchmark.cpu (k_timestamp TIMESTAMPTZ NOT NULL, usage_user INT8 NOT NULL, usage_system INT8 NOT NULL, usage_idle INT8 NOT NULL) TAGS (id INT8 NOT NULL, hostname VARCHAR NOT NULL, region VARCHAR NOT NULL, datacenter VARCHAR NOT NULL) PRIMARY TAGS (id);

DataX 作业配置示例如下:

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "kaiwudbreader",
          "parameter": {
            "username": "test",
            "password": "<password>",
            "jdbcUrl": "jdbc:kaiwudb://127.0.0.1:26257/benchmark",
            "table": "cpu",  
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "id",
              "hostname",
              "region",
              "datacenter"
            ],
            "tsColumn": "k_timestamp",
            "beginTime": "2024-05-01 10:00:000",
            "endTime": "2024-05-02 10:00:000",
          }
        },
        "writer": {
          "name": "mysqlwriter",
          "parameter": {
            "writeMode": "insert",
            "username": "root",
            "password": "123456",
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "id",
              "hostname",
              "region",
              "datacenter"
            ],
            "preSql": [
              ""
            ],
            "connection": [
              {
                "table": [
                  "cpu"
                ],
                "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/benchmark?useSSL=false&useUnicode=true&characterEncoding=utf8"
              }
            ]
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
}

从 KaiwuDB 同步到 KaiwuDB

以下示例假设已经在源数据库创建时序数据库(source)和时序表(cpu),在目标数据库创建时序数据库(target)和时序表(cpu)。

/*创建时序数据库:source */
CREATE TS DATABASE source;
/*创建时序表:cpu */
CREATE TABLE source.cpu (k_timestamp TIMESTAMPTZ NOT NULL, usage_user INT8 NOT NULL, usage_system INT8 NOT NULL, usage_idle INT8 NOT NULL) TAGS (id INT8 NOT NULL, hostname VARCHAR NOT NULL, region VARCHAR NOT NULL, datacenter VARCHAR NOT NULL) PRIMARY TAGS (id);

/*创建时序数据库:target */
CREATE TS DATABASE target;
/*创建时序表:cpu */
CREATE TABLE target.cpu (k_timestamp TIMESTAMPTZ NOT NULL, usage_user INT8 NOT NULL, usage_system INT8 NOT NULL, usage_idle INT8 NOT NULL) TAGS (id INT8 NOT NULL, hostname VARCHAR NOT NULL, region VARCHAR NOT NULL, datacenter VARCHAR NOT NULL) PRIMARY TAGS (id);

DataX 作业配置示例如下:

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "kaiwudbreader",
          "parameter": {
            "username": "test",
            "password": "<password>",
            "jdbcUrl": "jdbc:kaiwudb://127.0.0.1:26257/source",
            "querySql": [
              "select k_timestamp, usage_user, usage_system, usage_idle, id, hostname, region, datacenter from cpu"
            ]
          }
        },
        "writer": {
          "name": "kaiwudbwriter",
          "parameter": {
            "username": "test",
            "password": "<password>",
            "jdbcUrl": "jdbc:kaiwudb://127.0.0.1:26257/target",
            "table": "cpu",
            "column": [
              "k_timestamp",
              "usage_user",
              "usage_system",
              "usage_idle",
              "id",
              "hostname",
              "region",
              "datacenter"
            ],
            "preSql": [
              ""
            ],
            "batchSize": 100
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 1
      }
    }
  }
}

参考信息

KaiwuDBWriter 参数说明

参数说明
nameKaiwuDBWriter 插件的名称,即 kaiwudbwriter
username连接 KaiwuDB 数据库的用户名。
password连接 KaiwuDB 数据库的密码。
jdbcUrlKaiwuDB 数据库的 JDBC 连接信息,更多详细信息,参见 JDBC 连接参数
table目标表名,目标表中必须包含所有待写入的列。
column目标表的列。列的顺序和数量需要与 Reader 中 columnquerySql 中定义的列顺序和数量一致。
writeMode可选参数,指定数据写入模式,支持 INSERTUPDATE。默认值为 INSERT,表示使用 INSERT 语句插入数据。如果设置为 UPDATE ,则使用 UPSERT 语句写入数据。注意: 该参数仅在同步关系数据时生效。
preSql可选参数,数据同步前在 KaiwuDB 数据库执行的 SQL 语句,可用于数据准备、数据校验、环境准备和其他预处理工作。
postSql可选参数,数据同步后在 KaiwuDB 数据库执行的 SQL 语句,可用于数据清理、数据校验、环境恢复和其它后续处理工作。
batchSize可选参数,定义批量写入的数据条数。默认值为 1

KaiwuDBReader 参数说明

参数说明
nameKaiwuDBReader 插件名称,即kaiwudbreader
username连接 KaiwuDB 数据库的用户名。
password连接 KaiwuDB 数据库的密码。
jdbcUrlKaiwuDB 数据库的 JDBC 连接信息。 更多详细信息,参见 JDBC 连接参数
table读取数据的目标表,目前只支持单表。如果已配置 querySql 参数,则无需设置此参数。
column读取目标表的列。 如果已配置 querySql 参数,则无需设置此参数。
where可选参数,与 tablecolumn等参数共同使用,用于限定同步数据的范围。具体配置示例,可参见关系表同步到时序表配置示例。如果已配置 querySql 参数,则无需设置此参数。
beginDateTime可选参数,指定起始数据读取时间,需与 tablecolumn 等参数同用。如果已配置 querySql 参数,则无需设置此参数。
endDateTime可选参数,指定终止数据读取时间,需与 tablecolumn 等参数同用,且 endDateTime 的值必须大于 beginDateTime 。如果已配置 querySql 参数,则无需设置此参数。
splitIntervalS可选参数,设置数据切分的时间间隔(单位:秒)。默认值为 60 秒。 建议根据待迁移的数据量设置,拆分后的单任务数据量在 10 万左右。如果已配置 querySql 参数,则无需设置此参数。
tsColumn指定用于时间筛选的时间戳列,如果已配置 querySql 参数,则无需设置此参数。
querySql可选参数,自定义 SQL 查询。在某些业务场景中,where 配置项可能不足以描述复杂的筛选条件。此时可通过配置 querySql 自定义查询 SQL。配置 querySql 后,KaiwuDBReader 会忽略以下配置项:tablecolumnwheretsColumnbeginDateTimeendDateTimesplitIntervalS,直接使用 querySql 的内容进行数据筛选。例如,需要通过多表 join 同步数据时,可以使用类似于 SELECT a, b FROM table_a JOIN table_b ON table_a.id = table_b.id 的 SQL 语句。