---
title: OBDUMPER 支持导出的文件格式-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 OBDUMPER 支持导出的文件格式相关的常见问题和使用技巧，帮助您快速解决 OBDUMPER 支持导出的文件格式的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# OBDUMPER 支持导出的文件格式

更新时间：2024-12-12 07:27

适用版本： V3.0.x、V3.1.x、V3.2.x、V3.3.x、V4.0.x、V4.1.x、V4.2.x 内容类型：TechNote  

OBDUMPER 支持导出的格式、它们各自的特性以及推荐使用的场景见下表：

| 格式（命令行选项） | 相关的命令行选项 | 适用的业务场景 |
| --- | --- | --- |
| **CSV (--csv)**   CSV（Comma-Separated Values）格式是一种常用的文本文件格式，用于存储和交换数据。其具有以下两大显著特性：   - 通用性：CSV 格式是一种非常通用的数据格式，几乎所有的数据处理工具和编程语言支持和解析该格式。 - 可读性：CSV 文件以纯文本形式存储数据，每行代表一个记录，每个字段之间使用逗号进行分隔。 | - **--column-seperator**：列分隔符，默认为英文逗号。 - **--column-delimiter**：定界符，默认为英文单引号（''）。 - --with-trim     用于删除数据左右的空格字符。 - --character-set '***character_set_string***'     用于指定创建数据库连接时的字符集。 - --null-string '***null_replacer_string***'     用于标识将 NULL 替换为指定字符。 - --line-separator：换行符，类 UNIX 系统下默认为 '\n'；Windows 系统下默认为 '\r\n'。 - --escape-character：转义符，默认为 ''。 - **--skip-header**：是否省略表头。 - --null-string： NULL 替换符。默认为 '\N'。 - --empty-string：空字符替换符。默认为 '\E'。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn '***scn_number***'      用于导出 SCN 事务点之后的数据。 | 适用于几乎所有的业务场景。 |
| **CUT （--cut）**   CUT 格式又称 Delimited Text，是一种与 CSV 类似的格式。其与 CSV 格式的不同点在于：   - 无定界符。 - 支持列分隔符为多个字符。 - 一般行尾以列分隔符结束。 | - **--column-splitter**：列分隔符，默认为 '\|'。 - --line-separator：换行符，类 UNIX 系统下默认为 '\n'；Windows 系统下默认为 '\r\n'。 - --with-trim     用于删除数据左右的空格字符。 - --character-set '***character_set_string***'     用于指定创建数据库连接时的字符集。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn '***scn_number***'      用于导出 SCN 事务点之后的数据。 - --escape-character：转义符，默认为 ''。 - **--trail-delimiter**：是否省略行尾的列分隔符。 - --null-string： NULL 替换符。默认为 '\N'。 - --empty-string：空字符替换符。默认为 '\E'。 | 参考 CSV。多用于导入由某些老式平台导出的较为灵活的数据交换格式。 |
| **POS（--cut）**   POS 格式即 Fixed-Length （固定长度）格式。与 CSV 格式不同，它使用固定长度的字段来存储数据，每个字段的长度是预定义的。   #### 注意    - 其命令行选项仍为 CUT。在使用时，需要设置列分隔符（--column-splitter）为空字符，并通过控制文件来设置列的长度。 - 需要配合控制文件使用。 | - --column-splitter '***split_string***'     用于指定列分隔字符串。 - --line-separator '***line_separator_string***'     指定行分隔字符串。 - --escape-character '***escape_char***'     用于指定转义字符。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --trail-delimiter     用于标识导出的数据行是否以分隔符结尾。 | 与某些仅支持定长格式的卸数平台进行交互。 |
| **SQL（--sql）**  #### 注意    OBDUMPER 仅支持导出单条插入语句。不支持导出为批量插入语句。 | - --line-separator '***line_separator_string***'     指定行分隔字符串。 - --character-set '***character_set_string***'     用于指定创建数据库连接时的字符集。 - --null-string '***null_replacer_string***'     用于标识将 NULL 替换为指定字符。 - --escape-character '***escape_char***'     用于指定转义字符。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn '***scn_number***'      用于导出 SCN 事务点之后的数据。 | 适用于几乎所有的业务场景。 |
| MIX (--mix)   用于导入 SQL 混合格式的文件，文件内容可以为任意 OceanBase 支持的 SQL 语法。也可以兼容性转换的方式处理 mysqldump 导出的 SQL 文件格式。 | - --character-set 'character_set_string'     用于指定创建数据库连接时的字符集。 - --file-encoding 'encode_name'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn 'scn_number'     用于导出 SCN 事务点之后的数据。 - --compact-schema     用于直接使用 `SHOW CREATE TABLE` 的返回结果导出表定义。 | 适用于导出任意格式的 SQL 文件。兼容性更强，但对比 `--sql` 性能相差较大。目前的实现是将文本全部读取进内存再解析，不适合处理数据量较大的文件。 |
| Parquet（--par）   Parquet 是一种二进制文件格式（不可读），采用了列式存储，专为高效存储和处理大规模数据而设计。其在大数据领域中被广泛采用，并支持诸如 Apache Hadoop、Apache Spark、Apache Hive 等流行的大数据处理框架。 | - --character-set 'character_set_string'     用于指定创建数据库连接时的字符集。 - --file-encoding 'encode_name'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn 'scn_number'     用于导出 SCN 事务点之后的数据。 | 需要兼顾数据压缩和导出性能的备份场景。导入导出性能基本等同于 CSV。压缩率较高。   #### 说明    在实验环境下，压缩率的期望值在 20% 左右，数据的分布特征会极大程度地影响压缩率。例如：重复率较高的数据压缩率更高。建议开启并行写入，以达到最佳性能。 |
| ORC（--orc）   与 Parquet 类似，ORC 格式也是一种二进制文件格式（不可读），旨在提供更好的查询性能和压缩率，并且被广泛应用于大数据处理领域。 | - --character-set '***character_set_string***'     用于指定创建数据库连接时的字符集。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn '***scn_number***'      用于导出 SCN 事务点之后的数据。 | 需要极致数据压缩的场景。导入导出性能稍差于 CSV，由于第三方组件（Apache ORCWriter）的已知问题，导出时需要的内存可能较高。压缩率一般高于 Parquet。但仍取决于数据分布。建议开启并行写入，以达到最佳性能。 |

#### 说明

命令行选项详情请参见 [OBDUMPER 命令行选项](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000000518406)。

上一篇

[OBDUMPER 工作原理](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000486923)

下一篇

[OBDUMPER 常见问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000486922) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
