sql >> Databáze >  >> RDS >> PostgreSQL

pgpredict – Prediktivní analytika v PostgreSQL

Všichni si uvědomujeme, jak důležité je umět analyzovat data, která shromažďujeme, a extrahovat z nich užitečné informace. 2UDA je krokem tímto směrem a jeho cílem je spojit ukládání a správu dat (PostgreSQL) s dolováním a analýzou dat (Orange).
pgpredict je projekt ve vývoji a jeho cílem je být dalším krokem, který vše uzavře. Počínaje daty (v našem případě uloženými v databázi), musíme k nim nejprve umožnit přístup odborníkům, kteří je mohou analyzovat pomocí specializovaných nástrojů a metod. Ale poté, když například trénují prediktivní model, který může vyřešit něco důležitého a pro nás přínosného, ​​musí umět tyto výsledky zprostředkovat zpět, abychom je mohli využít. To je přesně to, co se pgpredict snaží vyřešit – nasazování prediktivních modelů přímo do databáze pro efektivní provádění v reálném čase.

Projekt začal jako pokračování 2UDA, který již umožňuje používat Orange pro práci s daty uloženými v databázi PostgreSQL. Byl potřeba způsob, jak exportovat trénované prediktivní modely, přenést je tam, kde jsou potřeba (např. produkční server) a nasadit je. Projekt je tedy rozdělen na rozšíření pro Orange, která umí exportovat modely do souborů .json, a pro postgres, která umí tyto modely načíst a spustit. Protože jsou modely uloženy v textových souborech, lze je sledovat v systému správy verzí. Formát json také umožňuje jejich snadné uložení do databáze po načtení s využitím možností PostgreSQL json.

V současné době existuje funkční implementace pro omezený počet prediktivních modelů a dosud neprošla důkladnou optimalizací. Ale už to vypadá slibně.
Abych to otestoval, vygeneroval jsem tabulku imaginárních zákazníků s 10 miliony řádků s nějakými nezávislými náhodnými proměnnými (věk, mzda, návštěvy) a výstupní proměnnou (utracené). Oranžová pak byla použita k načtení tabulky a získání prediktivního modelu. Protože využívá TABLESAMPLE (funkce PostgreSQL 9.5), zkoušení různých parametrů a nastavení funguje rychle (i pro data mnohem větší než v tomto testu). Datový vědec tak může interaktivně zkoušet různá řešení, vyhodnocovat je a nakonec přijít s dobrým modelem. Konečný model hřebenové regrese byl poté exportován a načten do databáze. Tam jej lze použít v reálném čase k předpovědi částky utracené za nové zákazníky objevující se v databázi.
Použití pgbench ukázalo, že zatímco výběr existujícího sloupce pro jednoho zákazníka z tabulky vyžadoval 0,086 ms, bylo to jen o něco déle získat nezávislé proměnné a provést predikci hodnoty útraty:0,134 ms.
Předpovídání utracené částky pro 10^6 zákazníků nezabere 10^6krát více času (134 s), protože je dokončena inicializace modelu poprvé a poté znovu použit. Takže to ve skutečnosti trvalo 13,6 s, takže to bylo asi 10x rychlejší.
Tato čísla byla získána pro jednoduchý model na mém notebooku s kódem, který má potenciál pro mnohem větší optimalizaci. Brzy očekávejte přísnější hodnocení, až se připravíme na vydání pgpredict pro veřejnost. Ale i nyní si myslím, že projevená efektivita a snadné použití by z něj udělaly velkou výhodu pro velkou většinu potenciálních uživatelů, kteří hledají prediktivní analytiku pro své datové sklady poháněné PostgreSQL.


  1. Přemostění RDBMS a NoSQL:Úvod do 2DX UI clusteru

  2. Přeskočí úloha SQL Server plánované spuštění, pokud již běží?

  3. Zabezpečte své Mongo Clusters pomocí SSL

  4. CSV v SQL Developer…