Управление партиционированием данных

Содержание раздела
  1. Настройка партиционирования данных
  2. Изменение партиционированной таблицы или партиции
  3. Удаление партиционированной таблицы или партиции

Настройка партиционирования данных

Партиционирование таблицы доступно только при ее создании.

Чтобы настроить партиционирование данных:

  1. Создайте партиционированную таблицу, выполнив CREATE TABLE с ключевым словом PARTITION BY.
  2. Создайте необходимое число партиций таблицы, выполнив для каждой партиции CREATE TABLE с ключевыми словами PARTITION OF и FOR VALUES FROM ... TO.
  3. (Опционально) Повторите шаги 1-2 для остальных таблиц, которые нужно партиционировать.

Партиционированная таблица и ее партиции должны принадлежать одной логической БД, а их структура должна полностью совпадать.

Ниже показаны примеры запросов, позволяющих настроить партиционирование для одной таблицы с несколькими партициями:

-- создание партиционированной таблицы 
-- для партиционирования данных по дате и времени платежной транзакции
CREATE TABLE marketing.sales_partitioned (
  id BIGINT NOT NULL,
  transaction_date TIMESTAMP NOT NULL,
  product_code VARCHAR(256),
  product_units BIGINT,
  store_id BIGINT,
  description VARCHAR(256),
  PRIMARY KEY (id, transaction_date)
)
DATASOURCE_TYPE ('adp_main')
PARTITION BY (transaction_date);

-- создание партиции для записей о транзакциях за январь 2023 года
CREATE TABLE marketing.sales_jan_2023 
PARTITION OF marketing.sales_partitioned
DATASOURCE_TYPE ('adp1')
FOR VALUES FROM ('2023-01-01 00:00:00') TO ('2023-01-31 23:59:59');

-- создение партиции для записей о транзакциях за февраль 2023 года
CREATE TABLE marketing.sales_feb_2023 
PARTITION OF marketing.sales_partitioned
DATASOURCE_TYPE ('adp2')
FOR VALUES FROM ('2023-02-01 00:00:00') TO ('2023-02-28 23:59:59');

... -- создание партиций для других месяцев

Изменение партиционированной таблицы или партиции

Чтобы переименовать партиционированную таблицу или партицию, выполните ALTER TABLE RENAME. Переименовать партиционированную таблицу можно, только если у нее нет партиций.

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

Система не приводит партиционированную таблицу и ее партиции к единой структуре. Если структура партиционированной таблицы или партиции изменилась, например добавился столбец, необходимо привести все связанные таблицы к такой же структуре.

Ниже показаны примеры запросов для добавления столбца в партиционированную таблицу и партиции:

-- добавление столбца в партиционированную таблицу
ALTER TABLE marketing.sales_partitioned
ADD COLUMN manager_id BIGINT;

-- добавление столбца в партицию, хранящую данные за январь 2023 года
ALTER TABLE marketing.sales_jan_2023
ADD COLUMN manager_id BIGINT;

-- добавление столбца в партицию, хранящую данные за февраль 2023 года
ALTER TABLE marketing.sales_feb_2023
ADD COLUMN manager_id BIGINT;

... -- добавление столбца в другие партиции таблицы sales_partitioned

Удаление партиционированной таблицы или партиции

Чтобы удалить партиционированную таблицу или партицию, выполните DROP TABLE. Удалить партиционированную таблицу можно, только если у нее нет партиций.

Ниже показаны примеры запросов для удаления партиций и партиционированной таблицы:

-- удаление партиции, хранящей данные за январь 2023 года
DROP TABLE marketing.sales_jan_2023;

-- удаление партиции, хранящей данные за февраль 2023 года
DROP TABLE marketing.sales_feb_2023;

... -- удаление других партиций таблицы sales_partitioned

-- удаление связанной партиционированной таблицы
DROP TABLE marketing.sales_partitioned;