首批通过分布式安全可靠测评,为关键业务系统打造
数据迁移和导入方案概述
更新时间:2026-06-11 08:14:22
本文介绍如何将外部数据迁移或导入到 OB Cloud 云数据库中。针对不同的数据来源,本文提供以下数据导入方案。
OB Cloud 官方方案
OB Cloud 提供的数据迁移和导入数据工具,专门大规模数据迁移设计。
标准 SQL 命令 LOAD DATA 和 INSERT SQL,便于操作,适合小规模数据导入。
CREATE EXTERNAL TABLE 实现外部数据文件的直接查询,增加分析灵活性。
第三方集成工具
Flink OceanBase Connector、DataX OceanBase Writer Plugin、Kafka 和 Canal 等。
本文将提供每种方案的最佳应用场景,以及如何根据数据文件格式和目标存储系统的特点来选择最适合的迁移方法。本文的目标是为您提供一个全面的迁移工具和方法框架,帮助您把数据迁移到 OB Cloud 云数据库,以供后续的业务分析和应用开发。
数据迁移
基本特性:
在线不停服迁移,业务应用无感知。
高性能的数据迁移,安全可靠。
一站式交互。
适用场景:
- 数据迁移适合大规模数据库到数据库的迁移。
使用参考:
- 关于数据迁移的详细介绍,参见 数据迁移使用文档。
评估和迁移流程
本节为您介绍通过 OB Cloud 云数据库控制台数据迁移页面进行数据迁移的操作流程。
(可选)进行兼容性评估。
开始迁移数据前,您可以通过创建兼容性评估任务,系统化分析您的数据库对象和 SQL 使用,获取兼容性评估报告。兼容性评估功能为您提供自动化的转化方案,降低上云的技术难度和改造成本。详情请参见 兼容性评估 模块的内容。
开始迁移数据。
您可以通过数据迁移功能一站式完成在线数据库搬迁,助力业务快速平滑切换。详情请参见 数据迁移 模块的内容。
(可选)进行性能评估。
完成数据迁移后,您可以在业务切换之前,进行较为周密的性能评估,使用业务负载进行流量回放,提前发现迁移后的性能风险。性能评估功能还会为您提供优化方案,降低业务风险。详情请参见 性能评估 模块的内容。
OBLOADER
基本特性:
支持从本地磁盘、NAS、HDFS、OSS、COS、OBS、Apache Hadoop、Aliyun OSS 和 AWS S3 导入数据库对象定义和表数据。
支持导入 mysqldump 导出的 INSERT SQL 格式的文件。
支持导入标准的 CSV、Insert SQL、Apache ORC 和 Apache Parquet 等格式的数据文件。
支持配置数据预处理的控制规则以及文件与表之间的字段映射关系。
支持导入限速、防导爆、断点恢复和错误自动重试。
支持指定自定义的日志目录,导入时可以保存坏数据和冲突数据。
支持导入工具自动对大文件进行切分且不占用额外的存储空间,无需人工切分文件。
支持对命令行中指定的敏感参数进行加密。包括:数据库的账号密码,云存储的账号密钥。
OBLOADER 提供如下写入模式:
Client 模式,支持 JDBC 或者旁路导入(DIRECT)将数据插入 OceanBase 数据库。
Server 模式,集成 LOAD DATA 将数据导入 OceanBase 数据库。
适用场景:
- OBLOADER 适合较大规模数据导入。
使用参考:
- 关于 OBLOADER 的详细介绍,参见 OBLOADER 使用文档。
LOAD DATA
LOAD DATA LOCAL
基本特性:
适用于本地文件导入 OB Cloud 云数据库。将本地文件以网络流的方式传输到 OB Cloud 云数据库并插入。
适用于小数据量场景。
仅支持一次传输一个文件。
目前支持 CSV、SQL 和 Parquet 文件单导入。
适用场景:
- LOAD DATA LOCAL 适合小规模数据导入。
使用参考:
- 关于 LOAD DATA LOCAL 的使用方法,参见 使用 LOAD DATA 语句导入数据。
LOAD DATA FROM OSS
基本特性:
将 OSS 文件直接导入到 OB Cloud 云数据库中。
可支持一次导入多个 OSS 文件。
目前仅支持 CSV 文件导入。
适用场景:
- LOAD DATA FROM OSS 适合大规模数据导入。
使用参考:
- 关于 LOAD DATA FROM OSS 的操作指导,参见 LOAD DATA(Oracle 模式) 和 LOAD DATA(MySQL 模式)。
INSERT SQL
适用场景:
INSERT INTO VALUES 适合向内部表写入少量数据。
INSERT INTO SELECT FROM <table_name> 适合向目标表写入另外一张表(内部表或外部表)的查询结果,即表与表之间的迁移。
INSERT /*+ [APPEND |direct(need_sort,max_error,'full')] enable_parallel_dml parallel(N) */ INTO table_name select_sentence 旁路导入适合全量和增量旁路导入。
使用参考:
- 关于 INSERT SQL 的使用指导,参见 INSERT(Oracle 模式) 和 INSERT(MySQL 模式)。
CREATE EXTERNAL TABLE
适用场景:
- 外表是数据库管理系统中的一项关键功能,通常数据库中的表存放于数据库的存储空间中,而外表的数据存储于外部存储服务中。
使用参考:
- 关于外表的使用指导,参见 外表(Oracle 模式)和 外表(MySQL 模式)。
Flink
适用场景:
- Flink OceanBase Connector 适合从 Flink 实时导入数据。
使用参考:
Canal
适用场景:
- 适合从 Canal 实时导入数据。
使用参考:
Kafka
适用场景:
- 适合从 MySQL、Oracle 和 PostgreSQL 等数据库向 OceanBase 数据库迁移或同步数据。
使用参考:
DataX
使用场景:
- DataX 适用于在各种数据源之间同步数据,包括 MySQL 和 Oracle 等关系型数据库,HDFS 和 Hive。DataX 允许您一次迁移一个表的数据,不限制数据量。它每秒最多可以迁移 60 MB 的数据。
参考资料:
CloudCanal
使用场景:
- CloudCanal 适合从 MySQL、Oracle 和 PostgreSQL 数据库向 OceanBase 云迁移或同步数据。
参考资料:
SeaTunnel
适用场景:
- 适合从 MySQL、Oracle 和 PostgreSQL 等数据库向 OceanBase 数据库迁移或同步数据。
使用参考:
导入方案选择
本节介绍常见数据源支持的导入方案,旨在帮助您结合实际场景快速选择合适的导入方案。
对象存储
将云厂商的对象存储中的数据导入到 OB Cloud 云数据库的方案见下表。
| 数据源 | 支持的导入方案 |
|---|---|
| Alibaba Cloud OSS | |
| Tencent Cloud COS | |
| Huawei Cloud OBS | |
| Amazon S3 |
|
| Azure Blob Storage | 将数据下载到本地或者可访问的服务器上,再使用 MySQL 命令行工具或 SQL 管理工具导入到 OceanBase 数据库,或者编写脚本,使用 MySQL 的连接库执行 SQL 语句并执行批量插入。 |
| Google Cloud GCS | 将数据下载到本地或者可访问的服务器上,再使用 MySQL 命令行工具或 SQL 管理工具导入到 OceanBase 数据库,或者编写脚本,使用 MySQL 的连接库执行 SQL 语句并执行批量插入。 |
文件系统
将本地文件系统及分布式文件系统中的数据导入到 OceanBase 数据库的方案见下表。
| 数据源 | 支持的导入方案 |
|---|---|
| Local File System (包括 NFS 和 NAS) | |
| 分布式文件系统 HDFS |
|
流式系统
将流式系统中的数据导入到 OceanBase 数据库的方案见下表。
| 数据源 | 支持的导入方案 |
|---|---|
| Flink | |
| Canal | |
| Spark | 使用 JDBC 接口连接到 OB Cloud 云数据库(参考文档) |
数据库
将数据库中的数据导入到 OceanBase 数据库的方案见下表。
| 数据源 | 支持的导入方案 |
|---|---|
| MySQL |
|
| Oracle |
|
| PostgreSQL |
|
| TiDB |
|
| SQLServer |
|
| StarRocks | 把 StarRocks 中的数据 dump 出来,再使用 OBLOADER 或者 LOAD DATA。 |
| Doris | 把 Doris 中的数据 dump 出来,再使用 OBLOADER 或者 LOAD DATA。 |
| HBase |
|
| MaxCompute | 把 MaxCompute 中的数据 dump 出来,再使用 OBLOADER 或者 LOAD DATA。 |
| Hologres | 把 Hologres 中的数据 dump 出来,再使用 OBLOADER 或者 LOAD DATA。 |