Шардирование в Greenplum®
Шардирование — это стратегия горизонтального масштабирования кластера Greenplum®, при которой части каждой таблицы в базе данных размещаются на разных хостах-сегментах. Каждый запрос на запись или чтение в Greenplum® утилизирует все сегменты кластера.
Ключ дистрибуции
Для оптимизации работы операций JOIN
с большими таблицами вы можете задать ключ дистрибуции
Для создания таблицы с ключом дистрибуции передайте одно или несколько нужных полей в аргументе DISTRIBUTED BY
:
CREATE TABLE tableName
(
column1 type1,
column2 type2,
...
columnN typeN
) DISTRIBUTED BY (column1);
Неверно выбранный ключ может привести к тому, что большая часть данных будет храниться на одном сегменте — это повлечет за собой снижение производительности кластера или остановку работы сегмента, если на его хосте закончится место. Поэтому не выбирайте в качестве ключа дистрибуции:
- поля с временем и датой;
- поля, в которых может оказаться большое количество одинаковых значений;
- поля с большим количеством значений
NULL
.
Примечание
Если при создании таблицы не указать ключ дистрибуции, то данные распределятся по хостам-сегментам либо по первичному ключу (если он задан), либо по первому полю таблицы.
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками Broadcom Inc в США и/или других странах.