Запрос Kusto для обновления типа столбца таблицы без влияния на данные

У меня есть таблица kusto с полями id: int и name: string с данными в ней. Я пытаюсь изменить типы схемы таблицы для id: int на id: long. Я пробовал следующее, но это вызывает ошибку ниже. Я также пробовал .alter вместо .alter-merge, но не повезло. Какова процедура обновления типа столбца таблицы Kusto для существующей таблицы с данными и без нарушения текущих данных?

.alter-merge table mytable
(Id: long, Name: string)

Ошибка: «Изменить таблицу не поддерживает изменение типа данных столбца для существующих столбцов (Id). Текущий тип = I32, запрашиваемый тип = I64 '.


person Kurkula    schedule 27.01.2021    source источник


Ответы (1)


Вот процесс, которому вы должны следовать, чтобы достичь желаемого:

  1. Создайте новую таблицу с именем OldTable с обновленной схемой
  2. Создайте функцию с именем Table (имя должно совпадать с именем исходной таблицы), которая будет возвращать union (OldTable | project id = tolong(id), name), (Table | project id = tolong(id), name) - таким образом, всякий раз, когда кто-то напишет Table, он вызовет функцию, которая будет возвращать данные из обеих таблиц в правильной схеме.
  3. Поменять местами Table и OldTable
  4. Когда данные в таблице OldTable устареют (в конце периода хранения), они станут пустыми, и вам придется сначала удалить функцию Table, а затем таблицу OldTable.
person Slavik N    schedule 27.01.2021