#azure-data-explorer #adx
Вопрос:
У меня есть таблица, в которой у нас нет политики разделов. Данные упорядочиваются в зависимости от времени приема пищи. Когда я просматривал этот пост с кляксами https://yonileibowitz.github.io/blog-posts/data-partitioning.html#backfill-or-unordered-ingestion Я понял, что отмена этой политики решит множество проблем, с которыми я сейчас сталкиваюсь. В моем случае у меня есть таблица, давайте назовем ее, так как RAW_INOMING_DATA
ее поля-это T — > Отметка времени пакета, ДАННЫЕ — > > Необработанные данные, сгенерированные в момент T. Теперь мне нужно переопределить раздел в этой таблице, чтобы я мог сделать T в качестве времени приема. Как этого добиться?
Ответ №1:
- идеальным решением для вашего сценария является предварительное разделение данных в источнике с помощью соответствующего свойства datetime (если оно еще не разделено заранее), а затем укажите свойство
creationTime
приема при его приеме. - если данные уже получены, вы можете установить ключ раздела даты и времени с единым диапазоном, при этом имя столбца будет свойством ваших данных, по которым вы хотите разделить. Это повысит эффективность фильтрации по этому столбцу даты и времени во время запроса.
- если вы также хотите, чтобы политика хранения и политика кэширования применялись в соответствии со значениями в этом столбце, установите значение свойства
overrideCreationTime
ключа разделаtrue
равным . - пример выполнения команды для установки такого ключа раздела, как показано в документации:
.alter table TableName policy partitioning ```{ "ColumnName": "timestamp", "Kind": "UniformRange", "Properties": { "Reference": "2021-01-01T00:00:00", "RangeSize": "7.00:00:00", "OverrideCreationTime": false } }```
- если вы также хотите, чтобы политика хранения и политика кэширования применялись в соответствии со значениями в этом столбце, установите значение свойства
Комментарии:
1. Здорово, что я получил ответ от самого Автора блога. Большое спасибо, Йони 🙂
Ответ №2:
Документация политики разделения содержит точный синтаксис команды. Например:
.alter table [table_name] policy partitioning ```
{
"PartitionKeys": [
{
"ColumnName": "my_string_column",
"Kind": "Hash",
"Properties": {
"Function": "XxHash64",
"MaxPartitionCount": 128,
"PartitionAssignmentMode": "Uniform"
}
}
]
}```
Если вам все еще не хватает какой-то информации, пожалуйста, сообщите нам об этом.
Комментарии:
1. пожалуйста, обратите внимание, что этот пример включает ключ раздела с хэшем , в то время как правильный тип ключа раздела для использования в этом сценарии-это *ключ раздела с одинаковым диапазоном даты и времени *