---
title: "数据类型映射 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 数据类型映射 数据类型映射确保在数据从 OceanBase 数据库导出为 Parquet、ORC、MaxCompute（ODPS） 和 CSV 格式时，能够准确地将原始数据与目标格式的数据类型进行对应。OceanBase 数据库通过明确的映射表，将 MySQL 和 Oracle 的各类数据类型与 Parquet、OR…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# 数据类型映射

更新时间：2026-02-25 18:34:50

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/300.database-object-management/100.manage-object-of-mysql-mode/200.manage-tables-of-mysql-mode/1000.manage-external-tables-of-mysql-mode/400.data-type-mapping-of-mysql-mode.md)  

数据类型映射确保在数据从 OceanBase 数据库导出为 Parquet、ORC、MaxCompute（ODPS） 和 CSV 格式时，能够准确地将原始数据与目标格式的数据类型进行对应。OceanBase 数据库通过明确的映射表，将 MySQL 和 Oracle 的各类数据类型与 Parquet、ORC 和 MaxCompute（ODPS） 支持的数据类型进行关联，从而确保数据在导出过程中不丢失、不过载，并保持其语义不变。

#### 说明

其中 CSV 文件导出后为字符串类型。

## 导出为 Parquet 格式

| Parquet 物理类型 | Parquet 逻辑类型 | Hive 数据类型 | MySQL 租户下数据类型 | 备注 |
| --- | --- | --- | --- | --- |
| INT32 | INT(8,TRUE) | TINYINT | TINYINT | |
| INT32 | INT(16,TRUE) | SMALLINT | SMALLINT | |
| INT32 | INT(32,TRUE) | INT | INT | |
| INT64 | INT(64,TRUE) | BIGINT | BIGINT | |
| INT32 | INT(8,FALSE) | TINYINT（超限为 NULL） | TINYINT UNSIGNED | |
| INT32 | INT(16,FALSE) | SMALLINT（超限为 NULL） | SMALLINT UNSIGNED | |
| INT32 | INT(32,FALSE) | INT（超限为 NULL） | INT UNSIGNED | |
| INT64 | INT(64,FALSE) | BIGINT（超限为 NULL） | BIGINT UNSIGNED | |
| FLOAT | NONE | FLOAT | FLOAT | |
| DOUBLE | NONE | DOUBLE | DOUBLE | |
| FIXED_LEN_BYTE_ARRAY | DECIMAL | DECIMAL | DECIMAL, DECIMAL UNSIGNED | 必须指定 precision 和 scale |
| BYTE_ARRAY | STRING | CHAR | CHAR, BINARY | Parquet 的 string 类型都是 utf8 编码 |
| BYTE_ARRAY | STRING | VARCHAR | VARCHAR, VARBINARY | |
| BYTE_ARRAY | STRING | STRING | TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB | |
| INT64 | TIMESTAMP(is_adjusted_to_utc=true, parquet::LogicalType::TimeUnit::MICROS) | TIMESTAMP | TIMESTAMP | |
| INT64 | TIMESTAMP(is_adjusted_to_utc=false, parquet::LogicalType::TimeUnit::MICROS) | TIMESTAMP | DATETIME | |
| INT32 | DATE | DATE | DATE | |
| INT64 | TIME | \ | TIME | |
| INT32 | INT(8,FALSE) | \ | YEAR | |

## 导出为 ORC 格式

| ORC 类型 | Hive数据类型 | MySQL 租户下数据类型 |
| --- | --- | --- |
| BYTE | TINYINT | TINYINT |
| SHORT | SMALLINT | SMALLINT |
| INT | INT | INT |
| LONG | BIGINT | BIGINT |
| FLOAT | FLOAT | FLOAT |
| DOUBLE | DOUBLE | DOUBLE |
| DECIMAL | DECIMAL | DECIMAL |
| CHAR | CHAR | CHAR |
| VARCHAR | VARCHAR | VARCHAR |
| STRING | STRING | TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT |
| BINARY | BINARY | TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB/BINARY/VARBINARY |
| DATE | DATE | DATE |
| TIMESTAMP | TIMESTAMP | DATETIME/TIMESTAMP |

## 导出为 MaxCompute（ODPS） 格式

