TBase-建表

作者:XuYuchong

1、创建数据表

1.1、创建shard普通表

TBase_shard普通表

TBase_shard普通表续

TBase_shard普通表说明

说明:

  • distribute by shard(x) 用于指定分布键,数据分布于那个节点就是根据这个字段值来计算分片。

  • to group xxx 用于指定存储组(每个存储组可以有多个节点)。

  • 分布键字段值不能修改,字段长度不能修改,字段类型不能修改。

1.2、创建shard普通分区表

TBase_shard分区表

TBase_shard分区表续

[tbase@VM_0_37_centos shell]$ psql -h 172.16.0.42 -p 11387 -d postgres -U tbasepsql (PostgreSQL 10.0 TBase V2)Type "help" for help.postgres=# create table public.t1_pt(f1 int not null,f2 timestamp not null,f3 varchar(20),primary key(f1)) partition by range (f2) begin (timestamp without time zone '2019-01-01 0:0:0') step (interval '1 month') partitions (3) distribute by shard(f1) to group default_group;CREATE TABLEpostgres=#postgres=# \d+ public.t1_pt                                             Table "public.t1_pt" Column |            Type             | Collation | Nullable | Default | Storage  | Stats target | Description --------+-----------------------------+-----------+----------+---------+----------+--------------+------------- f1     | integer                     |           | not null |         | plain    |              |  f2     | timestamp without time zone |           | not null |         | plain    |              |  f3     | character varying(20)       |           |          |         | extended |              | Indexes:    "t1_pt_pkey" PRIMARY KEY, btree (f1)Distribute By: SHARD(f1)Location Nodes: ALL DATANODESPartition By: RANGE(f2)         # Of Partitions: 3         Start With: 2019-01-01         Interval Of Partition: 1 MONTHpostgres=#

说明:

  • partition by range (x) 用于指定分区键,支持timesamp,int类型,数据分布于那个子表就是根据这个字段值来计算分区。

  • begin( xxx )指定开始分区的时间点。

  • step(xxx)指定分区有周期

  • partions(xx)初始化时建立分区子表个数。

  • 增加分区子表的方法ALTER TABLE public.t1_pt ADD PARTITIONS 2;

1.3、创建shard冷热分区表

TBase_shard冷热分区表

TBase_shard冷热分区表续

[tbase@VM_0_37_centos shell]$ psql -h 172.16.0.42 -p 11387 -d postgres -U tbasepsql (PostgreSQL 10.0 TBase V2)Type "help" for help.postgres=# create table public.t1_cold_hot(f1 int not null,f2 timestamp not null,f3 varchar(20),primary key(f1)) partition by range (f2) begin (timestamp without time zone '2017-01-01 0:0:0') step (interval '12 month') partitions (4) distribute by shard(f1,f2) to group default_group cold_group;CREATE TABLEpostgres=# \d+ public.t1_cold_hot                                          Table "public.t1_cold_hot" Column |            Type             | Collation | Nullable | Default | Storage  | Stats target | Description --------+-----------------------------+-----------+----------+---------+----------+--------------+------------- f1     | integer                     |           | not null |         | plain    |              |  f2     | timestamp without time zone |           | not null |         | plain    |              |  f3     | character varying(20)       |           |          |         | extended |              | Indexes:    "t1_cold_hot_pkey" PRIMARY KEY, btree (f1)Distribute By SHARD(f1,f2)        Hotnodes:dn001 Coldnodes:dn002Partition By: RANGE(f2)         # Of Partitions: 4         Start With: 2017-01-01         Interval Of Partition: 12 MONTHpostgres=#

说明:

  • Distribute By SHARD(f1,f2),冷热分区表需要指定两个字段来做路由,分别是分布键和分区键。

  • to group default_group cold_group,需要指定两个存储组,第一个是热数据存储组,第二个是冷存储组。

创建时间范围冷热分区表需要有两个group,冷数据的cold_group对应的节点需要标识为冷节点,如下所示

 [tbase@VM_0_37_centos shell]$ psql -h 172.16.0.42 -p 11000 -d postgres -U tbasepsql 
 (PostgreSQL 10.0 TBase V2)Type "help" for help
 .postgres=#  select pg_set_node_cold_access(); 
 pg_set_node_cold_access 
 ------------------------- success(1 row)

冷热分区表需要在postgresql.conf中配置冷热分区时间参数和分区级别,如下所示

cold_hot_sepration_mode = 'year'
enable_cold_seperation = true
manual_hot_date = '2019-01-01'

1.4、创建复制表

TBase_shard冷热分区表

[tbase@VM_0_37_centos shell]$ psql -h 172.16.0.42 -p 11387 -d postgres -U tbasepsql (PostgreSQL 10.0 TBase V2)Type "help" for help.postgres=# create table public.t1_rep(f1 int not null,f2 varchar(20),primary key(f1)) distribute by replication ;to group default_group;CREATE TABLE

说明:

  • 经常要跨库JOIN的小数据量表可以考虑使用复制表。

  • 复制表是所有节点都有全量数据,对于大数据量的数据表不适合。

  • 复制表更新性能较低。

*禁止转载,可转发(转发文章请注明出处)

TBase-建表

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TBase DataX是一个开源的数据传输工具,用于在不同数据源之间进行数据的传输和同步。它可以支持包括关系型数据库、大数据存储系统、文件系统等多种数据源之间的数据传输。 TBase DataX的工作原理是通过插件化的方式,将不同数据源的读取和写入过程抽象成不同的插件,以实现数据的源端读取和目标端写入。用户可以通过配置文件来指定读取和写入的数据源,并定义数据的转换规则和筛选条件。 相对于传统的数据传输工具,TBase DataX具有以下几个特点: 1. 插件化架构:TBase DataX采用了插件化的架构设计,使得它可以灵活地支持不同数据源的读取和写入操作。用户可以根据实际需求选择不同的插件,无需修改核心代码。 2. 分布式传输:TBase DataX支持将数据传输任务分发到多台机器上进行并发处理,提高了传输的效率和速度。同时,它还提供了故障转移和容错机制,保证数据传输的可靠性。 3. 简单易用:TBase DataX提供了简洁的配置文件格式,用户可以通过简单的配置来完成数据传输任务。同时,它还提供了丰富的日志和监控功能,方便用户进行任务的管理和监控。 总的来说,TBase DataX是一个功能强大、灵活易用的数据传输工具,可以帮助用户快速实现不同数据源之间的数据传输和同步。无论是大数据环境下的数据迁移,还是数据仓库的数据同步,TBase DataX都能提供稳定可靠的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值