0

我在 ubuntu 中使用 postgres-xl。我有一张 9 行的桌子。我想将该表分为 3 个部分。知道我该怎么做吗?

postgres=# SELECT * FROM cities;
 name | location 
------+----------
 a    |        1
 a    |        2
 a    |        4
 a    |        3
 a    |        4
 a    |        5
 a    |        6
 a    |       11
 a    |       14
(9 rows)
4

2 回答 2

2

不确定如何使用 Postgres-XL,但使用pg_shard 扩展,您可以将表哈希分区为 3 个(或更多)块:

CREATE TABLE cities (name text, location int);
SELECT master_create_distributed_table('cities', 'location');
SELECT master_create_worker_shards('cities', 3, 2);

要开始使用 pg_shard,您可以在以下位置找到文档: https ://github.com/citusdata/pg_shard

于 2015-08-18T15:24:22.667 回答
1

您需要在创建表时指定分配策略:

CREATE TABLE cities (
    name VARCHAR,
    location VARCHAR,
    PRIMARY KEY (location)
)
DISTRIBUTE BY HASH(location);

请注意,关于约束有几个陷阱,另请参阅 PostgresXL CREATE TABLE 文档

于 2016-09-08T10:00:28.810 回答