Шардирование таблиц: текущие ограничения

При работе с шардированными таблицами учитывайте следующие ограничения:

  1. Локальные и кластерные шардированные таблицы не могут сосуществовать на одних и тех же узлах: На наборе узлов, входящих в кластер репликации, нельзя смешивать:

    • Локальные шардированные таблицы (созданные без префикса кластера: create table s ... shards='N' rf='1')
    • Кластерные шардированные таблицы (созданные с префиксом кластера: create table c:r ... shards='N' rf='M')

    Пример: рассмотрим кластер из 2 узлов, где:

    • Таблица s была создана независимо на каждом узле как локальная шардированная таблица
    • Таблица r реплицируется на оба узла через кластер

    В этой конфигурации попытка создать кластерную шардированную таблицу (create table c:r ... shards='N' rf='2') на тех же узлах завершится ошибкой.

  2. Согласованность имени кластера:

    • Подсистема шардирования при первом использовании привязывается к одному имени кластера; все кластерные шардированные таблицы на этих узлах должны использовать это же имя кластера.
    • После выбора имени кластера оно применяется ко всем последующим созданиям кластерных шардированных таблиц.

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

    create table c:users ... shards='N' rf='M'

    Все последующие кластерные шардированные таблицы должны использовать кластер c:

    create table c:orders ... shards='N' rf='M'  -- works
    create table d:items  ... shards='N' rf='M'  -- fails
  3. Изменение таблиц не поддерживается:

    • После создания шардированной таблицы ее структуру нельзя изменить с помощью ALTER TABLE.
    • Чтобы изменить схему, нужно:
      1. Создать новую шардированную таблицу с нужной структурой
      2. Скопировать данные в новую таблицу
      3. Удалить старую таблицу
  4. Ограничение на число шардов:

    • Не более 3,000 шардов на одну шардированную таблицу.
    • Это ограничение действует независимо от конфигурации кластера и размера таблицы.
    • Планируйте стратегию шардирования с учетом этого лимита.
  5. rf и shards должны быть целыми числами в кавычках:

    • Оба параметра требуют заключенного в кавычки числового значения (shards='10', rf='2'); значения без кавычек, нечисловые, пустые или дробные значения отклоняются.
    • На автономном (не кластерном) сервере rf должен быть равен '1'.
    • В кластере репликации rf должен быть от 1 до числа узлов в кластере.
Last modified: June 12, 2026