| MaxCompute（ODPS） 数据类型 | MySQL 租户下数据类型 | 备注 |
| --- | --- | --- |
| BOOLEAN | TINYINT （0值表示错误，1值表示正确） |
| TINYINT | TINYINT |
| SMALLINT | SMALLINT |
| INT | INT |
| BIGINT | BIGINT |
| FLOAT | FLOAT | 不允许用户指定精度，否则报错。 |
| DOUBLE | DOUBLE | 不允许用户指定精度，否则报错。 |
| DECIMAL | DECIMAL(M,D) | 用户需要显式指定 M 和 D 和 MaxCompute（ODPS） 上的 P/S 一致，否则执行期会报错。 |
| CHAR （最大长度 255 字节，不足补空格） | CHAR （长度 0～255） | 用户指定的 length 需要大于或者等于 MaxCompute（ODPS） 上的对应列的 length，否则执行期会报错。 |
| VARCHAR（最大长度65535） | VARCHAR （长度可以指定为 0 到 262144 之间） | 用户指定的 length 需要大于或者等于 MaxCompute（ODPS） 上的对应列的 length，否则执行期会报错。 |
| STRING（长度限制 8MB 字节） | VARCHAR/TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT（MEDIUMTEXT 是最大长度为 16,777,215 个字节的 TEXT 类型，带字符集） | 用户需要知道 MaxCompute（ODPS） 上 STRING 数据的最大长度，根据此信息决定映射为什么类型，如果 OceanBase 数据库的类型长度不足以容纳 MaxCompute（ODPS） 数据，会在执行期报错。 |
| BINARY （长度限制 8MB） | VARBINARY/TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB（BLOB 值被视为二进制字符串（字节字符串），具有二进制字符集和排序规则，比较和排序需要基于列值中字节的数值，MEDIUMBLOB是最大长度为 16,777,215 字节的 BLOB 类型） | 用户需要知道 MaxCompute（ODPS） 上 BINARY 数据的最大长度，根据此信息决定映射为什么类型，如果 OceanBase 数据库的类型长度不足以容纳 MaxCompute（ODPS） 数据，会在执行期报错。 |
| TIMESTAMP （存储 UTC 时间 纳秒级小数点后 9 位，但展示时按照当前时区转） | TIMESTAMP | 仅支持 TIMESTAMP(6) 其他都不支持，TIMESTAMP 类型的精度最高是小数点后 6 位，所以存在精度损失。 |
| TIMESTAMP_NTZ（存储 UTC 时间纳秒级小数点后 9 位，完全和时区无关） | DATETIME | 仅支持 DATETIME(6), 其他都不支持，TIMESTAMP 跟时区相关，所以不支持。 |
| DATE（格式 yyyy-mm-dd，取值范围 0001-01-01~9999-12-31） | DATE | 仅支持 DATE，其他都不支持。 |
| DATETIME（精确到毫秒，小数点后 3 位，取值范围：0001-01-01 00:00:00.000~9999-12-31 23:59:59.999） | DATETIME | 仅支持 DATETIME(3) 及以上的小数点个数例如 DATETIME(4)/DATETIME(5)/DATETIME(6)，其他不支持。 |
| ARRAY | ARRAY | 更多信息，参见下方 **OceanBase 数据库 ARRAY 类型到 ODPS 的映射关系** 内容。 |
| MAP | 暂不支持 | 暂不支持 |
| STRUCT | 暂不支持 | 暂不支持 |
| JSON | JSON | 暂不支持 |

### OceanBase 数据库 ARRAY 类型到 ODPS 的映射关系

OceanBase 数据库支持的 `ARRAY` 类型到 ODPS 类型映射的关系如下所示：

| OceanBase 数据库 | ODPS |
| --- | --- |
| ARRAY(tinyint) | ARRAY<tinyint> |
| ARRAY(tinyint) | ARRAY<boolean> |
| ARRAY(smallint) | ARRAY<smallint> |
| ARRAY(int) | ARRAY<int> |
| ARRAY(bigint) | ARRAY<bigint> |
| ARRAY(float) | ARRAY<float> |
| ARRAY(double) | ARRAY<double> |
| ARRAY(varchar) | ARRAY<varchar> |
| ARRAY(varchar) | ARRAY<string> |
| ARRAY(array()) | ARRAY<array<>> |

## 相关文档

[SELECT INTO](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479561)

 上一篇 下一篇 ![有帮助](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) 咨询热线
