我需要能够动态地查询Azure数据资源管理器( ADX )表,也就是说,使用也存储在ADX中的特定于应用程序的元数据。
如果这是可能的话,它的方法似乎是通过表()函数。换句话说,我觉得我应该能够简单地写:
let table_name = <non-trivial ADX query that returns the name of a table as a string>;
table(table_name) | limit 10但是这个查询失败了,因为我试图将一个变量传递给table()函数和“非标量常量字符串的参数不能作为参数传递给table()函数”。提供的解决方案并没有真正的帮助,因为所有可能的表名都不是提前知道的。
是否有任何方法在ADX (即没有来自客户端的多个查询)内完成这一切,或者我是否需要返回到绘图板?
发布于 2019-10-09 01:01:13
如果您知道所需的输出模式,您可以使用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 col1https://stackoverflow.com/questions/58294223
复制相似问题