【KWDB 2025 创作者计划】_MySQL整库迁移至KaiwuDB

迁移需求

将MySQL中dataexchange库迁移到KaiwuDB中,源库和目标库详细信息如下:

OS version

DB version

ip addr

端口

数据量大小

源库

Centos7.9 x86_64

MySQL8.0.35

192.168.40.122

2214

5.77MB

目标库

KylinV10SP32403

KaiwuDB2.2.0

192.168.40.115

26257

-

迁移概述

DataXopen in new window 是一款广泛使用的离线数据同步工具。KaiwuDB 基于 DataX 开发了数据库迁移工具 KaiwuDB DataX Utils,实现 KaiwuDB(2.0.3 及以上版本)与 MySQL、TDengine、MongoDB、InfluxDB、OpenTSDB、Oracle、PostgreSQL、ClickHouse、KaiwuDB(1.2.x)、KaiwuDB(2.x)等数据库的离线数据同步。

用户通过配置文件设置源数据库和目标数据库的连接、数据迁移等信息。KaiwuDB DataX Utils 自动校验、统计迁移数据并输出迁移报告。在迁移过程中,用户可以查看整体的数据迁移进度。

支持的迁移形式

KaiwuDB DataX Utils 支持以下数据迁移形式:

  • 元数据迁移:无需在目标数据库创建待迁移的表,KaiwuDB DataX Utils 将自动读取源数据库的表结构信息,生成相应的建表语句,并创建符合目标数据库要求的表结构。
  • 元数据和业务数据迁移:在迁移过程中,除了自动创建目标数据库中的表结构,KaiwuDB DataX Utils 还会将源数据库中的业务数据迁移到目标数据库中。
  • 业务数据迁移:用户在目标数据库创建好表结构后,以单表、多表、单库和多库的形式对表内的业务数据进行迁移,其中:
  • 以表的形式迁移数据时,支持全量数据迁移和增量数据迁移。
  • 以库的形式迁移目前只支持将 MySQL 数据迁移到 KaiwuDB 的关系库。迁移时,源数据库与目标数据库必须一一对应。

下表列出了 KaiwuDB 支持迁移的异构源数据库和数据迁移方式。

源数据库

目标数据库

元数据

元数据 + 业务数据

业务数据

MySQL

KaiwuDB 关系库

表、库

表、库

表、库

KaiwuDB 时序库

表、库

PostgreSQL

KaiwuDB 关系库

表、库

KaiwuDB 时序库

表、库

TDengine

KaiwuDB 时序库

表、库

InfluxDB

KaiwuDB 时序库

表、库

MongoDB

KaiwuDB 关系库

-

-

Oracle

KaiwuDB 关系库

-

-

OpenTSDB

KaiwuDB 时序库

-

-

ClickHouse

KaiwuDB 关系库

-

-

说明

默认情况下,KaiwuDB 1.2.x 允许重复写入数据且不进行去重。KaiwuDB 2.x 对带有相同时间戳的数据整行去重,后写入的数据覆盖已存在的带有相同时间戳的数据。当将数据从 KaiwuDB 1.2.x 迁移到 KaiwuDB 2.x 时,如需保留源数据库中带有相同时间戳的数据,用户可以在目标数据库上运行 SET CLUSTER SETTING ts.dedup.rule = keep; 命令,允许写入带有相同时间戳的数据。keep 取值只适用于 KaiwuDB 2.x 单机部署模式。

数据类型映射

KaiwuDB DataX Utils 支持 DataX 的数据类型。DataX 数据类型与 KaiwuDB 数据类型的映射关系如下表所示:

DataX 数据类型

KaiwuDB 数据类型

INT

TINYINT、SMALLINT、INT

LONG

TINYINT、SMALLINT、INT、BIGINT、TIMESTAMP、TIMESTAMPTZ

DOUBLE

FLOAT、REAL、DOUBLE、DECIMAL

BOOL

BOOL、BIT

DATE

