AntDB支持自定义分区函数,实现数据路由到特定节点

来源:互联网 发布:c语言的面向对象编程 编辑:程序博客网 时间:2024/06/16 17:04
AntDB支持自定义分区函数,当集群节点确定时,用户可以自定义分区函数,实现特定数据路由到特定的节点。
规则:
1、自定义分区函数的返回值需为整数(smallint, integer, bigint均可)。
2、自定义分区函数的参数需为表的可见字段,一个或者多个字段。
3、分区字段需有非空约束(NOT NULL)。

使用举例:
集群结构:两个coordinator,两个datanode
步骤:
1、自定义函数(注意要满足上面3个规则):
CREATE OR REPLACE FUNCTION mydistributor(id integer, value integer)
    RETURNS integer
    AS
    $$
    BEGIN
        RETURN ( id + value ) % 2;
    END;
    $$
    LANGUAGE plpgsql
    IMMUTABLE
    STRICT;
2、创建表,使表根据自定义的函数分布,传入表的可见字段。
CREATE TABLE test(id integer not null, value integer not null) distribute by mydistributor(id, value);
3、插入数据
postgres=# insert into test values(1,2),(2,2),(3,4);
INSERT 0 3
4、验证
datanode0上查询结果如下:
postgres=# select * from test;
id | value
----+-------
2 | 2
(1 row)

datanode1上查询数据如下:
postgres=# select * from test;
id | value
----+-------
1 | 2
3 | 4
(2 rows)
由此可知,id和value相加结果为偶数的数据在节点0上,id和value相加结果为奇数的数据在节点1上,与自定义函数的逻辑一致。
目前,ADB支持hash(column)、modulo(column)、roundrobin、replication、自定义分片五中分片方式。



阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 义勇 富冈义勇图片 义勇义勇 富刚义勇 鬼灭之刃义勇 福冈义勇 富岗义勇 富冈义勇外传 义勇进行曲 富冈义勇和蝴蝶忍 见义不为无勇也 勇夫安识义 勇夫安识义智者必怀仁 见义勇 鬼灭之刃富冈义勇 鬼灭之刃富冈义勇图片 京剧脸谱表示忠勇义烈的是 爱心义卖 义卖海报 义卖作文 义卖活动 义卖 义卖好处 义卖的好处 孝义卖花 顺义卖花 说服校长义卖活动 义卖活动作文 爱心义卖海报 幼儿园义卖创意摊位图片 义卖海报手绘图片 爱心义卖作文 义卖海报手绘 义卖什么意思 义卖活动好处 幼儿园义卖招牌图片 义卖活动方案 爱心义卖手绘图画 义卖活动的好处 义卖是什么意思 幼儿义卖简易海报图