Разделите таблицу без разделов в ADX

#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. пожалуйста, обратите внимание, что этот пример включает ключ раздела с хэшем , в то время как правильный тип ключа раздела для использования в этом сценарии-это *ключ раздела с одинаковым диапазоном даты и времени *