Aplikace pro analýzu měřených dat

Aplikace pro analýzu měřených dat
« kdy: 25. 10. 2024, 10:16:15 »
Jsme město, máme realizovaný sběr dat spotřeb (plyn, voda, teplo, elektřina…) na různých městských objektech. Data se nám scházejí v jedné aplikaci, ale ta s daty toho moc neumí.

Budeme mít potřebu data zobrazovat, analyzovat, porovnávat mezi sebou. Většina toho by se mělo dít automaticky, a když se narazí na nějakou odchylku, tak bude následovat manuální vyhodnocování.
Jsme na začátku a až postupem času se bude vyjasňovat, co vlastně pro nás bude zajímavé.

Špatně se tak pokládá dotaz, když ani kloudně nevíme co chceme, ale přesto… Někdo si možná něčím podobným prošel nebo třeba existuje projekt, který by byl v něčem obecnější a šel by napasovat na naše potřeby. Ideálně něco, kde by se jako kostičkami lega poskládalo v něco, co nebude třeba z hlediska výkonu rychlé, ale účel to splní.

V tomto směru jsem narazil na projekt R (https://www.r-project.org)  a zatím to je náš favorit.
 


Re:Aplikace pro analýzu měřených dat
« Odpověď #1 kdy: 25. 10. 2024, 12:00:55 »
do R nechoďte, zbytečně komplikované a náročné na znalosti.

Existují poměrně levné nástroje jako Prometheus/victoria metrics, Grafana, Influxdb, timescaledb, na tom jsme schopní budovat i enterprise systémy. Robustní řešení pak třeba nabízí cloudový PowerBI (tam by se šlo dostat i na rozumné peníze).

Doplnění nějakých transformací a prací lze použít věci jako vector.dev, fluent-bit. Pokud byste potřebovali dělat hlubší datové analýzy a modely, opět MS nabízí v PowerBI silné nástroje, na vlastním triku je možné provozovat věci jako Trino, iceberg, spark/dask/pytorch/pandas a s tím se dají dělat.

Předpokládám, že na to nemáte velký rozpočet a nejste schopní si nechat udělat projekt na míru. Možná by šla domluvit nějaká bezplatná spolupráce na dobrovolné bázi či výměnou za PR. Mám k dispozici tým 40 lidí, kteří dělají jen tohle. Stejně tak jsem schopný poskytnout nějaké konzultace sám, záleží o jaké lokalitě se bavíme.

hmmmw

Re:Aplikace pro analýzu měřených dat
« Odpověď #2 kdy: 25. 10. 2024, 13:33:53 »
Zvolit vhodnou databázi, kam se budou sypat data, nejlépe nějaká time-series jako již zmíněné InfluxDB nebo Prometheus. - je to stavěno na přesně taková data, kdy se jedná o vzorek v nějakém čase.

Z toho si pak velice snadno můžete tahat data do Grafany, kde se dá hezky vyhrát s různým porovnáním. Ale samozřejmě i kamkoliv jinam.

Grafana má i alerting, takže stačí si nadefinovat pravidla.

Problémem je si tu databázi dobře navrhnout aby se s tím dobře pracovalo (udělat labely). Navíc to není relační databáze, takže to funguje jinak, než jsou správci běžně zvyklí a každá používá svůj Query Language.

Re:Aplikace pro analýzu měřených dat
« Odpověď #3 kdy: 25. 10. 2024, 15:07:23 »
Když to zmiňujete na tomto serveru, tak předpokládám, že minimálně uvažujete o tom, že projekt bude jako open-source. Myslím, že by se tu našlo dost lidi, kteří by pak rádi pomohli, ať už názorem nebo kódem. A pokud by se zapojily i další města, tak by se náklady (včetně lidských zdrojů) mohly sdílet.

Re:Aplikace pro analýzu měřených dat
« Odpověď #4 kdy: 27. 10. 2024, 22:05:03 »
Nejsem si přesně jist zadáním :-)

Třeba "odkud až kam to máte už vyřešeno" a "co ještě potřebujete řešit". Třeba time-series databases je samostatné odvětví, kde existuje větší počet softwarových produktů, každý umí trochu jiné věci. Pokud chcete nahlédnout, kde to zhruba začalo a jaké problémy se řeší, zkuste si počíst něco o RRD - což je ovšem prabába celého odvětví, a "ideové potomstvo" má poměrně pestré.

Nad round-robin databázemi je postavena řada softwarových produktů kategorie "Network Management System". Tyto Vám umožňují, sbírat time-series data, ukládat je v jednotné databázi, páchat na nich základní automatizované kontroly, a vyrábět si z nich grafy pro průběžný přehled. Třeba konkrétní open-source NMS projekt Zabbix by default ukazuje u každého grafu střední hodnotu...

Nechce se mi moc zabíhat do "výpočetního zpracování".
Třeba "porovnávat více časových řad mezi sebou", případně nad nimi ještě provádět nějaké výpočetní operace / algoritmy... toto mi přijde pro běžný NMS jako poměrně netriviální zadání. Možná by Vám v tomto směru pomohl nějaký SCADA systém (řízení a vizualizace průmyslových procesů) ale to je už zas daleko od zadání, pokud si představujete nějaký "flexibilní nástroj pro business intelligence".

Pokud jde o to, vynést si několik časových řad do grafu, nějak si nastavit měřítko na svislé ose (nebo dvou), zvolit si barvičky křivek apod... poměrně mocný nástroj na tvorbu grafů (nejen časových řad) je Gnuplot. Je to vlastně skriptovací jazyk = je s tím v začátku trochu práce. Ale ty skripty se následně dají vytvářet automatizovaně, a nechat si vyrobit obrázek buď ad hoc (kliknutím se spustí Gnuplot, schroupe data a vyplivne obrázek) nebo je předpočítávat hromadně v nějakém pravidelném intervalu... kdysi to takhle dělaly některé NMS. Gnuplot taky umí nějaké základní matematické operace, pokud je třeba si data nějak "mezizpracovat" (= pro jednodušší preprocessing se lze obejít bez dalšího programovacího mezikroku).

Jinak pokud by zadání znělo, "tady mám nějakou časovou řadu, umím ji dostat třeba do formátu CSV, a chci se na ni především pro začátek rychle podívat, najít si vhodné svislé měřítko a časový interval, vybrat si časové detaily, na ty se po jednom postupně zaměřit, případně mám časových řad několik, klidně z různých zdrojů, a rád bych je viděl pohromadě v grafu, nebo v několika grafech na stránce" ... tak na takové rychlé klikací prohlížení / zoomování / švenkování bych zmínil software BinJr = otevřený time series browser, GUI aplikace.


Re:Aplikace pro analýzu měřených dat
« Odpověď #5 kdy: 27. 10. 2024, 23:07:38 »
Za mě ELK stack. POC se dá rozjet s jedním docker-compose (https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-compose-file)
Logstash se umí připojit k různým zdrojům (db, csv, kafka, http, atd) a rovnou posílá data do Elasticsearch.
Na data se pak kouká přes Kibanu. Pro začátek se může použít Lens, pak si hrát s Timelion (https://www.elastic.co/guide/en/kibana/current/timelion.html)
Na měsíc se dá aktivovat trialka, kde je i Machine Learning