DATE、TIME、TIMESTAMP、TIMESTAMPTZ

BYTES

BYTES、VARBYTES

STRING

CHAR、NCHAR、VARCHAR、NVARCHAR、TIMESTAMP、TIMESTAMPTZ

迁移前准备工作

安装迁移工具

需是Linux 系统环境

安装 openJDK

默认已安装,查看openJDK版本,需1.8 及以上版本, 推荐使用 1.8 版本

[root@localhost ~]# java -version
openjdk version "1.8.0_402"
OpenJDK Runtime Environment Bisheng (build 1.8.0_402-b06)
OpenJDK 64-Bit Server VM Bisheng (build 25.402-b06, mixed mode)

参考链接:OpenJDK: Download and install

安装 Python

默认已安装,查看python版本,需2.x 或 3.x版本

[root@localhost ~]# python -V
Python 2.7.18

Python下载链接:Download Python | Python.org

安装 Maven

查看Maven版本,需3.6 及以上版本

tar -xvf apache-maven-3.9.9-bin.tar.gz -C /usr/local/

echo "PATH=$PATH:/usr/local/apache-maven-3.9.9/bin"  >> /etc/profile
source /etc/profile

mvn -version 或 mvn -v

参考链接:Installation – Maven

Maven下载链接:Download Apache Maven – Maven

安装 DataX 3.0

DataX3.0介绍

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。

DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。

下载并解压

下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz

下载后解压至本地某个目录,进入bin目录,即可运行同步作业

mkdir -p /opt/datax

tar -xvf datax.tar.gz -C /opt/datax

echo "$PATH=$PATH:/opt/datax/datax/bin" >> /etc/profile
source /etc/profile

参考链接:userGuid.md · Gitee 极速下载/alibaba datax - Gitee.com

下载KaiwuDB_datax插件

下载地址:https://gitee.com/kwdb/kwdb/releases/tag/V2.2.0

收集源库信息

show create database `dataexchange`;
+--------------+----------------------------------------------------------------------------------------------------------------------------------------+
| Database     | Create Database |
+--------------+----------------------------------------------------------------------------------------------------------------------------------------+
| dataexchange | CREATE DATABASE `dataexchange` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+--------------+----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

root@localhost :mysql 10:52:33>SELECT * FROM INFORMATION_SCHEMA.SCHEMATA;
+--------------+--------------------+----------------------------+------------------------+----------+--------------------+
| CATALOG_NAME | SCHEMA_NAME        | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH | DEFAULT_ENCRYPTION |
+--------------+--------------------+----------------------------+------------------------+----------+--------------------+
| def          | mysql              | utf8mb4                    | utf8mb4_general_ci     |     NULL | NO                 |
| def          | information_schema | utf8mb3                    | utf8mb3_general_ci     |     NULL | NO                 |
| def          | performance_schema | utf8mb4                    | utf8mb4_0900_ai_ci     |     NULL | NO                 |
| def          | sys                | utf8mb4                    | utf8mb4_0900_ai_ci     |     NULL | NO                 |
| def          | dataexchange       | utf8mb4                    | utf8mb4_general_ci     |     NULL | NO                 |
+--------------+--------------------+----------------------------+------------------------+----------+--------------------+
5 rows in set (0.00 sec)

SELECT * FROM db;
Host	Db	User	Select_priv	Insert_priv	Update_priv	Delete_priv	Create_priv	Drop_priv	Grant_priv	References_priv	Index_priv	Alter_priv	Create_tmp_table_priv	Lock_tables_priv	Create_view_priv	Show_view_priv	Create_routine_priv	Alter_routine_priv	Execute_priv	Event_priv	Trigger_priv
%	dataexchange	root	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y

--查看dataexchange库容量大小
select 
table_schema as '数据库',
sum(table_rows) as '记录数',
sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',
sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'
from information_schema.tables
where table_schema='dataexchange';

