Разница в политике кодирования таблиц между кластерами Kusto / ADX - PullRequest
0 голосов
/ 29 апреля 2020

У меня точно такая же таблица в 2 разных кластерах ADX / Kusto - данные / схема идентичны, но если я вычислю ExtentSize для 1 дня данных, разница между ними будет огромной. В то время как таблица на кластере имеет 10 ТБ, таблица на другой имеет 15 ТБ. Это большая разница. Когда я проверил политики кодирования в обеих таблицах, была небольшая разница. Таблица в первом кластере имеет следующую политику кодирования: -

"ColumnIndexRangeGranularity": 0,
"ShardFieldCompressionCodec": "DEFAULT",

В то время как таблица в другом кластере имеет следующее: -

"ColumnIndexRangeGranularity": 32,
"ShardFieldCompressionCodec": "LZ4",

Моя цель - уменьшить размер другая таблица того же размера, что и первая таблица, поэтому я могу сделать это с меньшим количеством политик кэша. Поэтому в идеале я хотел бы изменить эти два параметра. Но когда я запускаю следующую команду, она не влияет на политику кодирования таблицы: -

.alter table MyTable policy encoding   @'{ "ShardFieldCompressionCodec": "Default" }'

Также нет ошибки.

Итак, у меня два вопроса.

  1. Игнорирует ли ADX всякий раз, когда мы пытаемся изменить политику кодирования таблицы? Эти политики кодирования мы не указали явно, когда таблица создавалась, они назначались кластерами по умолчанию.
  2. Означает ли это, что если у нас одна и та же таблица в 2 разных кластерах с одной и той же схемой / таблицей - их размер экстента всегда будет меняться (поскольку сжатие базовой таблицы различно)?

1 Ответ

1 голос
/ 29 апреля 2020

Политика кодирования может быть установлена ​​для разных объектов:

  • столбец - влияет только на данные, введенные в столбец после изменения политики.
  • таблица - влияет только на столбцы, которые будут быть добавлен в таблицу после изменения политики.
  • база данных - влияет только на таблицы, которые будут созданы в базе данных после изменения политики.

Похоже, что вы заинтересован в изменении политики уровня column , а не политики уровня table . Однако вы должны понимать, что это не изменит кодировку данных, которые уже были приняты.

...