首批通过分布式安全可靠测评,为关键业务系统打造
关于外表
更新时间:2026-03-05 08:04:42
通常,数据库中的表数据存放在数据库的存储空间中,而外表的数据存储在外部存储服务中。创建外表时,需要定义数据文件路径和数据文件的格式。创建成功后,用户就可以通过外表从外部存储服务中读取文件中的数据。
外表可以像普通表一样,与其他表进行链接、聚合、排序等,外表与普通表的差异如下:
外表的数据存储在外部文件中,普通表的数据存储在数据库中。
外表是只读的,可以在查询语句使用,但不能执行 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。