Консолидация данных нескольких строк в обозревателе данных Azure

У меня есть несколько строк данных, соответствующих одному элементу в таблице ADX. Мне нужно объединить свойства одного элемента, чтобы выходные данные содержали последнее значение (по времени) свойств. Проблема в том, что не все строки имеют обновленные значения каждого свойства. Другая проблема заключается в том, что операция должна идти в ногу с данными в реальном времени, поэтому я ищу легкое решение, в котором необходимо консолидировать около 10 тысяч изменений за 20 секунд. Таким образом, дорогие соединения и операции с мешками могут быть не идеальными.

Например, данные выглядят так, как показано ниже

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

person BaconMan    schedule 05.08.2019    source источник


Ответы (1)


это соответствует вашим требованиям?

Я использовал подстроку, чтобы получить то, что выглядело как основная и дополнительная версии, вы также можете использовать синтаксический анализ, чтобы сделать эту очистку.

Затем я использую 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
person zane coppedge    schedule 05.08.2019