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