内表和外表说明

最近更新时间:2026-05-06 16:28:13

我的收藏
TCHouse-X 的数据表分为 内表 (Internal Table) 和外表 (External Table)。两者主要区别在于数据存储位置、数据管理权限和支持的 DML 操作。
核心特性对比如下:
特性
内表 (Internal Table)
外表 (External Table)
数据存储
TCHouse-X 托管存储(数据与元数据统一管理)
用户自管的 COS 存储桶、HDFS(数据与元数据分离)
DDL 语法
CREATE TABLE
CREATE EXTERNAL TABLE
存储格式
TCHouse-X 自研结构,系统自动决定
建表时可指定(如 STORED AS TEXTFILE
核心优势
更高的读写性能,支持行级修改
零 ETL,可直接读取外部数据资产
DML 支持
完整支持: INSERT, LOAD, UPDATE, DELETE, TRUNCATE
有限支持: 仅支持 INSERT, LOAD, TRUNCATE。不支持 UPDATE/DELETE
文件优化
支持系统自动合并文件 (COMPACTION)
不支持 COMPACTION,写入易产生小文件

详细说明与示例

内表

内表是 TCHouse-X 自研的表结构,为追求极致的读写性能而设计。
性能: 具有更高的读写性能和查询效率。
存储: 数据仅存储在 TCHouse-X 的托管存储中,用户不需手动维护数据文件。
DDL 约束: 建表时使用 CREATE TABLE,不支持指定 LOCATION 和底层存储格式。
DML 支持: 支持完整的 DML 操作,包括行级的 UPDATE 和 DELETE。
示例:创建内表
CREATE TABLE default.dt1 (
id INT,
name VARCHAR(50)
);

外表

外表用于连接 TCHouse-X 外部已有的数据源,实现分析计算。
存储: 数据存储在用户自管的 COS 桶或 HDFS 中。
DDL 约束: 必须使用 CREATE EXTERNAL TABLE 语法,且必须通过 LOCATION 参数指定数据文件的路径。
读取格式: 支持对 Parquet、Textfile、ORC、JSON 等主流文件进行读操作。
DML 限制: 不支持行级的数据修改 (UPDATE, DELETE)。
文件问题: 不支持文件合并 (COMPACTION) 特性,写入操作会创建多个小文件。
示例:创建外表
CREATE EXTERNAL TABLE default.dt1 (
id INT,
name VARCHAR(50)
)
STORED AS TEXTFILE
LOCATION 'cosn://bucket-name/path';