創建分區表
更新時間 2025-02-14 10:21:34
最近更新時間: 2025-02-14 10:21:34
分享文章
本文為您介紹如何創建分區表。
創建范圍分區表
teledb=# create table t_range (f1 bigint,f2 timestamp default now(), f3 integer) partition by range (f3) begin (1) step (50) partitions (3) distribute by shard(f1);
CREATE TABLE
teledb=# insert into t_range(f1,f3) values(1,1),(2,50),(3,100),(2,110);
COPY 4
teledb=# insert into t_range(f1,f3) values(1,1),(2,50),(3,100),(2,110);
COPY 4
teledb=# \d+ t_range;
Table "public.t_range"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
--------+-----------------------------+-----------+----------+---------+---------+--------------+-------------
f1 | bigint | | | | plain | |
f2 | timestamp without time zone | | | now() | plain | |
f3 | integer | | | | plain | |
Distribute By: SHARD(f1)
Location Nodes: ALL DATANODES
Partition By: RANGE(f3)
# Of Partitions: 3
Start With: 1
Interval Of Partition: 50創建時間范圍分區表
teledb=# create table t_time_range
(f1 bigint, f2 timestamp ,f3 bigint)
partition by range (f2) begin (timestamp without time zone '2017-09-01 0:0:0')
step (interval '1 month')
partitions (12) distribute by shard(f1);
CREATE TABLE
teledb=# \d+ t_time_range
Table "public.t_time_range"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
--------+-----------------------------+-----------+----------+---------+---------+--------------+-------------
f1 | bigint | | | | plain | |
f2 | timestamp without time zone | | | | plain | |
f3 | bigint | | | | plain | |
Distribute By: SHARD(f1)
Location Nodes: ALL DATANODES
Partition By: RANGE(f2)
# Of Partitions: 12
Start With: 2017-09-01
Interval Of Partition: 1 MONTH說明
- partion by range(xx) 代表范圍分區, 支持timesamp,int類型,數據分布于那個子表就是根據這個字段值來計算分區。
- begin(xx) 表示開始分區的初始值
- partition(xx) 代表初始分區數量
- step (xx) 代表分區步長