在Postgres 10中使用postgres_fdw扩展名,我试图对我的数据进行分片。
根据以下网址,我执行了一些步骤。 http://www.3manuek.com/postgresmanualsharding
最初,我在我的服务器test1,test2和test3中创建了3个数据库。然后我做了以下事情。
创建了3个服务器,如下所示。
CREATE SERVER shard1_main FOREIGN DATA WRAPPER postgres_fdw
OPTIONS(host 'localhost',port '5432',dbname 'test1');
为以下所有3个分片映射用户。
CREATE USER MAPPING FOR rdarukumalli SERVER shard1_main OPTIONS(user 'rdarukumalli');
创建主表和外表。 CREATE TABLE main(shardKey char(2),key bigint,avalue text);
CREATE SERVER shard1_main FOREIGN DATA WRAPPER postgres_fdw
OPTIONS(host ‘localhost',port '5432',dbname 'test1');
CREATE SERVER shard2_main FOREIGN DATA WRAPPER postgres_fdw
OPTIONS(host ‘localhost',port '5432',dbname 'test2');
CREATE SERVER shard3_main FOREIGN DATA WRAPPER postgres_fdw
OPTIONS(host ‘localhost',port '5432',dbname 'test3');
将数据插入主表。
INSERT INTO main
SELECT '0' || round(random()*1+1),i.i,random()::text
FROM generate_series(1,20000) i(i) ;
插入数据后,当我验证分片时,我没有看到数据被插入到这些分片中。只有在主表中,才有数据。
但是explain命令正确显示基于分片键的分片。
我有什么遗漏吗?