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 TEXTFILELOCATION 'cosn://bucket-name/path';