tencent cloud

腾讯云数据仓库 TCHouse-P

产品动态
产品简介
产品概述
应用场景
节点规格
集群架构
购买指南
计费概述
购买方式
欠费说明
快速入门
操作指南
管理集群
访问数据仓库
监控告警
访问管理
性能指标
TPC-B
工具及下载
数据接入
使用 DataX 离线导入 TencentDB 数据
DataX 增量同步导入 MySQL 数据
使用外表高速导入或导出 COS 数据
使用外表同步 EMR 数据
使用 rule 规则实现云数据仓库 PostgreSQL upsert 操作
数仓开发
云上搭建 Airflow
API 文档
History
Introduction
API Category
Making API Requests
Information Query APIs
Instance APIs
Query APIs
Cluster Management APIs
Cluster Operation APIs
Data Types
Error Codes
实践教程
数仓表开发
表分布键选择
表存储格式选择
表分区使用
插件使用
冷备数据
统计信息和空间维护
常见问题
联系我们

数仓表开发

PDF
聚焦模式
字号
最后更新时间: 2024-11-27 15:36:05
腾讯云数据仓库 TCHouse-P 数据库中的表与其它关系型数据库中的表类似,不同的是表中的行被分布在不同 Segment 上,表的分布策略决定了在不同 Segment 上面的分布情况。

创建普通表

CREATE TABLE 命令用于创建一个表,创建表时可以定义以下内容:
表的列以及 数据类型
表约束的定义
使用CREATE TABLE命令创建表,格式如下:
CREATE TABLE table_name (
[ { column_name data_type [ DEFAULT default_expr ] -- 表的列定义
[column_constraint [ ... ] -- 列的约束定义
]
| table_constraint -- 表级别的约束定义
])
[ WITH ( storage_parameter=value [, ... ] ) -- 表存储格式定义
[ DISTRIBUTED BY (column, [ ... ] ) | DISTRIBUTED RANDOMLY ] -- 表的分布键定义
[ partition clause] -- 表的分区定义
示例: 以下示例中的建表语句创建了一个表,使用 trans_id 作为分布键,并基于 date 设置了 RANGE 分区功能。
CREATE TABLE sales (
trans_id int,
date date,
amount decimal(9,2),
region text)
DISTRIBUTED BY (trans_id)
PARTITION BY RANGE(date)
(start (date '2018-01-01') inclusive
end (date '2019-01-01') exclusive every (interval '1 month'),
default partition outlying_dates);

创建临时表

临时表(Temporary Table)会在会话结束时自动删除,或选择性地在当前事务结束的时候删除,用于存储临时中间结果。创建临时表的命令如下:
CREATE TEMPORARY TABLE table_name()
[ON COMMIT {PRESERVE ROWS | DELETE ROWS | DROP}]
说明:临时表的行为在事务块结束时的行为可以通过上述语句中的ON COMMIT来控制。
PRESERVE ROWS:在事务结束时候保留数据,这是默认的行为。
DELETE ROWS:在每个事务块结束时,临时表的所有行都将被删除。
DROP:在当前事务结束时,会删除临时表。
示例: 创建一个临时表,事务结束时候删除该临时表。
CREATE TEMPORARY TABLE temp_foo (a int, b text) ON COMMIT DROP;

表约束的定义

您可以在列和表上定义约束来限制表中的数据,但是有以下一些限制:
CHECK 约束引用的列只能在其所在的表中。
UNIQUE 和 PRIMARY KEY 约束必须包含分布键列,UNIQUE 和 PRIMARY KEY 约束不支持追加优化表和列存表。
允许 FOREIGN KEY 约束在腾讯云数据仓库 TCHouse-P 上无效。
实际使用约束命令如下:
UNIQUE ( column_name [, ... ] )
| PRIMARY KEY ( column_name [, ... ] )
| CHECK ( expression )

检查约束

检查约束(Check Constraints)指定列中的值必须满足一个布尔表达式,例如:
CREATE TABLE products
( product_no integer,
name text,
price numeric CHECK (price > 0) );

非空约束(Not-Null Constraints)

非空约束(Not-Null Constraints)指定列不能有空值,例如:
CREATE TABLE products
( product_no integer NOT NULL,
name text NOT NULL,
price numeric );

唯一约束(Unique Constraints)

唯一约束(Unique Constraints)确保一列或者一组列中包含的数据对于表中所有的行都是唯一的。包含唯一约束的表必须是哈希分布,并且约束列需要包含分布键列,例如:
CREATE TABLE products
( product_no integer UNIQUE,
name text,
price numeric)
DISTRIBUTED BY (product_no);
注意:
仅行存 HEAP 表支持主键约束,APPEDN ONLY 表均不支持主键约束。

主键约束(Primary Keys Constraints)

主键约束(Primary Keys Constraints)是一个 UNIQUE 约束和一个 NOT NULL 约束的组合。包含主键约束的表必须是哈希分布,并且约束列需要包含分布键列。如果一个表具有主键,这个列(或者这一组列)会被默认选中为该表的分布键,例如:
CREATE TABLE products
( product_no integer PRIMARY KEY,
name text,
price numeric)
DISTRIBUTED BY (product_no);
注意:
仅行存 HEAP 表支持主键约束,APPEDN ONLY 表均不支持主键约束。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