代码之家  ›  专栏  ›  技术社区  ›  Dhiraj

无法在Kusto中的用户定义函数中使用命令

  •  0
  • Dhiraj  · 技术社区  · 6 年前

    我正在尝试创建一个函数,该函数将接受标记名和日期时间值,并在具有该标记的特定表中删除一个区段,然后将具有相同标记和输入日期时间值的新记录摄取到该表中--类似于“update”模拟。我不担心性能,它只会保存元数据——最多20-30行。

    这就是创建表的外观:-

    .create table MyTable(sometext:string,somevalue:datetime)
    

    下面是我的函数创建步骤,它失败了:-

    .create-or-alter function MyFunction(arg_sometext:string,arg_somedate:datetime) 
    {
    .drop extents <| .show table MyTable extents where tags has arg_sometext;
    .ingest inline into table MyTable with (tags="[arg_sometext]") <| arg_somedate
    } 
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   Yoni L.    6 年前

    一般情况下: 库斯托命令控制命令从一个点开始( . ),并且这必须是命令文本中的第一个字符。由于查询、函数等不是以点开头的,这就阻止了它们调用控制命令。

    明确地: 关于你的具体情况:

    • 另一种可能更好的方法是重新考虑是否确实需要删除或更新特定记录,或者可以使用 summarize arg_max() 为了只查询记录的最新“版本”(您还可以创建一个函数,通过使用表的名称命名该函数来封装该逻辑并重写该表)。
    推荐文章