+--------------+-----------+------------------+------------------+
| 数据库       | 记录数    | 数据容量(MB)     | 索引容量(MB)     |
+--------------+-----------+------------------+------------------+
| dataexchange |     55578 |             5.09 |             0.67 |
+--------------+-----------+------------------+------------------+
1 row in set (0.00 sec)

目标库创建数据库

--root用户连接 KaiwuDB
kwbase sql --insecure --host=192.168.40.115

--创建数据库
create database dataexchange;
  • 部署环境
  • 安装 openJDKopen in new window(1.8 及以上版本, 推荐使用 1.8 版本)。
  • 安装 Pythonopen in new window(2.x 或 3.x)。
  • 安装 Mavenopen in new window(3.6 及以上版本)。
  • 安装 DataX 3.0open in new window。
  • 工具
  • 获取 KaiwuDB 数据库迁移工具 KaiwuDB DataX Utils 的安装包。
  • 获取 KaiwuDB DataX 插件压缩包。
  • 获取待迁移数据库的 DataX 插件压缩包。

说明

  • DataX 安装包中已包含几乎所有已适配数据库的数据读写插件。如果在 DataX 安装包中未找到所需的插件,或版本不兼容,建议从源数据库的官方网站获取适配插件。
  • 将 InfluxDB 的元数据迁移到 KaiwuDB 时,需要使用 KaiwuDB 适配后的 InfluxDB reader 插件。
  • 数据库及权限设置
  • 安装并启动源数据库和目标数据库。
  • 创建需要读取和写入数据的数据库和数据表。

说明

  • 如果目标数据库是 KaiwuDB 或 TDengine,用户可以在配置文件中通过 preSql[] 参数创建待写入的数据表。
  • 如果源数据库是 MySQL、PostgreSQL、TDengine 或 InfluxDB 且目标数据库是 KaiwuDB,用户可以使用迁移工具迁移表结构数据,无需提前创建目标表。
  • 用户拥有源数据库和目标数据库的操作权限,包括数据库的创建权限、表数据的读取和写入权限。

MySQL 迁移到 KaiwuDB过程

上传并解压KaiwuDB DataX 插件包

解压缩 KaiwuDB DataX 插件包,将解压后的 kaiwudbwriter 复制到 datax/plugin/writer 目录。

unzip KaiwuDB_datax-2.2.0.zip 
cp -r kaiwudbwriter /opt/datax/datax/plugin/writer/

创建 .yml 格式的迁移配置文件

创建 .yml 格式的迁移配置文件,配置元数据、源数据库和目标数据库。有关配置参数的详细信息,参见配置参数

cat mysql2kaiwudb.yml
metadata:
  enable: true               # 启用元数据迁移
  engine-type: RELATIONAL    # 引擎类型为关系引擎
  auto-ddl: true             # 自动创建表
  primary-key: true          # 启用主键迁移
  constraint: true           # 启用约束迁移
  comment: true              # 启用注释迁移
  index: true                # 启用索引迁移
  view: true                 # 启用视图迁移
data:
  enable: true               # 启用业务数据迁移
  batchSize: 1000            # 每批次迁移 1000 条数据
  setting:
    speed:
      channel: 1             # 设置通道数为 1
    errorLimit:
      percentage: 0.02       # 允许错误数据的比例为 2%
  core:
    transport:
      channel:
        speed:
          byte: 1048576      # 每个通道的传输速率为 1 MB
          record: 1000       # 每个通道每批次传输 1000 条记录
source:
  type: MYSQL                # 源数据库类型是 MySQL
  url: jdbc:mysql://192.168.40.122:2214/dataexchange?useSSL=false&useUnicode=true&characterEncoding=utf8  # MySQL 连接 URL
  username: root       # MySQL 数据库用户名
  password: mysql       # MySQL 数据库密码
  databases:
    - name: dataexchange    # 源数据库名
target:
  type: KAIWUDB              # 目标数据库是 KaiwuDB
  url: jdbc:kaiwudb://192.168.40.115:26257/dataexchange  # KaiwuDB 连接 URL
  username: root       # KaiwuDB 数据库用户名
  password: 61608Hhd820.       # KaiwuDB 数据库密码
  databases:
    - name: dataexchange    # 目标数据库名

