从 MySQL 迁移到 KaiwuDB
KaiwuDB 支持以单表、多表、单库、多库的形式将数据从 MySQL 迁移到 KaiwuDB。本文档提供单表迁移、单库迁移和多库迁移的配置示例。有关多表迁移的配置示例,参见从 TDengine 迁移到 KaiwuDB。
单表迁移
前提条件
- 完成迁移准备。
- 在 MySQL 数据库中创建
sensor_data_db数据库和sensor_data表。 - 在 KaiwuDB 数据库中创建
tsdb时序数据库。
说明
从关系表向时序表迁移时,需要配置合适的列或者常量作为时序表的标签和主标签。
步骤
解压缩 KaiwuDB DataX 插件包,将解压后的 Reader 和 Writer 插件复制到 DataX 对应的插件目录下。例如,复制
kaiwudbwriter到datax/plugin/writer目录。创建配置文件(
.yml),配置源数据库和目标数据库的连接信息、数据表信息、迁移设置、核心信息参数。有关源数据库、目标数据库、迁移设置、核心信息的配置参数,参见配置参数。以下配置文件使用
where参数读取2024-01-01 00:00:00到2024-02-01 00:00:00期间的数据,并使用preSql参数在目标数据库中创建待写入数据的sensor_data时序表。source: pluginName: mysqlreader databases: - name: sensor_data_db url: jdbc:mysql://127.0.0.1:3306/sensor_data_db?useSSL=false&useUnicode=true&characterEncoding=utf8 username: root password: 12345678 tables: - name: sensor_data column: timestamp, sensor_id, temperature, humidity, 1 as tag1 where: timestamp >= '2024-01-01 00:00:00' and timestamp <= '2024-02-01 00:00:00' target: pluginName: kaiwudbwriter databases: - name: tsdb url: jdbc:kaiwudb://127.0.0.1:26257/tsdb username: admin password: Password@2024 tables: - name: sensor_data column: time, sensor_id, temperature, humidity, tag1 preSql: - "create table sensor_data (time TIMESTAMPTZ NOT NULL, sensor_id INT, temperature FLOAT, humidity FLOAT) tags (tag1 int not null) primary tags (tag1))" batchSize: 1000 setting: speed: channel: 1 errorLimit: percentage: 0.02 core: transport: channel: speed: byte: 1048576 record: 1000在
kaiwudb-datax-utils-1.2.2.jar所在目录,执行以下命令,开始迁移数据。java -jar -DyamlPath=<yml_path> -DdataxPath=<datax_path> -Dpython=<python> -Darguments=<arguments> kaiwudb-datax-utils-1.2.2.jar参数说明:
yamlPath:配置文件的路径。dataxPath:DataX文件夹的路径。python: 已安装的 Python 版本。- Python 2.X:
python - Python 3.X:
python3
- Python 2.X:
arguments:DataX 环境参数。支持配置以下参数:-j <jvm paramenters>或--jvm=<jvm paramenters>:配置必要的 JVM 参数。-m <job runtime mode>或--mode=<job runtime mode>:配置 DataX 作业运行模式,支持standalone(独立模式)、local(本地模式)、distribute(分布式模式)。默认为standalone(独立模式)。
单库迁移
前提条件
- 完成迁移准备。
- 在 MySQL 数据库中创建
metrics_db数据库和sensor_metrics、system_metrics表。 - 在 KaiwuDB 数据库中创建
metrics关系数据库和sensor_metrics、system_metrics关系表。
步骤
解压缩 KaiwuDB DataX 插件包,将解压后的 Reader 和 Writer 插件复制到 DataX 对应的插件目录下。例如,复制
kaiwudbwriter到datax/plugin/writer目录。创建配置文件(
.yml),配置源数据库和目标数据库的连接信息以及迁移设置参数。有关源数据库、目标数据库、迁移设置的配置参数,参见配置参数。source: pluginName: mysqlreader databases: - name: metrics_db url: jdbc:mysql://127.0.0.1:3306/metrics_db?useSSL=false&useUnicode=true&characterEncoding=utf8 username: root password: 123456 target: pluginName: kaiwudbwriter databases: - name: metrics url: jdbc:kaiwudb://127.0.0.1:26257/metrics username: test password: Password@2024 batchSize: 1000 setting: speed: channel: 1 errorLimit: percentage: 0.02在
kaiwudb-datax-utils-1.2.2.jar所在目录,执行以下命令,开始迁移数据。java -jar -DyamlPath=<yml_path> -DdataxPath=<datax_path> -Dpython=<python> -Darguments=<arguments> kaiwudb-datax-utils-1.2.2.jar
多库迁移
前提条件
- 完成迁移准备。
- 在 MySQL 数据库中创建
production_db和analytics_db数据库,以及对应的关系表。 - 在 KaiwuDB 数据库中创建
production_data和analytics_data关系数据库,以及对应的关系表。
步骤
解压缩 KaiwuDB DataX 插件包,将解压后的 Reader 和 Writer 插件复制到 DataX 对应的插件目录下。例如,复制
kaiwudbwriter到datax/plugin/writer目录。创建配置文件(
.yml),配置源数据库和目标数据库的连接信息以及迁移设置参数。有关源数据库、目标数据库、迁移设置的配置参数,参见配置参数。source: pluginName: mysqlreader databases: - name: production_db url: jdbc:mysql://127.0.0.1:3306/production_db?useSSL=false&useUnicode=true&characterEncoding=utf8 username: root password: 123456 - name: analytics_db url: jdbc:mysql://127.0.0.1:3306/analytics_db?useSSL=false&useUnicode=true&characterEncoding=utf8 username: root password: 123456 target: pluginName: kaiwudbwriter databases: - name: production_data url: jdbc:kaiwudb://127.0.0.1:26257/production_data username: test password: Password@2024 - name: analytics_data url: jdbc:kaiwudb://127.0.0.1:26257/analytics_data username: test password: Password@2024 batchSize: 1000 setting: speed: channel: 1 errorLimit: percentage: 0.02在
kaiwudb-datax-utils-1.2.2.jar所在目录,执行以下命令,开始迁移数据。java -jar -DyamlPath=<yml_path> -DdataxPath=<datax_path> -Dpython=<python> -Darguments=<arguments> kaiwudb-datax-utils-1.2.2.jar