azure-data-explorer - 如何找到 kusto 中所有列的基数?
问题描述
我正在尝试为某些查询查找所有列中不同值的数量。我发现dcount效果很好,但您必须提供特定的列。我想在所有列上执行此操作,其中列名和列数是动态的
解决方案
您必须明确包括所有感兴趣的列。
请注意,您添加到查询中的任何其他列都会增加查询的资源利用率,因此如果您对可能具有高基数的列有任何了解,请考虑仅包括那些。
FWIW:您可以动态生成查询(对于所有列,上面有警告),然后调用此结果:
let tableName = "my_table";
let datetime_column_name = "my_datetime_column";
let lookback_period = 1h;
let column_names = toscalar(
table(tableName)
| getschema
| summarize make_set(ColumnName)
);
print query = strcat(
tableName,
"\n| where ",
datetime_column_name,
" > ago(timespan(",
lookback_period,
"))\n| summarize dcount(",
strcat_array(column_names, "),\ndcount("),
")")
推荐阅读
- node.js - 交叉表查询或虚拟使用猫鼬保存数据
- laravel - 如何使用模块在 laravel 中创建工厂?
- uikit - UIKit的等效NSApp.currentEvent?
- authentication - 启动时启动的程序无法访问 /run/user/1000
- c++ - Cmake 的 FindOpenSSL 的行为在 3.12 和 3.19 之间发生了变化——我似乎无法告诉 Cmake 我希望它在哪里找到 OpenSSL [Windows]
- linux - 无法限制 cgroup 上的 IO。当设备存在时说“没有这样的设备”。有什么问题?
- html - 这个 mouseover() 访问 href 和 src 链接只会导致“ERR_FILE_NOT_FOUND”?想通过 mouseover() 访问 href 和 src
- php - 为什么我在 heroku 上看不到 php cms 管理面板?
- passwords - 使用 AppleScript 输入用户名和密码
- java - 我的 JAVA 代码中出现的转换错误