开始迁移表元数据和业务数据

在 kaiwudb-datax-utils-2.2.0.jar 所在目录,执行以下命令,开始迁移表元数据和业务数据。有关迁移命令支持的所有参数,参见迁移命令参数

注意:默认会迁移到public模式下。

nohup java -jar -DyamlPath=/opt/datax/mysql2kaiwudb.yml -DdataxPath=/opt/datax/datax -Dpython=python kaiwudb-datax-utils-2.2.0.jar &

查看迁移过程日志:

[root@localhost datax]# tail -300f nohup.out
2025-04-09 14:34:59 INFO  c.k.migration.KaiwuDBApplication - Initialize heterogeneous database migration tool.
2025-04-09 14:35:00 INFO  c.k.migration.utils.YamlParseHelper - config file: /opt/datax/mysql2kaiwudb.yml
2025-04-09 14:35:01 INFO  c.k.m.s.impl.MigrationServiceImpl - The source database dataexchange structure definition is complete.
2025-04-09 14:35:01 INFO  c.k.m.s.impl.MigrationServiceImpl - Target database table column type conversion is complete.
2025-04-09 14:35:12 INFO  c.k.migration.utils.SqlFileHelper - The SQL for data structure migration is successfully generated. File path: [/opt/datax/sql/MYSQL2KAIWUDB_20250409143512330.sql]
2025-04-09 14:35:12 INFO  c.k.m.s.impl.MigrationServiceImpl - Target database structure construct is complete.
2025-04-09 14:35:25 INFO  c.kaiwudb.migration.utils.CmdHelper - 执行命令成功: [python, /opt/datax/datax/bin/datax.py, /opt/datax/datax/job/MYSQL2KAIWUDB_19620197983539.json]
......
2025-04-09 14:49:17 INFO  c.kaiwudb.migration.utils.CmdHelper - 执行命令成功: [python, /opt/datax/datax/bin/datax.py, /opt/datax/datax/job/MYSQL2KAIWUDB_19620292281809.json]
2025-04-09 14:49:19 INFO  c.k.m.s.impl.MigrationServiceImpl - 生成DataX迁移脚本,并执行脚本完成数据迁移同步,迁移报告路径为:/opt/datax/datax/log/迁移报告_20250409144917000877.pdf.

最次迁移结束。

注意事项

源数据库是 MySQL、PostgreSQL、TDengine 或 InfluxDB 且目标数据库是 KaiwuDB,用户可以使用迁移工具迁移表结构数据,无需提前创建目标表

目标数据库的库名必须与源数据库的库名相同。

如果登录 KaiwuDB 数据库的用户为 admin 用户或 admin 角色的成员,则无需提前建库,KaiwuDB 将自动创建与源数据库同名的数据库。

迁移任务目录:-dataxPath启动参数指定目录下的job目录,以.json为后缀

迁移日志路径:-dataxPath启动参数指定目录下的log目录,以日期生成独立目录

迁移报告路径:-dataxPath启动参数指定,该迁移案例中迁移报告文件路径/opt/datax/datax/log/迁移报告_20250409144917000877.pdf

如果要避免内存溢出或增加datax内存提高迁移速度,可更改conf中的core.json中的jvm参数

