使用postgres_fdw扩展时,Postgres 10中的数据不是分片

时间:2017-12-05 11:33:31

标签: postgresql

在Postgres 10中使用postgres_fdw扩展名,我试图对我的数据进行分片。

根据以下网址,我执行了一些步骤。 http://www.3manuek.com/postgresmanualsharding

最初,我在我的服务器test1,test2和test3中创建了3个数据库。然后我做了以下事情。

  1. 创建扩展名postgres_fdw。
  2. 创建了3个服务器,如下所示。

    CREATE SERVER shard1_main FOREIGN DATA WRAPPER postgres_fdw 
      OPTIONS(host 'localhost',port '5432',dbname 'test1');
    
  3. 为以下所有3个分片映射用户。

    CREATE USER MAPPING FOR rdarukumalli SERVER shard1_main OPTIONS(user 'rdarukumalli');
    
  4. 创建主表和外表。     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');
    
  5. 将数据插入主表。

    INSERT INTO main
    SELECT '0' || round(random()*1+1),i.i,random()::text
    FROM generate_series(1,20000) i(i) ;
    
  6. 插入数据后,当我验证分片时,我没有看到数据被插入到这些分片中。只有在主表中,才有数据。

    但是explain命令正确显示基于分片键的分片。

    我有什么遗漏吗?

0 个答案:

没有答案