首批通过分布式安全可靠测评,为关键业务系统打造
关于外表
更新时间:2026-03-31 18:07:07
通常,数据库中的表数据存放在数据库的存储空间中,而外表的数据存储在外部存储服务中。创建外表时,需要定义数据文件路径和数据文件的格式。创建成功后,用户就可以通过外表从外部存储服务中读取文件中的数据。
外表可以像普通表一样,与其他表进行链接、聚合、排序等,外表与普通表的差异如下:
外表的数据存储在外部文件中,普通表的数据存储在数据库中。
外表是只读的,可以在查询语句使用,但不能执行 DML 操作。
外表不支持添加约束和创建索引。
通常来说,外表的访问速度会慢于普通表。
HDFS 外表
HDFS 外表读
Hadoop 分布式文件系统(HDFS)是 Hadoop 生态系统中的一个核心组件,用于存储和处理大规模数据集。因此,OceanBase 数据库新增了 HDFS 外表读功能,支持直接访问 HDFS 存储的数据。
关于创建 HDFS 外表(文件在 HDFS 上)的详细介绍信息,参见 CREATE EXTERNAL TABLE。
由于 HDFS 的 SDK 是用 Java 开发的,而 OceanBase 是用 C++ 开发的,因此需要通过 JNI(Java Native Interface)框架来进行桥接。类似地,ODPS 的 Java SDK 也需要 Java 环境来运行。为了使用 HDFS 外表功能,您需要配置 Java 环境,并通过特定的配置项进行控制,从而创建能够访问 HDFS 文件的表。相关配置项如下:
关于配置 Java 环境的详细介绍信息,参见 部署 OceanBase 数据库 JAVA SDK 环境。
HDFS 外表写
OceanBase 数据库在 V4.4.0 版本支持 HDFS 外表驱动写的功能。关于 HDFS 外表驱动写的详细介绍信息,参见 SELECT INTO。
ODPS 外表
MaxCompute(ODPS)提供了开放存储(Storage API)和 Tunnel API:
- Storage API:数据服务接口,提供了高效、低延迟、安全的数据读方式。
- Tunnel API:数据上传/下载接口,主要用于批量操作表数据(例如全表数据导入导出)。
OceanBase 数据库通过适配 ODPS API,具备了通过外表访问 ODPS 表的能力。在创建 ODPS 外表时,OceanBase 数据库提供了针对 Storage API 和 Tunnel API 的参数配置选项,参数使用方式详见 CREATE EXTERNAL TABLE,Storage API 和 Tunnel API 的选择详见下表。
| 维度 | Storage API | Tunnel API | 适用场景 |
|---|---|---|---|
| 特点 | 支持细粒度数据访问(例如分区过滤、谓词下推)。 | 专注全表数据的高效导入/导出,无条件过滤能力。 | HTAP 混合负载、分区表条件查询、与计算引擎(像 Spark 一样和 ODPS 深度集成)深度集成。 |
| 分片策略 | 自动分片:按字节或行数动态拆分任务,提升并行效率。 | 手动分片:需开发者自行计算分区大小或行数,配置较为复杂。性能相较于 Storage API 较低,且对 ODPS 的资源配置无特殊要求,可兼容所有 ODPS 配置规格。 |
|
| 性能优化 | 低资源消耗:谓词下推减少传输数据量,计算下推到数据库侧。查询速度更快。 | 高资源消耗:全量传输可能占用大量带宽与存储。 | 需减少传输数据量、提升 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 概述。
OceanBase 数据库 Catalog 数据源支持情况如下:
| 类型 | 支持版本 | 数据源类型 | 表格式支持 | 说明 |
|---|---|---|---|---|
| ODPS Catalog | OceanBase 数据库 V4.3.5 BP2 及以上版本 | ODPS | MaxCompute 表 | 适用于阿里云 MaxCompute 平台的数据查询。 |
| HMS Catalog | OceanBase 数据库 V4.4.1 及以上版本 | HMS | Hive、Iceberg 表 | 通过 Hive Metastore 管理元数据,支持开源数据湖生态。 |