azure-data-explorer - 动态查询 ADX 表名
问题描述
我需要能够动态查询 Azure 数据资源管理器 (ADX) 表,即使用也存储在 ADX 中的特定于应用程序的元数据。
如果这是可能的,那么实现它的方法似乎是通过table()函数。换句话说,感觉我应该能够简单地写:
let table_name = <non-trivial ADX query that returns the name of a table as a string>;
table(table_name) | limit 10
但是此查询失败,因为我试图将变量传递给table()
函数,并且"a parameter, which is not scalar constant string can't be pass as parameter to table() function"。提供的解决方法并没有真正帮助,因为所有可能的表名都不知道提前。
有没有办法在 ADX 中完成这一切(即没有来自客户端的多次查询),还是我需要回到绘图板上?
解决方案
如果您知道所需的输出模式,则可以使用union
(请注意,在这种情况下,结果模式将是所有表的并集,您需要显式投影您感兴趣的列)
let TableA = view() { print col1 = "hello world"};
let TableB = view() { print col1 = "goodbye universe" };
let LabelTable = datatable(table_name:string, label:string, updated:datetime)
[
"TableA", "MyLabel", datetime(2019-10-08),
"TableB", "MyLabel", datetime(2019-10-02)
];
let GetLabeledTable = (l:string)
{
toscalar(
LabelTable
| where label == l
| order by updated desc
| limit 1
)
};
let table_name = GetLabeledTable('MyLabel');
union withsource = T *
| where T == table_name
| project col1
推荐阅读
- c# - 将数组分配给对象?
- amazon-web-services - DynamoDB 单项性能
- reactjs - 为什么在 React App 中使用 useHistory goBack 函数而不是窗口历史返回函数?
- javascript - React Native FlatList 使应用程序在 10 个元素后变得异常缓慢
- c - Azure 设备孪生 - HTTP 或 MQTT
- javascript - React Js 如何检测当前操作系统
- javascript - 在Javascript中返回第n个字符的帮助
- node.js - 无法将日志数据保存到 DB
- python - 如何使用 pandas 或 numpy 处理(查找均值和标准差)复制数据?
- javascript - React - 如何解析大型 JSON 对象以进行绘图。努力与国家这样做