{
    "entry": {
        "jvm": "-Xms1G -Xmx1G",
        "environment": {}
    },

扩展

配置文件参数

元数据 (metadata)

参数

说明

enable

可选字段,控制是否迁移元数据,设置为 true时迁移元数据;

设置为 false时不迁移元数据。默认值为 false

engine-type

指定目的端引擎类型。支持 RELATIONAL(关系引擎)或 TIMESERIES

(时序引擎)。元数据迁移时为必选字段。

auto-ddl

控制是否自动执行 DDL 建表语句,设置为 true 时,KaiwuDB 根据元数据自动在目标数据库中创建表,并将转换后的建表语句打印到指定 SQL 文件中。文件存储路径通过 -dataxPath启动参数指定。设置为 false时,KaiwuDB 将输出转换后的建表语句,不执行建表操作。元数据迁移时为必选字段。

primary-key

控制生成的 DDL 语句中是否包含主键创建语句。 设置为 true时包含。设置为 false时不包含。该参数只适用于关系数据的迁移。

constraint

控制生成的 DDL 语句中是否包含约束创建语句。 设置为 true 时包含。设置为 false时不包含。该参数只适用于关系数据的迁移。

comment

控制生成的 DDL 语句中是否包含注释创建语句。 设置为 true时包含。设置为 false时不包含。

index

控制生成的 DDL 语句中是否包含索引创建语句。 设置为 true时包含。设置为 false时不包含。

view

控制生成的 DDL 语句中是否包含视图创建语句。 设置为 true时包含。设置为 false时不包含。该参数只适用于关系数据的迁移。

业务数据 (data)

参数

说明

enable

可选字段,控制是否迁移业务数据,设置为 true

时迁移业务数据。设置为 false时不迁移业务数据。默认值为 false

readTimeout

可选字段。源端数据库为 InfluxDB 时,指定读取数据的超时时间。默认值为 10,表示 10 秒。支持配置大于 10 的数值。

fetchSize

可选字段。单次读取数据的条数,默认值为 1000

batchSize

可选字段。批量写入的数据条数。默认值为 1000

ignoreTagsUnmatched

可选字段,源端数据库为 TDengine 时,控制是否忽略不匹配的标签,支持设置为 true(忽略)或 false(不忽略)。

setting.speed.channel

可选字段。迁移通道的数量。

setting.speed.byte

可选字段。迁移通道速度。如果单通道速度为 1 MB,设置为 1048576时, 表示一个通道。

setting.speed.record

可选字段。传输的记录数量。

setting.errorLimit.percentage

可选字段。出错限制百分比。设置为 1时,表示 100%。

setting.errorLimit.record

可选字段。发生错误的记录数量,定义错误发生时抛出异常的时机。设置为 0 时,表示报错后立即抛出异常,任务失败。

setting.errorLimit.byte

可选字段。读写数据时允许出现的错误所占的字节数的上限。

core.transport.channel.speed.byte

可选字段。通道速度。

core.transport.channel.speed.record

可选字段。读取的记录数量。

源数据库(source)

参数

说明

type

必选字段。指定源端数据库类型,支持 KAIWUDB

MYSQL

ORACLE

POSTGRESQL

CLICKHOUSE

TDENGINE3X

TDENGINE2X

INFLUXDB2X

INFLUXDB1X

MONGODB

和 OPENTSDB)。

url

指定连接到源数据库的 URL。部分源数据库中,该参数用作 endpoint的值。 使用 url时,无需再指定 host和 port

host

指定源端数据库的 IP 地址。仅在未使用 url

参数时需要配置。

port

指定源端数据库的端口号。仅在未使用 url

参数时需要配置。

username

必选字段。源数据库的用户名,InfluxDB 2.X 中,该参数用作 org的值。

password

必选字段。源数据库的用户密码,密码不得为空,InfluxDB 2.X 中,该参数用作 token的值。

databases.name

源端数据库名称,大小写敏感,InfluxDB2.X 中会用作 bucket的值。

databases.tables.name

待读取数据的表名,例如 sensor_data

。指定后系统将只读取该表,未指定时,系统将读取数据库下的全部表数据。InfluxDB 中,该参数用作 measurement的值。MongoDB 中,该参数用作 collectionName的值。
以库的形式迁移数据时,无需填写该参数。以表的形式迁移数据时,该参数为必选字段。

databases.tables.column

待读取数据的表的列。可配置为使用逗号(,

)隔开的字符串或 Json 字符串。

databases.tables.querySql[]

自定义 SQL 查询语句集合。可使用 column

