首批通过分布式安全可靠测评,为关键业务系统打造
关于外表与外部文件
更新时间:2026-06-24 21:06:44
外表(External Table)的数据存储在 OceanBase 集群外部的存储系统中(本地目录、对象存储、HDFS 等),数据库内仅保存元数据与访问路径。创建成功后,可像普通表一样用于 SELECT、JOIN、聚合等,但只读,不支持 DML、约束与索引。
与普通表的差异:
| 特性 | 外表 | 普通表 |
|---|---|---|
| 数据位置 | 外部存储 | OceanBase 内部 |
| 读写 | 外表只读:可 SELECT,不能对其执行 INSERT、UPDATE、DELETE 等 DML。 |
读写 |
| 约束与索引 | 不支持 | 支持 |
| 典型性能 | 受网络与外部系统影响 | 本地访问更快 |
注意事项
- 创建时根据
LOCATION、PATTERN收集文件列表;新增文件需刷新,参见 管理外部文件 与 ALTER EXTERNAL TABLE。 - 外表分区在
PARTITION_TYPE = USER_SPECIFIED时,可通过 ALTER EXTERNAL TABLE 增加或删除分区LOCATION(MySQL 模式 ALTER 能力请以对应文档为准)。 - 已删除的外部文件查询时不报错;并发修改外部文件可能导致非预期结果。
外部数据访问方式
| 方式 | 是否创建表对象 | 典型场景 | 语法与文档入口 |
|---|---|---|---|
| 外表(CREATE EXTERNAL TABLE) | 是 | 需反复查询、需 JOIN 内表、需管理文件列表与分区 | CREATE EXTERNAL TABLE、创建和查询外表 |
| FILES 表函数 | 否 | 临时探查、一次性读取 | FILES 表函数、URL 外表(无元数据) |
说明
文件格式(FORMAT)的完整参数以 CREATE EXTERNAL TABLE 为准。External Catalog 等能力以 MySQL 模式文档为主,Oracle 模式请以实际支持的功能为准。
HDFS 外表
访问 HDFS 需部署 OceanBase 数据库 JAVA SDK 环境,并配置 ob_enable_java_env 等项。详见 CREATE EXTERNAL TABLE。故障排查,参见 外表常见问题排查指南。