Необходим ли первичный ключ для базы данных greenplum? - PullRequest
0 голосов
/ 10 октября 2019

Мы знаем, что greenplum - это хранилище данных MPP, мы будем импортировать в него данные из mysql каждый день, первичный ключ может конфликтовать из другого источника. Я разрабатываю схему, я не уверен:

Требуется ли первичный ключ для каждой таблицы?

Из официальных документов первичный ключ используется для раздела по умолчанию, но я могу указать другой ключ для раздела, есть ли какая-либо другая причина, по которой я должен установить первичный ключ?

1 Ответ

0 голосов
/ 10 октября 2019

Нет, первичный ключ не нужен в Greenplum. Это на самом деле снизит производительность загрузки, займет место на диске и, вероятно, не будет использоваться для каких-либо запросов.

Ключ распределения часто устанавливается логическим первичным ключом таблицы, но без фактического создания первичного ключа. Ключ распределения должен представлять собой столбец высокой мощности, такой как первичный ключ, который помогает равномерно распределить данные по сегментам. И вы также можете указать другой ключ для ключа распределения.

Наконец, я бы не назвал это способом «разбивать» данные, потому что в Greenplum это еще что-то. Разделение похоже на разделение Oracle или SQL Server с помощью оптимизатора запросов, исключая разделы в зависимости от условий (где month = 1) в запросе.

...