Citus数据分片分布研究(一 在工作节点直接操作表)
生活随笔
收集整理的這篇文章主要介紹了
Citus数据分片分布研究(一 在工作节点直接操作表)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
(本文中凡是未顯式指出的SQL,均在協(xié)調(diào)節(jié)點上執(zhí)行)
工作節(jié)點
mydb1=# SELECT * FROM master_get_active_worker_nodes();node_name | node_port ---------------+-----------192.168.7.131 | 5432192.168.7.135 | 5432192.168.7.136 | 5432192.168.7.137 | 5432192.168.7.133 | 5432192.168.7.132 | 5432192.168.7.134 | 5432192.168.7.130 | 5432 (8 rows)創(chuàng)建表test_table
create table test_table(id int, name varchar(16));此時在協(xié)調(diào)節(jié)點上用 \d 可以看到表test_table。
配置分片原則
SELECT master_create_distributed_table('test_table', 'id', 'hash');根據(jù)分片數(shù)和副本數(shù)進(jìn)行分片
SELECT master_create_worker_shards('test_table', 8, 1);此時在工作節(jié)點上用 \d 可以看到表test_table_XXXXXX。
查看分片
mydb1=# SELECT * from pg_dist_shard;logicalrelid | shardid | shardstorage | shardminvalue | shardmaxvalue --------------+---------+--------------+---------------+---------------test_table | 102024 | t | -2147483648 | -1610612737test_table | 102025 | t | -1610612736 | -1073741825test_table | 102026 | t | -1073741824 | -536870913test_table | 102027 | t | -536870912 | -1test_table | 102028 | t | 0 | 536870911test_table | 102029 | t | 536870912 | 1073741823test_table | 102030 | t | 1073741824 | 1610612735test_table | 102031 | t | 1610612736 | 2147483647 (8 rows)可見,工作節(jié)點上的表名test_table_XXXXXX中最后的一段數(shù)字,即是這里的shardid。
操作表test_table
mydb1=# INSERT INTO test_table VALUES(1,'a'); INSERT 0 1 mydb1=# INSERT INTO test_table VALUES(2,'b'); INSERT 0 1 mydb1=# INSERT INTO test_table VALUES(3,'c'); INSERT 0 1 mydb1=# INSERT INTO test_table VALUES(4,'d'); INSERT 0 1 mydb1=# INSERT INTO test_table VALUES(5,'e'); INSERT 0 1 mydb1=# INSERT INTO test_table VALUES(6,'f'); INSERT 0 1 mydb1=# INSERT INTO test_table VALUES(7,'g'); INSERT 0 1 mydb1=# INSERT INTO test_table VALUES(8,'h'); INSERT 0 1 mydb1=# select * from test_table;id | name ----+------1 | a8 | h5 | e4 | d7 | g3 | c6 | f2 | b (8 rows)在工作節(jié)點上直接操作表
在worker node上執(zhí)行:
mydb1=# select * from test_table_102024; id | name ----+------ 1 | a 8 | h (2 rows)可見表test_table的記錄是根據(jù)id列hash散布在8個工作節(jié)點中的。
嘗試直接向工作節(jié)點插入數(shù)據(jù),在worker node上執(zhí)行:
然后再進(jìn)行查詢:
mydb1=# select * from test_table_102024; id | name -----+------ 1 | a 8 | h 999 | 999 (3 rows)在協(xié)調(diào)節(jié)點coordinator node上進(jìn)行查詢:
mydb1=# select * from test_table;id | name -----+------1 | a8 | h999 | 9995 | e4 | d7 | g3 | c6 | f2 | b (9 rows)可見直接對工作節(jié)點進(jìn)行的數(shù)據(jù)操作,可以在協(xié)調(diào)節(jié)點正常訪問(但是沒按照id進(jìn)行哈希分布)。
總結(jié)
以上是生活随笔為你收集整理的Citus数据分片分布研究(一 在工作节点直接操作表)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小孩做艾森克个性测验,原始分为精神质1,
- 下一篇: Citus数据分片分布研究(二 副本与故