首批通过分布式安全可靠测评,为关键业务系统打造
命令行选项
更新时间:2026-04-13 14:00:52
OBLOADER 通过命令行选项指定导入所需要的信息,更多选项描述和使用示例,请参考 选项列表 与 使用示例。
选项介绍
OBLOADER 参数设计采用 Unix 和 GNU 两种风格方式。
Unix 风格的参数前加单破折线,选项为单字符,例如:
ps -e;该风格的选项和参数之间可以不加空格,例如:-p******。GNU 风格的长参数前加双破折线,选项为单字符或者字符串,例如:
ps --version;要求选项和参数之间有空格,例如:--table 'test'。
选项列表
| 选项 | 是否必选 | 说明 | 引入版本 | 是否废弃 |
|---|---|---|---|---|
| -h(--host) | 是 | 连接 ODP 或者 OceanBase 物理节点的主机地址。 | ||
| -P(--port) | 是 | 连接 ODP 或者 OceanBase 物理节点的主机端口。 | ||
| --rpc-port | 否 | 连接 OBServer RPC 端口。 | 4.2.5 | |
| --direct | 否 | 指定旁路导入模式。 | 4.2.5 | |
| --parallel | 否 | 标识旁路导入时加载数据的并行度。 | 4.2.6 | |
| -c(--cluster) | 否 | 数据库的集群名。 | ||
| -t(--tenant) | 否 | 集群的租户名。 | ||
| -u(--user) | 是 | 数据库用户名。 | ||
| -p(--password) | 否 | 数据库密码。 | ||
| -D(--database) | 否 | 数据库名。 | ||
| -f(--file-path) | 是 | 数据文件所在的目录或者数据文件绝对路径。 | ||
| --sys-user | 否 | 指定 sys 租户下用户名。 | ||
| --sys-password | 否 | 指定 sys 租户下特定用户的密码。 | ||
| --public-cloud | 否 | 指定云数据库 OceanBase 运行环境。 | ||
| --file-suffix | 否 | 指定数据文件的后缀名。 | ||
| --file-encoding | 否 | 指定文件编码。(区别于数据库编码) | ||
| --ctl-path | 否 | 指定控制文件所在的目录。 | ||
| --log-path | 否 | 指定日志文件的输出目录。 | ||
| --ddl | 否 | 导入 DDL 文件。 | ||
| --csv | 否 | 导入 CSV 格式的数据文件。(推荐) | ||
| --sql | 否 | 导入 SQL 格式的数据文件。(区别于 DDL 文件) | ||
| --orc | 否 | 导入 ORC 格式的数据文件。 | 4.0.0 | |
| --par | 否 | 导入 Parquet 格式的数据文件。 | 4.0.0 | |
| --mix | 否 | 导入定义与数据的混合文件。 | ||
| --pos | 否 | 导入 POS 格式的数据文件。 | ||
| --cut | 否 | 导入 CUT 格式的数据文件。 | ||
| --all | 否 | 导入所有已支持的数据库对象定义和表数据。 | ||
| --table-group | 否 | 导入 表组 定义。 | 3.1.0 | |
| --table | 否 | 导入 表 定义或者 表 数据。 | ||
| --view | 否 | 导入 视图 定义。 | ||
| --trigger | 否 | 导入 触发器 定义。 | ||
| --sequence | 否 | 导入 序列 定义。 | ||
| --synonym | 否 | 导入 同义词 定义。 | ||
| --type | 否 | 导入 类型 定义。 | 4.0.0 | |
| --type-body | 否 | 导入 类型体 定义。 | ||
| --package | 否 | 导入 程序包 定义。 | ||
| --package-body | 否 | 导入 程序包包体 定义。 | ||
| --function | 否 | 导入 函数 定义。 | ||
| --procedure | 否 | 导入 存储过程 定义。 | ||
| --replace-object | 否 | 标识替换已存在的对象定义。(不推荐使用,建议手动替换) | ||
| --rw | 否 | 指定数据文件解析线程的比例。 | ||
| --slow | 否 | 指定触发慢速导入的阈值。 | ||
| --pause | 否 | 指定触发停止导入的阈值。 | ||
| --batch | 否 | 指定每一批事务的记录数。 | ||
| --thread | 否 | 指定导入任务的并发数。 | ||
| --block-size | 否 | 指定文件的分隔大小。 | ||
| --retry | 否 | 从最近一次的保存点重新导入。 | ||
| --external-data | 否 | 标识数据文件来自第三方工具导出,跳过元数据文件检查。 | ||
| --max-tps | 否 | 指定导入的限速阈值。默认单位:行数/秒。 | ||
| --max-wait-timeout | 否 | 指定等待数据库合并的最长超时时间。 | ||
| --nls-date-format | 否 | 设置会话级别的日期时间格式。(仅支持 OceanBase Oracle 模式) | ||
| --nls-timestamp-format | 否 | 设置会话级别的时间戳格式。(仅支持 OceanBase Oracle 模式) | ||
| --nls-timestamp-tz-format | 否 | 设置会话级别带时区的时间戳格式。(仅支持 OceanBase Oracle 模式) | ||
| --trail-delimiter | 否 | 删除行尾最后一个列分隔符。 | ||
| --with-trim | 否 | 删除数据左右的空格字符。 | ||
| --skip-header | 否 | 跳过 CSV/CUT 文件的第一行数据。 仅 3.3.0 及之后版本支持跳过 CUT 文件的第一行数据。 | ||
| --skip-footer | 否 | 导入 CUT 格式文件时跳过文件的最后一行数据。 | 3.3.0 | |
| --null-string | 否 | 指定字符替换为 NULL。默认值:\N 。 | ||
| --empty-string | 否 | 指定字符替换为空字符(' ')。默认值:\E 。 | ||
| --line-separator | 否 | 指定行分隔符。导入 CUT 格式文件时支持自定义行分隔符。默认值:\n 。 | ||
| --column-separator | 否 | 指定列分隔符。(区别于 CUT 格式中的列分隔字符串) | ||
| --escape-character | 否 | 指定转义字符。默认值:\ 。 | ||
| --column-delimiter | 否 | 指定字符串定界符。默认值:' 。 | ||
| --ignore-unhex | 否 | 忽略为十六进制字符串进行解码。 | ||
| --exclude-table | 否 | 忽略导入指定的表定义和表数据。 | ||
| --exclude-data-types | 否 | 跳过导入指定的数据类型的数据。 | ||
| --column-splitter | 否 | 指定列分隔字符串。(区别于 CSV 格式中的列分隔符) | ||
| --max-discards | 否 | 指定导入时单表最多的重复数据量。默认值:-1。 | ||
| --max-errors | 否 | 指定导入时单表允许的最多错误次数。默认值:1000。 | ||
| --exclude-column-names | 否 | 排除导入时指定的列名所对应的数据。 | ||
| --replace-data | 否 | 标识替换重复的数据。(仅适用于有主键或者有唯一键且非空列的表) | ||
| --truncate-table | 否 | 标识导入前截断目标库中的表。(不推荐使用,建议手动截断表) | ||
| --with-data-files | 否 | 标识选择有数据文件的表进行截断或者删除表中的数据。 | 3.1.0 | |
| --delete-from-table | 否 | 标识导入数据前删除目标库中所有的表中的数据。(不推荐使用,建议手动删除表中的数据) | ||
| -V(--version) | 否 | 查看 OBLOADER 版本号。 | ||
| --no-sys | 否 | 标识 OceanBase 数据库环境下无法提供 sys 租户密码。 | 3.3.0 | |
| --logical-database | 否 | 标识连接 ODP (Sharding) 逻辑库进行导入。 | 3.3.0 | |
| --file-regular-expression | 否 | 标识单表导入的文件名的正则表达式。 | 3.3.0 | |
| --ignore-escape | 否 | 标识导入 CUT 格式文件时忽略对字符进行转义操作。 | 3.3.0 | |
| --storage-uri | 否 | 标识存储的统一资源定位符。 | 4.2.0 | |
| --character-set | 否 | 标识创建数据库连接时的字符集。 | 4.2.4 | |
| --strict | 否 | 标识导入时控制脏数据对进程结束状态的影响。 | 4.2.4 | |
| -H(--help) | 否 | 查看 OBLOADER 命令行工具的使用帮助。 |
连接选项
OBLOADER 需连接 OceanBase 数据库才可读写数据。用户指定以下选项可以连接到 OceanBase 数据库。
-h host_name , --host= host_name
用于连接 ODP 或者 OceanBase 物理节点的主机地址。
-P port_num , --port= port_num
用于连接 ODP 或者 OceanBase 物理节点的主机端口。
-c cluster_name , --cluster= cluster_name
用于连接给定的 OceanBase 集群。命令行未指定该选项时,表示当前连接的是数据库的物理节点,相关的选项(例如:
-h/-P)指定的是数据库物理节点的主机地址和端口;命令行指定该选项时,表示当前连接的是 ODP 服务,相关的选项(例如:-h/-P)指定的是 ODP 服务的主机地址和端口。-t tenant_name , --tenant= tenant_name
用于连接 OceanBase 数据库中给定的租户。有关"租户"的概念,请参考 OceanBase 官方文档。
-u user_name , --user= user_name
用于连接目标数据库的用户名。如果指定的用户名错误,则 OBLOADER 无法连接到数据库。
-p ' password' , --password=' password'
用于连接 OceanBase 数据库的帐户密码。命令行未指定该选项时,表示当前的数据库账户未设置密码;命令行指定该选项时,需要在参数值前后加上单引号。例如:
-p'******'。说明
在 Windows 操作系统上,需在参数值前后加上双引号。其它选项的参数值是字符串时也同样需要加双引号。
--rpc-port= rpc_port_num
用于连接 OBServer RPC 端口。该选项与
--direct,--parallel搭配使用,表示在旁路导入模式下连接 OBServer RPC 端口导入数据。说明
- 该选项仅适用于 OceanBase 4.2.0 RC2 及之后的版本。
- 获取 OBServer RPC 端口方式:
- 连接 ODP 服务端时:
- 云数据库 OceanBase 环境下,ODP RPC Port 默认 3307。
- OceanBase 数据库环境下,默认端口 2885;如果需要自定义,可以在启动 ODP 时通过
-s选项进行指定。
- 连接 OBServer 服务端时,sys 租户下查询系统视图 DBA_OB_SERVERS 即可获取 OBServer 的 RPC 端口,默认端口 2882。
- 连接 ODP 服务端时:
--direct
用于指定旁路导入模式。该选项与
--rpc-port,--parallel搭配使用。说明
- OBLOADER 旁路导入模式暂时不支持二进制数据类型。
- OBLOADER 旁路导入模式支持连接 OBServer 和 ODP。对应的版本要求:
- 连接 OBServer 时:要求 OBServer 版本必须为 4.2.0 及之后。
- 连接 ODP 时:要求 ODP 版本必须为 4.1.3 及之后, 且 OBServer 版本必须为 4.2.1 及之后。
--parallel= parallel_num
用于旁路导入时加载数据的并行度。该选项与
--rpc-port,--direct搭配使用。--sys-user sys_username
用于连接 sys 租户下拥有特定权限的用户。例如:root 用户或者 proxyro 用户。OBLOADER 需要 sys 租户下的特殊用户查询系统表中的元数据。默认值:root。OceanBase 4.0.0 及之后的版本无需指定该选项。
--sys-password ' sys_password'
用于连接 sys 租户下拥有特定权限的账户密码。与
--sys-user选项搭配使用,默认情况下 sys 租户下 root 用户密码为空。命令行指定该选项时,需要在参数值前后加上单引号。例如:--sys-password '******'。OceanBase 4.0.0 及之后的版本无需指定该选项。说明
如果未指定该选项,OBLOADER 无法查询系统表中的元数据,导入功能和导入性能会受到较大的影响。
--public-cloud
用于标识从云数据库 OceanBase 部署的 OceanBase 集群中导入数据库对象或者表数据。如果命令行指定该选项时则无需指定
-t,-c连接选项,同时 OBLOADER 默认会打开--no-sys选项。关于--no-sys选项请参考对应的选项说明。使用--public-cloud或者--no-sys选项会影响导入的功能、性能以及稳定性。OceanBase 2.2.30 及之后版本已支持服务端限流的功能,所以使用--public-cloud或者--no-sys选项时为保证数据导入的稳定性,可通过以下命令设置服务端限流阈值:alter system set freeze_trigger_percentage=50; alter system set minor_merge_concurrence=64; alter system set writing_throttling_trigger_percentage=80 tenant='xxx';--no-sys
用于标识 OceanBase 数据库环境下用户无法提供 sys 租户的密码,从 OceanBase 数据库部署的 OceanBase 集群中导入数据库对象或者表数据。该选项与
--public-cloud选项的区别:使用--no-sys选项时命令行需要指定-t连接选项,连接 ODP 服务时还需要加上-c选项。在 OceanBase 4.0.0 及之前的版本中,如果用户未指定--public-cloud或者--no-sys选项,OBLOADER 必须指定--sys-user和--sys-password选项。--logical-database
用于标识连接 ODP (Sharding) 逻辑库进行导入。命令行中指定
--logical-database选项时,导出的是随机的一个物理分库分表的定义,不可以直接导入到数据库中。用户需要将导出的物理库表结构手动改成逻辑库表结构,才可以导入到数据库中被业务使用。--session-config
用于指定 连接配置 文件。程序包中已为您提供一份默认的配置文件:
<工具根目录>/conf/session.config.json,您无需配置即可生效。建议仅当您需要使用同一份程序包加载多份连接配置时指定该选项。
功能选项
-f ' file_path ' , --file-path= ' file_path '
用于指定数据文件存放在本地磁盘的绝对路径。从 Aliyun OSS 导入数据文件时亦需要指定
-f选项,以保存生成的日志和二进制文件。--file-suffix ' suffix_name '
导入数据时,用于指定数据文件的后缀名。通常文件的后缀名与文件格式具有一定的关联性。例如:CSV 格式的文件通常命名为 xxx.csv。用户未严格遵守规范的情况下,可将 CSV 格式的文件命名为 xxx.txt 等任意的后缀,导致 OBLOADER 无法根据格式来识别目标文件。该选项为可选项,每一种数据格式均有对应的默认值。默认情况下,CSV 格式对应的文件后缀名为 .csv,SQL 格式对应的文件后缀名为 .sql,CUT 格式对应的文件后缀名为 .dat,POS 格式对应的文件后缀名为 .dat。命令行指定该选项,需要在参数值前后加上单引号。例如:
--file-suffix '.txt'。--file-encoding ' encode_name '
用于表示读取数据文件时使用的文件编码,该编码不是数据库编码。命令行指定该选项时,需要在参数值前后加上单引号。例如:
--file-encoding 'GBK'。默认值: UTF-8 。--ctl-path ' control_path '
用于指定控制文件存放在本地磁盘的绝对路径。控制文件中可配置内置的处理函数,数据导入前根据配置的函数对数据进行预处理。例如:大小写转换,判空等。有关控制文件的使用,请参考 数据处理 章节。命令行指定该选项时,需要在参数值前后加上单引号。例如:
--ctl-path '/home/controls/'。--log-path ' log_path '
指定 OBLOADER 运行日志的输出目录。命令行未指定该选项时,OBLOADER 运行日志默认会输出到
-f选项指定的目录。没有特殊要求的情况下,无需使用重定向来输出日志。--ddl
用于标识导入 DDL 文件。DDL 文件是指数据库对象定义文件,文件的命名规范为 对象名-schema.sql 。命令行指定该选项时,表示仅导入数据库对象定义,不会导入表数据。
注意
文件中避免出现注释或者开关语句等。如果数据库对象之间存在依赖,可能会导入失败,需要人工介入处理。
--sql
用于标识导入 SQL 格式的数据文件。SQL 文件是指数据按照 INSERT 语句格式存储,文件的命名规范为 表名.sql 。文件的内容是每一行表数据对应一条可执行的 INSERT 语句。SQL 文件在内容格式上明显区别于 DDL 文件。建议该选项搭配
--table选项使用。如果搭配--all选项使用时,OBLOADER 只会导入表对应的数据文件,不会导入数据库对象定义。注意
数据中不可有 SQL 函数、特殊字符、换行等,否则文件可能无法被正常解析。
--orc
用于标识导入 ORC 格式的数据文件。ORC 文件是指数据按照列格式进行存储,文件的命名规范为 表名.orc 。请参考 Apache ORC 格式定义。
--par
用于标识导入 Parquet 格式的数据文件。Parquet 文件是指数据按照列格式进行存储,文件的命名规范为 表名.parquet 。请参考 Apache Parquet 格式定义。
说明
使用 OBLOADER 4.2.5 及之前的版本导入 Parquet 文件时,不支持 DECIMAL, DATE, TIME, TIMESTAMP 数据类型。
--mix
用于标识导入 MIX 文件。MIX 文件是指导出的 DDL 语句和 DML 语句混合在一起的文件。文件无严格的命名规范。
注意
MIX 文件无严格的格式,处理过程复杂且性能差,不建议使用。
--csv
用于标识导入 CSV 格式的数据文件。CSV 文件是指数据按照标准的 CSV 格式存储,文件的命名规范为 表名.csv 。有关 CSV 格式规范,请参考 RFC 4180 中的定义。CSV 格式最容易出错的是定界符,通常使用的定界符是单引号或者双引号。如果数据中存在定界符,必须做转义处理,即指定转义符,否则 OBLOADER 无法解析错误的数据格式。强烈建议使用 CSV 格式。建议该选项搭配
--table选项使用。如果搭配--all选项使用时,OBLOADER 只会导入表对应的数据文件,不会导入数据库对象定义。--pos
用于标识导入 POS 格式的数据文件。POS 文件是指数据按照定长字节数的格式存储,文件的命名规范为 表名.dat 。定长字节数是指每一列数据使用固定长度的字节数来存放。长度不足补空格,长度超出则截断,按照字节截断可能会出现数据乱码。建议该选项搭配
--table选项使用。如果搭配--all选项使用时,OBLOADER 只会导入表对应的数据文件,不会导入数据库对象定义。(区别于定长字符格式)--cut
用于标识导入 CUT 格式的数据文件。CUT 文件是指数据使用单个字符或者字符串进行分隔的格式,文件的命名规范为 表名.dat 。如何准确辨识 CUT 格式与 CSV 格式?CSV 格式使用单个字符分隔字段,常用的字段分隔符是逗号;CUT 格式一般使用字符串分隔字段。例如:使用
|@|字符串分隔字段。CSV 格式使用单引号或者双引号作为字段间的定界符,CUT 格式无定界符。建议该选项搭配--table选项使用。如果搭配--all选项使用时,OBLOADER 只会导入表对应的数据文件,不会导入数据库对象定义。注意
CUT 格式要求数据整行存放。如果字段分隔符是单个字符时,避免数据中出现分隔符、回车或者换行等特殊字符,否则 OBLOADER 无法正确解析数据。
命令行指定--cut选项导入数据时,如果文件中的数据行尾没有字段分隔符(或分隔串),请勿使用--trail-delimiter选项,否则导入程序会出现严重错误。--table-group '*table_group_name [,table_group_name...]*'|--table-group '*'
用于标识导入 表组 定义。除了不支持导入数据外,其它描述同
--table选项。--all
用于标识导入所有已支持的数据库对象定义和表数据。该选项与
--ddl搭配使用时,表示导入所有的数据库对象定义文件;该选项与--csv,--sql,--cut,--pos任意一种数据格式选项搭配使用时,表示导入所有对应格式的数据文件。如果需要导入所有的数据库对象定义和表数据,可指定--all,--ddl选项再搭配任意一种数据格式选项。注意
--all选项与任意的数据库对象选项之间都是互斥的,不可同时指定;如果同时指定--all选项与任意的数据库对象选项,则会优先执行--all选项命令。--table ' table_name [,table_name...] ' | --table ' * '
用于标识导入表定义或者表数据。该选项与
--ddl搭配使用时,表示仅导入表定义;该选项与任意一种数据格式选项搭配使用时,表示仅导入表数据。指定多个表时,表名用逗号分隔(,)。导入 OceanBase Oracle 模式租户的表名默认按照大写处理,导入 OceanBase MySQL 模式租户的表名默认按照小写处理;例如:OceanBase Oracle 模式下,--table 'test'和--table 'TEST'均表示 TEST 表;OceanBase MySQL 模式下,--table 'test'和--table 'TEST'均表示 test 表。如果需要区分大小写,请将表名放入中括号内([ ])。例如:--table '[test]'表示 test 表,--table '[TEST]'表示 TEST 表。如果表名指定为星号(*),表示导入所有的表定义或者表数据。注意
导入使用控制文件时,如果
--table指定的指定的表名大小写必须和数据库中保持一致,否则控制文件无法生效。--view ' view_name [, view_name...] ' | --view ' * '
用于标识导入 视图 定义。除了不支持导入数据外,其它描述同
--table选项。--trigger ' trigger_name [, trigger_name...] ' | --trigger ' * '
用于标识导入 触发器 定义。除了不支持导入数据外,其它描述同
--table选项。--sequence ' sequence_name [, sequence_name...] ' | --sequence ' * '
用于标识导入 序列 定义。除了不支持导入数据外,其它描述同
--table选项。目前仅适用于 OceanBase Oracle 模式。--synonym ' synonym_name [, synonym_name...] ' | --synonym ' * '
用于标识导入 同义词 定义。除了不支持导入数据外,其它描述同
--table选项。目前仅适用于 OceanBase Oracle 模式。--type ' type_name [, type_name...] ' | --type ' * '
用于标识导入 类型 定义。除了不支持导入数据外,其它描述同
--table选项。仅适用于 OceanBase Oracle 模式。--type-body ' typebody_name [, typebody_name...] ' | --type-body ' * '
用于标识导入 类型体 定义。除了不支持导入数据外,其它描述同
--table选项。仅适用于 OceanBase Oracle 模式。--package ' package_name [, package_name...] ' | --package ' * '
用于标识导入 包 定义。除了不支持导入数据外,其它描述同
--table选项。仅适用于 OceanBase Oracle 模式。--package-body ' packagebody_name [, packagebody_name...] ' | --package-body ' * '
用于标识导入 包体 定义。除了不支持导入数据外,其它描述同
--table选项。仅适用于 OceanBase Oracle 模式。--function ' function_name [, function_name...] ' | --function ' * '
用于标识导入 函数 定义。除了不支持导入数据外,其它描述同
--table选项。--procedure ' procedure_name [, procedure_name...] ' | --procedure ' * '
用于标识导入 存储过程 定义。除了不支持导入数据外,其它描述同
--table选项。--replace-object
用于标识导入数据库对象定义时替换已存在的数据库对象定义。对于 表 、 同义词 等对象使用先删除再创建的方式进行替换;对于 函数 、 存储过程 等对象使用 CREATE OR REPLACE 进行替换。该选项仅与
--ddl或者--mix选项搭配使用,对--csv,--sql等其它数据格式选项不生效。注意
- 目标库中已经存在对象时,该对象会被强制替换成文件中所保存的对象定义。
- 用户不需要替换数据库中的对象时,请勿使用该选项,避免对业务造成影响。
--retry
用于标识导入任务从中断点进行重试。使用建议:如果导入的数据量已超过 80%,可指定该选项进行断点续传,避免重新导入(断点续传的过程中可能有少量的数据出现重复错误);如果已经导入的数据量不多,可清空表重新开始导入,效率更高。
注意
CHECKPOINT.bin 文件是工具运行时生成的保存点文件,路径位于
-f指定的目录中。如果 CHECKPOINT.bin 文件不存在,无法使用该选项。--external-data
用于标识导入的数据集是由第三方工具导出的。OBDUMPER 导出数据时,工具会在
-f指定的目录中生成 MANIFEST.bin 文件用于保存元数据信息。OBLOADER 导入数据时,默认会解析该元数据文件。如果该文件丢失,或者数据是由第三方工具导出而没有元数据文件,导入时可以指定该选项跳过元数据解析。--nls-date-format ' date-format-string '
用于设置 OceanBase Oracle 模式下数据库连接中的日期格式。默认值:YYYY-MM-DD HH24:MI:SS。
--nls-timestamp-format ' timestamp-format-string '
用于设置 OceanBase Oracle 模式下数据库连接中的时间戳格式。默认值:YYYY-MM-DD HH24:MI:SS:FF9。
--nls-timestamp-tz-format ' timestamp-tz-format-string '
用于设置 OceanBase Oracle 模式下数据库连接中包含时区的时间戳格式。默认值:YYYY-MM-DD HH24:MI:SS:FF9 TZR。
--skip-header
用于标识跳过 CSV/CUT 格式文件头,即第一行字段头数据。该选项仅与
--csv/--cut选项搭配使用。仅 3.3.0 及之后版本支持跳过 CUT 格式文件的第一行数据。--skip-footer
用于标识跳过 CUT 格式文件的最后一行数据。该选项仅与
--cut选项搭配使用。--null-string ' null_replacer_string '
用于标识将指定字符替换为 NULL。该选项仅与
--csv或者--cut选项搭配使用。默认值: \N 。--empty-string ' empty_replacer_string '
用于标识将指定字符替换为空字符(' ')。该选项仅与
--csv选项搭配使用。默认值: \E 。--line-separator ' line_separator_string '
用于指定行分隔字符串。导入 CUT 格式文件时支持自定义数据文件换行符。该选项的默认值与系统平台相关,仅包括: \r , \n , \r\n 三种可选的值。
说明
该选项仅与 --csv 或者 --cut 选项搭配使用。
--column-separator ' column_separator_char '
用于指定列分隔字符串。该选项仅支持单字符,仅与
--csv选项搭配使用。默认值:逗号。--escape-character ' escape_char '
用于指定转义字符。该选项仅支持单字符,仅与
--csv或者--cut选项搭配使用。默认值:反斜杠。说明
如需指定该选项为特殊(不可见)字符时,请使用 HEX 表示。
--column-delimiter ' column_delimiter_char '
用于指定字符串定界符。该选项仅支持单字符,仅与
--csv选项搭配使用。默认值:单引号。--with-trim
用于删除数据左右的空格字符。该选项仅与
--cut或者--csv选项搭配使用。--trail-delimiter
用于标识数据行是否以分隔符结尾。该选项仅与
--cut或者--csv选项搭配使用。--ignore-unhex
用于标识忽略对十六进制字符串进行解码。该选项仅适用于二进制数据类型。
--exclude-table ' table_name [, table_name...] '
用于表示导入表定义或者表数据时排除指定的表。表名支持模糊匹配。 使用示例:
--exclude-table 'test1,test*,*test,te*st'上述参数表示导入表定义或者表数据时排除以下符合条件的表:- test1
- 所有的表名以 test 开头的表
- 所有的表名以 test 结尾的表
- 所有的表名以 te 开头且以 st 结尾的表
--exclude-data-types ' datatype [, datatype...] '
用于表示导入数据时排除指定的数据类型。
--column-splitter ' split_string '
用于指定列分隔字符串。该选项仅与
--cut选项搭配使用。--storage-uri ' storage_uri_string '
用于标识存储的统一资源定位符。OBLOADER 4.2.0 及之后的版本支持从 Aliyun OSS 或者 Amazon S3 导入数据库对象定义和表数据;OBLOADER 4.2.1 及之后的版本支持从 Hadoop 导入数据库对象定义和表数据。
' storage_uri_string ' 语法格式:
[scheme://host]path[?parameters] parameters: key[=value],...组成部分说明:
组成部分 说明 scheme 支持的存储类型:Aliyun OSS/Amazon S3/Hadoop。
如果指定的 scheme 不是当前支持的 OSS/S3/Hadoop,则会报错。host 指定存储空间名称。 - 从 OSS/S3 导入数据时,host 指代存储桶,具体请参考 OSS Bucket。
- 从 Apache Hadoop 导入数据时,该项为 Hadoop 节点,满足格式:
<ip>:<port>或<cluster_name>。
path 指定从存储空间导入数据的资源路径。路径必须以 /开头。parameters 指定请求所需的参数。
其中,parameters 可为单个 Key 或 Key-Value 对。示例:从 S3 导入数据
--storage-uri 's3://bucket/path?region={region}&access-key={accessKey}&secret-key={secretKey}'s3:scheme 为 s3。bucket:S3 存储空间的名称。path:从 S3 导入数据的资源路径。?region={region}&access-key={accessKey}&secret-key={secretKey}:指定 region, access-key, secret-key 参数值。
支持的参数:
参数 是否需要 value 说明 支持的存储类型 支持版本 endpoint 是 - 用于指定 OSS host 所在地域的 Endpoint。
- 用于通过域名 Endpoin 访问 S3。
- OSS
- S3
- 4.2.0
- 4.2.5
region 是 用于指定终端节点,为 S3 bucket 所在的物理位置。 S3 4.2.0 storage-class 是 用于指定 Amazon S3 存储类。 S3 4.2.0 access-key 是 用于指定存储的访问账号。 OSS/S3 4.2.0 secret-key 是 用于指定存储的访问密钥。 OSS/S3 4.2.0 hdfs-site-file 是 用于指定 hdfsSiteFile 配置文件,其中包含 Apache Hadoop 的配置信息,以设置 Apache Hadoop 的存储和访问规则,例如块大小和副本数量。 Apache Hadoop 4.2.1 core-site-file 是 用于指定 hdfsSiteFile 配置文件,其中包含 Hadoop 集群中的核心配置信息,例如 Apache Hadoop 文件系统的 URI 和默认文件系统。 Apache Hadoop 4.2.1 principal 是 用于指定 Kerberos 中的身份验证标识符。 Apache Hadoop 4.2.1 keytab-file 是 用于指定 Keytab 文件的绝对路径,以授权用户或服务访问系统的资源。 Apache Hadoop 4.2.1 krb5-conf-file 是 用于指定 Kerberos 配置文件路径。 Apache Hadoop 4.2.1 说明
- 从 Aliyun OSS 导入数据库对象定义和表数据时,endpoint, access-key, secret-key 为必填参数。
- 从 Amazon S3 导入数据库对象定义和表数据时,region, access-key, secret-key 为必填参数。
--max-discards int_num
指定该选项可以限制每一张表的重复数据的最大值。如果任意一张表的重复数据超过最大值,则停止导入该表的数据,日志记录该表导入失败,不影响其它表导入。默认值:-1,表示忽略重复数据继续导入。
说明
表中包含主键或者唯一键且数据出现重复时,该选项才会生效。
--max-errors int_num
指定该选项可以限制每一张表导入时遇到错误数的最大值。如果任意一张表导入的错误数超过最大值,则停止导入该表的数据,日志记录该表导入失败。该选项可选的值分别是 0、-1 和正整数 N。指定参数值为 -1 时,表示忽略错误,继续导入。默认值:1000。
--exclude-column-names ' column_name [, column_name...] '
注意
- 指定的列名需要与表结构中的列名大小写保持一致。
- 导入的数据文件中,被排除的列无对应的数据且被导入的列顺序与表中列顺序需要保持一致。
--replace-data
用于标识替换表中重复的数据。该选项仅适用于已定义主键或者是已定义唯一键(包含非空字段)的表。如果文件中重复的数据较多,占比超过总数据量 30% 以上,建议清理表重新导入。数据替换的性能低于空表导入的性能。该选项与
--csv,--sql,--cut选项搭配使用,对--ddl选项不生效。注意
- 文件和表中出现重复的数据时,表中的数据会被替换为文件中的数据。
- 对于无主键或者无唯一键的表,该选项会在表中追加写入数据。
- 用户不需要替换重复数据时,请勿在命令行中指定该选项,避免对业务造成影响。
--truncate-table
用于标识导入数据前对目标库中表进行截断操作。该选项仅与任意一种数据格式选项搭配使用,其与
--all或者--table '*'选项搭配使用时,表示截断数据库中所有的表。如果仅需要截断部分表,可以显式指定--table 'test1,test2,[....]'。该选项与--with-data-files选项搭配使用时,表示仅截断有对应数据文件的表。注意
- 导入数据使用
--all或者--table '*'选项搭配--truncate-table选项时,程序会截断目标库中所有的表,即使-f选项指定的目录下没有表对应的数据文件,程序也会执行 truncate table 操作。 - 请勿使用该选项对目标库或者目标表进行截断操作,强烈建议用户根据业务需求手动截断表,避免对业务造成影响。
- 导入数据使用
--with-data-files
该选项与
--truncate-table或者--delete-from-table选项搭配使用时,表示导入数据前截断或者清空有对应数据文件的表。单独指定该选项无任何意义。--delete-from-table
用于标识导入数据前删除目标库中所有的表中的数据。该选项仅与任意一种数据格式选项搭配使用,其与
--all或者--table '*'选项搭配使用时,表示删除目标库中所有表中的数据。如果仅需要删除部分表中的数据,可以显式指定--table 'test1,test2,[....]'。该选项与--with-data-files选项搭配使用,表示仅删除有对应数据文件的表中的数据。注意
- 导入数据使用
--all或者--table '*'选项搭配--delete-from-table选项时,程序会删除目标库中所有表中的数据,即使-f选项指定的目录下没有表对应的数据文件,程序也会执行 delete from table 操作。 - 请勿使用该选项删除目标库或者目标表中的数据,特别是数据量比较大的表。强烈建议用户根据业务需求手动删除表中的数据,避免对业务造成影响。
- 导入数据使用
--file-regular-expression
用于导入单表文件时,根据指定的正则表达式选择性地导入指定的文件。该选项仅适用于单表导入。例如:
--file-regular-expression ".*",表示使用".*"正则表达式匹配目录下的所有文件,*表示匹配零个或多个任意字符;--file-regular-expression ".*\\.csv",表示使用".*\.csv"正则表达式匹配以".csv"结尾的文件,其中"\."表示匹配实际的句点字符"."。--ignore-escape
用于忽略导入 CUT 格式文件时对字符进行转义操作,默认不忽略。
--strict= ' strict_string '
用于导入时控制脏数据对进程结束状态的影响。默认值:true,表示导入的数据中存在 Bad Record 或者 Discard Record 类型错误时会以失败状态结束程序(
System exit 1);false,表示导入的数据中存在 Bad Record 或者 Discard Record 类型错误时,不影响程序最终结束状态(System exit 0)。说明
该选项可与
--max-discards或者--max-errors选项搭配使用,表示当重复数据量或者错误数在指定范围内,会跳过错误继续进程。更多详情请参见 错误处理。--character-set ' character_set_string '
用于指定创建数据库连接时的字符集。默认值:
session.properties文件中会话变量jdbc.url.character.encoding设置的值。--character-set选项指定字符集会覆盖jdbc.url.character.encoding值。该选项支持指定的字符集包括:binary, gbk, gb18030, utf16, utf8mb4。
性能选项
--rw float_num
用于标识文件解析线程占总线程数的比例。默认值:0.2。 该选项与
--thread选项搭配使用,可计算出文件解析线程数等于--thread选项值 *--rw选项值。--slow float_num
用于标识工具进入慢导模式的阈值。当 OceanBase 内存占用达到 75% 时,OBLOADER 会自动降速,防止数据库内存占用持续飙升。默认值:0.75。
--pause float_num
用于标识工具进入停导模式。当 OceanBase 内存占用达到 85% 时,OBLOADER 会自动停止导入,防止数据库内存水位过高引发内存问题。默认值:0.85。
--batch int_num
用于标识批量写入的事务大小。建议该选项的值与表的宽度成反比的关系,但不可设置过大导致数据库内存溢出。默认值:200。
说明
OBLOADER 4.2.0 及之后的版本支持根据 JAVA 虚拟机的内存自适应
--batch的默认值。--thread int_num
用于标识并发线程数。该选项直接对应写入线程数。与
--rw选项搭配使用时,用于计算文件解析线程数,计算公式:--thread参数值 *--rw参数值。默认值:CPU 乘以 2。OceanBase 是串行执行 DDL,所以导入数据库对象定义时无需指定该选项。--block-size int_num
用于标识文件切分的块大小。指定该选项时无需显式标注单位,默认单位:MB。默认情况下 OBLOADER 对大文件按照 64MB 自动拆分成多份逻辑子文件,逻辑子文件不会占用额外的存储空间。默认值:64。
--max-tps int_num
用于标识最大导入的 TPS。指定该选项时,可保证平稳的导入速率。
--max-wait-timeout int_num
用于标识 OceanBase 服务端合并的等待时长。指定该选项时,无需显式标注单位,默认单位:小时。OceanBase 服务端处于合并状态时,客户端进入停导模式,最大等待时长不可超过该选项的值。默认值:3。
其它选项
-H, --help
用于查看命令行工具的使用帮助。
-V, --version
用于查看当前发行的工具版本号。