或 query_sql参数限定数据读取范围。如果同时设置 column和 query_sql,系统将优先使用 query_sql参数限定数据范围。
同步时序表时,数据列第一列必须为时间戳列。

databases.tables.splitPk

可选字段。自定义的切分主键。

databases.tables.where

可选字段。自定义的 where过滤条件,适用于增量数据迁移。

databases.tables.beginDateTime

指定数据读取起始时间,需与 tablecolumn等参数同用。源数据库为 KaiwuDB 或 InfluxDB 时为必选字段。如果已配置 querySql参数,则无需设置此参数。

databases.tables.endDateTime

指定数据读取终止时间,需与 tablecolumn等参数同用。源数据库为 KaiwuDB 或 InfluxDB 时为必选字段。如果已配置 querySql参数,则无需设置此参数。

databases.tables.splitIntervalS

可选字段。切分时间间隔。该参数只适用于 KaiwuDB 和 InfluxDB。

databases.tables.tsColumn

可选字段。指定时序表第一列(时间戳列),与 databases.tables.column

参数同效。源数据库为 KaiwuDB 时为必选字段。

databases.tables.mandatoryEncoding

可选字段。指定源端字符集类型,该参数只适用于 TDengine 。

databases.tables.query

可选字段。指定源端查询条件,该参数只适用于 MongoDB。

目标数据库(target)

下表列出目标数据库的相关配置参数。

参数

说明

type

必选字段。指定目标数据库类型,支持 KAIWUDB

KAIWUDB1X

MYSQL

ORACLE

POSTGRESQL

CLICKHOUSE

TDENGINE3X

TDENGINE2X

和 MONGODB)。

url

指定目标数据库的URL。使用 url时,无需再指定 host

和 port

host

指定目标数据库的 IP 地址。仅在未使用 url参数时需要配置。

port

指定目标数据库的端口号。仅在未使用 url参数时需要配置。

username

必选字段。目标数据库的用户名。

password

必选字段。目标数据库的用户密码。

databases.name

必选字段。目标数据库的名称,区分大小写。

databases.tables.name

待写入数据的表名。MongoDB 中,该参数用作 collectionName的值。
以库的形式迁移数据时,无需填写该参数。以表的形式迁移数据时,该参数为必选字段。

databases.tables.column

待写入数据的表的列,可以配置为使用逗号(,)隔开的字符串或 Json 字符串。写入的列名数量和顺序必须与读取的列名数量和顺序保持一致。
以库的形式迁移数据时,无需填写该参数。以表的形式迁移数据时,该参数为必选字段。

databases.tables.writeMode

可选字段。数据写入模式,支持 INSERTUPSERT

,默认为 INSERT

databases.tables.preSql[]

可选字段。写入数据前要执行的 SQL 语句。该参数只适用于 KaiwuDB 和 TDengine。

databases.tables.postSql[]

可选字段。写入数据后要执行的 SQL 语句。该参数只适用于 KaiwuDB 和 TDengine。

迁移命令参数

从 KaiwuDB 2.2.0 版本开始,迁移命令不再支持 arguments 参数设置。如果需要设置 JVM 参数以增加内存,可以通过修改 DataX 配置文件来实现。

参数

说明

yamlPath

必选字段,配置文件的路径。

dataxPath

DataX 文件夹的路径,迁移业务数据时为必选字段。

python

已安装的 Python 版本,迁移业务数据时为必选字段。
支持以下设置:
- Python 2.x:python
- Python 3.x:python3

示例

java -jar -DyamlPath=../datax/test/config.yml -DdataxPath=../datax -Dpython=python kaiwudb-datax-utils-2.2.0.jar

参考链接:https://www.kaiwudb.com/kaiwudb_docs/#/db-migration/migration-senarios/migrate-mysql-to-kaiwudb.html#%E5%8D%95%E5%BA%93%E8%BF%81%E7%A7%BB%E5%85%83%E6%95%B0%E6%8D%AE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董小姐yyds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值