首批通过分布式安全可靠测评,为关键业务系统打造
OBLOADER 概述
更新时间:2023-06-30 21:27:56
产品功能
OBLOADER 主要具备以下功能特性:
支持导入数据库对象定义的语句。
支持导入标准的 CSV, SQL, ORC, Parquet 格式的数据文件。
支持导入定长字节格式,字符串分隔格式以及DDL和DML混合的文件格式。
支持导入时配置数据预处理的控制规则以及文件与表之间的字段映射关系。
支持导入限速、防导爆、断点恢复和自动重试等特性。
支持指定自定义的日志目录、保存坏数据和冲突数据等特性。
支持将 OSS 云存储中的数据导入到 OceanBase 数据库。
支持导入生成列(Generated Column)作为分区键的数据。
支持全库导入时增加 truncate table 等风险操作的确认环节。
支持默认情况下启用 UNSAFE 对文件进行粗粒度切分,可以在运行脚本中修改
-Dfile.split=SAFE对文件进行精确切分。
注意事项
标准的 CSV 格式请参考 RFC 4180 规范,建议导入时严格遵从 RFC 4180 规范。
导入大量数据时,请在运行的脚本中修改 JAVA 虚拟机的内存参数。
命令行参数指定的对象名、数据文件名、规则文件名要求大小写一致。Oracle 默认大写,MySQL 默认小写。如果需要区分大小写,请将表名放入中括号内([ ])。例如:
--table '[test]'表示 test 表,文件名格式为 test.group.sequence.suffix;--table '[TEST]'表示 TEST 表,文件名格式为 TEST.group.sequence.suffix。导入的数据文件的命名规范是 table.group.sequence.suffix。
数据库对象存在依赖时,无法保证对象定义和数据按照依赖顺序导入。
无主键的表,暂不支持中断续传和数据替换。
OceanBase MySQL 1.4.79 使用
INSERT ... WHERE NOT EXISTS解决主键冲突时存在跨分区插入的错误。OceanBase MySQL 1.4.x 组合分区表 RANGE_COLUMNS + KEY 在虚拟路由视图中的元数据有缺陷。
当分区键是生成列时,数据文件中需要存在生成列的数据,否则请指定
--no-sys选项导入数据。OBLOADER 支持的文件格式如下:
- DDL 文件:文件中的内容仅包含 DDL 语句。
- CSV 文件:文件中的内容是符合 RFC 4180 规范的标准 CSV 格式。
- SQL 文件:文件中的内容仅包含
INSERT SQL语句, 数据不换行。 - ORC 文件:文件中的内容是标准的 Apache ORC 的格式。
- Parquet 文件:文件中的内容是标准的 Apache Parquet 的格式。
- MIX 文件:文件中的内容既包含 DDL 语句又包含 DML 语句。
- POS 文件:文件中的内容是以固定字节长度定义的格式。
- CUT 文件:文件中的内容是按照字符串进行分隔的格式。区别于 CSV 格式。
OceanBase 3.2.4.0 及之后版本使用 OBLOADER 前,请将系统配置项
open_cursors设置为较大的值,否则导入可能会出现错误。数据导入结束后,请将该系统配置项重置成初始值。例如:ALTER SYSTEM SET open_cursors = 65535;