Проверка функции HA SH для разбиения таблицы Postgres - PullRequest
0 голосов
/ 24 апреля 2020

Я использую Postgres 11 и хотел бы использовать разделение Ha sh для таблицы, где первичным ключом является UUID. Я понимаю, что мне нужно заранее выбрать количество разделов, и что модуль функции ha sh на первичном ключе будет использоваться для назначения строк каждому разделу.

Примерно так:

CREATE TABLE new_table ( id uuid ) PARTITION BY HASH (id);
CREATE TABLE new_table_0 PARTITION OF new_table FOR VALUES WITH (MODULUS 3, REMAINDER 0);
CREATE TABLE new_table_1 PARTITION OF new_table FOR VALUES WITH (MODULUS 3, REMAINDER 1);
CREATE TABLE new_table_2 PARTITION OF new_table FOR VALUES WITH (MODULUS 3, REMAINDER 2);

В документации упоминается "значение ha sh ключа раздела", но не указывается, как происходит это хеширование. Я хотел бы проверить эту функцию ha sh на моих существующих данных, чтобы увидеть шаблоны распределения для различного числа разделов. Примерно так:

SELECT unknown_partition_hash_function(id) AS hash_value, COUNT(id) AS number_of_records
FROM existing_table
GROUP BY 1

Есть ли способ использовать эту функцию ha sh в операторе SELECT?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...