首页 > 解决方案 > 如何创建具有默认值的列/如何在 Kusto 上填充具有相同值的列

问题描述

我知道如何DEFAULT在创建表时使用约束来执行此操作,或者在UPDATE使用SET其他 SQL 实例修改表时使用该约束。有没有使用.create table.alter-merge tableKusto 命令的简单方法?

如果有帮助,这是我提出这个问题的用例:

我有一个 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

我想在 python 代码运行时用相同的值“a”填充 The_Fixed_Value 列。

Python 参考:https ://github.com/Azure/azure-kusto-python/blob/master/azure-kusto-ingest/tests/sample.py

提前非常感谢!

标签: pythonazure-data-explorerkql

解决方案


您可以将 csv 映射与您的摄取一起使用,并为附加列指定一个 const 值,请参阅此处的相关文档

以下是使用此命令的摄取命令示例:

  .ingest into test (@"FILE_NAME.csv") with(
           Format = csv,
           csvMapping = '[{"Name":"a", "Ordinal":"0"},{"Name":"b", "ConstValue":"some value"}]'
   )

推荐阅读