首页 > 解决方案 > Kusto 用例(嵌套用户定义函数)

问题描述

请让我知道是否可以在 Kusto 中处理以下用例?

  1. 嵌套用户定义的查询(我可以在另一个函数中调用一个函数)吗?这是两个函数
.create function  ifnotexists
with()
function1() {table1 | where column1 == abs}
.create function ifnotexists
with()
function2() {table2 | where column1 in (function1())}

另外如何将行级安全策略添加到嵌套函数 - function2()?下面似乎不起作用

.alter table table2 policy row_level_security enable "function2"

2.如何Upsert一行(我可以创建一个新表并迁移架构)。如果是这样,是否有可能让用户只能访问函数而不是基础表?

注意:我可以编写一个函数来指向一个带有插入行的新表

标签: nesteduser-defined-functionsazure-data-explorerkql

解决方案


  1. 可以在函数内部使用其他函数。没什么特别的 - 你的例子应该有效。

  2. 迁移表可以使用 .set-or-append 命令完成: https ://docs.microsoft.com/en-us/azure/data-explorer/kusto/management/data-ingestion/ingest-from-query

  3. 不能只让用户访问功能。一些用户限制场景可以通过行级安全解决:https ://docs.microsoft.com/en-us/azure/data-explorer/kusto/management/rowlevelsecuritypolicy

  4. “更改”行的某些场景可以使用“summarize arg_max(Time, *)”子句来完成 - 其中 Time 是更新的时间。 https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/arg-max-aggfunction


推荐阅读