Как создать столбец со значением по умолчанию / Как заполнить столбец с тем же значением в Kusto - PullRequest
1 голос
/ 26 февраля 2020

Я знаю, как сделать это с ограничением DEFAULT при создании таблицы или с UPDATE и SET при изменении таблицы с другими экземплярами SQL. Есть ли простой способ сделать это с помощью команды .create table или .alter-merge table Kusto?

Вот мой пример использования, откуда возникает этот вопрос, если это полезно:

У меня есть сценарий python, который удаляется (если существует), создает таблицу в Kusto, а затем принимает данные из локальный CSV-файл в эту таблицу, и он работает хорошо.

CSV-файл для загрузки имеет 3 столбца. Я хотел бы создать 4-й столбец и вставить с тем же значением, когда он создается / попадает в Kusto. Это возможно?

Например:

MyData.csv для загрузки (заголовок будет удален до загрузки) выглядит следующим образом:

Date    ID    Name 
1/1    1001   ABC_1
1/1    1002   3X4Y5Z
1/2    1003   DEF_a

Таблица, создаваемая в Kusto, будет выглядеть например:

Date    ID    Name    The_Fixed_Value
1/1    1001   ABC_1         a
1/1    1002   3X4Y5Z        a
1/2    1003   DEF_a         a

Я хотел бы заполнить столбец The_Fixed_Value тем же значением 'a', когда выполняется код python.

Python ссылка: https://github.com/Azure/azure-kusto-python/blob/master/azure-kusto-ingest/tests/sample.py

Большое спасибо заранее!

Ответы [ 3 ]

2 голосов
/ 26 февраля 2020

Вы можете использовать csv mapping с вашим потреблением и указать значение const для дополнительного столбца, см. Здесь соответствующие документы

Вот пример команды приема, которая использует это:

  .ingest into test (@"FILE_NAME.csv") with(
           Format = csv,
           csvMapping = '[{"Name":"a", "Ordinal":"0"},{"Name":"b", "ConstValue":"some value"}]'
   )
1 голос
/ 26 февраля 2020

Вы можете использовать команду externaldata , чтобы сделать свой CSV таблицей. Тогда вы можете сделать что-то вроде:

.set-or-replace YourTable <|
externaldata( (Date:datetime, ID:int, Name:string), <csv_url>)
| extend The_Fixed_Value = 'a'
1 голос
/ 26 февраля 2020

Я ничего не знаю о Кусто, но, похоже, вы создаете промежуточный фрейм данных. Тогда ты не можешь просто сделать это?

df['The_Fixed_Value'] = 'a'
...