---
title: "关于外表 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 关于外表 通常，数据库中的表数据存放在数据库的存储空间中，而外表的数据存储在外部存储服务中。创建外表时，需要定义数据文件路径和数据文件的格式。创建成功后，用户就可以通过外表从外部存储服务中读取文件中的数据。 外表可以像普通表一样，与其他表进行链接、聚合、排序等，外表与普通表的差异如下： 外表的数据存储在外部文件中，普…
---
切换语言

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

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

# 关于外表

更新时间：2026-03-31 18:07:07

[编辑](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/100.about-external-tables-of-mysql-mode.md)  

通常，数据库中的表数据存放在数据库的存储空间中，而外表的数据存储在外部存储服务中。创建外表时，需要定义数据文件路径和数据文件的格式。创建成功后，用户就可以通过外表从外部存储服务中读取文件中的数据。

外表可以像普通表一样，与其他表进行链接、聚合、排序等，外表与普通表的差异如下：

- 外表的数据存储在外部文件中，普通表的数据存储在数据库中。
 - 外表是只读的，可以在查询语句使用，但不能执行 DML 操作。
 - 外表不支持添加约束和创建索引。

通常来说，外表的访问速度会慢于普通表。

## HDFS 外表

### HDFS 外表读

Hadoop 分布式文件系统（HDFS）是 Hadoop 生态系统中的一个核心组件，用于存储和处理大规模数据集。因此，OceanBase 数据库新增了 HDFS 外表读功能，支持直接访问 HDFS 存储的数据。

关于创建 HDFS 外表（文件在 HDFS 上）的详细介绍信息，参见 [CREATE EXTERNAL TABLE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479522)。

由于 HDFS 的 SDK 是用 Java 开发的，而 OceanBase 是用 C++ 开发的，因此需要通过 JNI（Java Native Interface）框架来进行桥接。类似地，ODPS 的 Java SDK 也需要 Java 环境来运行。为了使用 HDFS 外表功能，您需要配置 Java 环境，并通过特定的配置项进行控制，从而创建能够访问 HDFS 文件的表。相关配置项如下：

- [ob_enable_java_env](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479195)
 - [ob_java_home](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479031)
 - [ob_java_connector_path](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479143)
 - [ob_java_opts](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479127)

关于配置 Java 环境的详细介绍信息，参见 [部署 OceanBase 数据库 JAVA SDK 环境](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004475541)。

### HDFS 外表写

OceanBase 数据库在 V4.4.0 版本支持 HDFS 外表驱动写的功能。关于 HDFS 外表驱动写的详细介绍信息，参见 [SELECT INTO](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479561)。

## ODPS 外表

MaxCompute（ODPS）提供了开放存储（Storage API）和 Tunnel API：

- Storage API：数据服务接口，提供了高效、低延迟、安全的数据读方式。
 - Tunnel API：数据上传/下载接口，主要用于批量操作表数据（例如全表数据导入导出）。

OceanBase 数据库通过适配 ODPS API，具备了通过外表访问 ODPS 表的能力。在创建 ODPS 外表时，OceanBase 数据库提供了针对 Storage API 和 Tunnel API 的参数配置选项，参数使用方式详见 [CREATE EXTERNAL TABLE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479522)，Storage API 和 Tunnel API 的选择详见下表。

| 维度 | Storage API | Tunnel API | 适用场景 |
| --- | --- | --- | --- |
| 特点 | 支持细粒度数据访问（例如分区过滤、谓词下推）。 | 专注全表数据的高效导入/导出，无条件过滤能力。 | HTAP 混合负载、分区表条件查询、与计算引擎（像 Spark 一样和 ODPS 深度集成）深度集成。 |
| 分片策略 | 自动分片：按字节或行数动态拆分任务，提升并行效率。 | 手动分片：需开发者自行计算分区大小或行数，配置较为复杂。性能相较于 Storage API 较低，且对 ODPS 的资源配置无特殊要求，可兼容所有 ODPS 配置规格。 | - Storage API：适用于多分区表场景，支持两种动态分片策略：      - 按字节（byte）：当数据记录大小差异较大时，通过按字节分片确保各分片数据量均衡，避免计算倾斜。     - 按行数（row）：当记录大小较一致时，通过固定行数分片提升并行处理效率。 - Tunnel API：适合 ODPS 未开通相关 Storage API 服务或者兼容性场景。 |
| 性能优化 | 低资源消耗：谓词下推减少传输数据量，计算下推到数据库侧。查询速度更快。 | 高资源消耗：全量传输可能占用大量带宽与存储。 | 需减少传输数据量、提升 HTAP 效率时选 Storage API；简单 ETL 或全量备份选 Tunnel API。 |
| 环境要求 | OceanBase 数据库 V4.4.0 版本。 | 无特殊限制。 | 环境支持 VPS 时优先 Storage API；旧版本或简单场景选 Tunnel API。 |
| 数据过滤能力 | 支持：通过 SQL 条件（例如 `WHERE`）过滤数据，仅传输所需部分。 | 不支持：需全量传输后本地过滤。 | 需按条件筛选数据（如分析特定用户行为）时选 Storage API。 |

## Catalog 外表

OceanBase 数据库通过 Catalog（数据目录） 功能，实现对外部数据源的统一管理和高效查询。该功能通过新增 Catalog-Database-Table 三层数据层级，支持直接访问外部数据源（如 ODPS、HMS 等）中的表数据，无需手动创建映射表。更多 Catalog 介绍信息，参见 [Catalog 概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476727)。

OceanBase 数据库 Catalog 数据源支持情况如下：

| 类型 | 支持版本 | 数据源类型 | 表格式支持 | 说明 |
| --- | --- | --- | --- | --- |
| ODPS Catalog | OceanBase 数据库 V4.3.5 BP2 及以上版本 | ODPS | MaxCompute 表 | 适用于阿里云 MaxCompute 平台的数据查询。 |
| HMS Catalog | OceanBase 数据库 V4.4.1 及以上版本 | HMS | Hive、Iceberg 表 | 通过 Hive Metastore 管理元数据，支持开源数据湖生态。 |

## 相关文档

- [创建外表](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479341)
 - [创建外表分区](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479339)
 - [管理外部文件](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479338)
 - [数据类型映射](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479337)

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