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