azure-data-explorer - Azure 数据资源管理器中的多行数据整合
问题描述
我有多行数据对应于 ADX 表中的单个项目。我需要合并单个项目的属性,以便输出包含属性的最新值(按时间)。挑战在于,并非所有行都更新了每个属性的值。另一个挑战是,操作需要跟上实时数据,所以我正在寻找一种轻量级的解决方案,其中需要每 20 秒合并大约 10k 的更改。因此,昂贵的连接和包操作可能并不理想。
例如,数据如下所示
INPUT TABLE CONTENT
time1 item1 prop1-0 null prop3-0 null
time2 item1 null null prop3-1 null
time3 item1 prop1-1 null null prop4-0
time4 item1 prop1-2 prop2-0 prop3-2 null
EXPECTED PROCESSED OUTPUT
time4 item1 prop1-2 prop2-0 prop3-2 prop4-0
解决方案
这符合您的要求吗?
我使用 substring 来获取主要和次要版本,您也可以使用 parse 来做这个更清洁。
然后我使用summarize max(),然后用strcat 重构这些值。
datatable (ts:int, prop:string, a:string, b:string, c:string, d:string) [
1, 'item1', 'prop1-0', '', 'prop3-0', '',
2, 'item1', '', '', 'prop3-1', '',
3, 'item1', 'prop1-1', '', '', 'prop4-1',
4, 'item1', 'prop1-2', 'prop2-0', 'prop3-2', ''
]
| extend aMaj = substring(a, 4, 1),
aMin = substring(a, 6, 1),
bMaj = substring(b, 4, 1),
bMin = substring(b, 6, 1),
cMaj = substring(c, 4, 1),
cMin = substring(c, 6, 1),
dMaj = substring(d, 4, 1),
dMin = substring(d, 6, 1)
| summarize ts = max(ts), max(aMaj), max(aMin), max(bMaj), max(bMin), max(cMaj), max(cMin), max(dMaj), max(dMin) by prop
| project ts, prop, strcat('prop', max_aMaj, '-', max_aMin), strcat('prop', max_bMaj, '-', max_bMin), strcat('prop', max_cMaj, '-', max_cMin), strcat('prop', max_dMaj, '-', max_dMin)
返回
ts prop Column1 Column2 Column3 Column4
4 item1 prop1-2 prop2-0 prop3-2 prop4-1
推荐阅读
- vba - ActiveX ComboBox_Change event falsely triggering a Compile Error: Variable not defined
- javascript - Javascript:array.push() 仅在 for 循环中从源数组中推送最后一个字符串
- spring-integration - 如何使用 @Aggregator 注释设置 expire-groups-upon-completion?
- chatscript - 如何在 VS2017 中构建 ChatScript
- python - 在 Codecademy 的本课中添加 raw_inputs
- django - 自动填充 Django 模型
- python - 找出两个 csv 文件之间的差异并标记 em
- python - 收集员工信息的方法不够全面
- java - Java Executor 正确吗?
- c++ - 为什么相应的成员不能正确访问成员函数指针?