Управление партиционированием данных
Содержание раздела
Настройка партиционирования данных
Партиционирование таблицы доступно только при ее создании.
Чтобы настроить партиционирование данных:
- Создайте партиционированную таблицу, выполнив CREATE TABLE с ключевым словом
PARTITION BY
. - Создайте необходимое число партиций таблицы, выполнив для каждой партиции CREATE TABLE с ключевыми словами
PARTITION OF
иFOR VALUES FROM ... TO
. - (Опционально) Повторите шаги 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;