PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

pgpredict – Предсказуем анализ в PostgreSQL

Всички осъзнаваме колко важно е да можем да анализираме данните, които събираме, и да извличаме полезна информация от тях. 2UDA е стъпка в тази посока и има за цел да обедини съхранението и управлението на данни (PostgreSQL) с извличане на данни и анализ (Orange).
pgpredict е проект в процес на развитие и има за цел да бъде следващата стъпка, която ще доведе до пълен кръг. Започвайки с данни (в нашия случай съхранявани в база данни), първо трябва да дадем достъп до тях на експерти, които могат да ги анализират със специализирани инструменти и методи. Но след това, когато например обучават прогнозен модел, който може да реши нещо важно и полезно за нас, те трябва да могат да предадат тези резултати обратно, за да можем да ги използваме. Точно това се опитва да реши pgpredict – внедряване на прогнозни модели директно в базата данни за ефективно изпълнение в реално време.

Проектът стартира като продължение на 2UDA, което вече позволява на Orange да се използва за работа с данни, съхранявани в база данни на PostgreSQL. Това, което беше необходимо, беше начин за експортиране на обучени прогнозни модели, прехвърлянето им там, където са необходими (например производствения сървър) и тяхното разгръщане. Така проектът е разделен на разширения за Orange, които могат да експортират модели в .json файлове, и за postgres, които могат да зареждат и изпълняват тези модели. Тъй като моделите се съхраняват в текстови файлове, те могат да бъдат проследени в система за контрол на версиите. Форматът json също им позволява лесно да се съхраняват в базата данни след зареждане, като се използват възможностите на PostgreSQL json.

В момента съществува работеща реализация за ограничен брой прогнозни модели и все още не е претърпяла цялостна оптимизация. Но вече показва голямо обещание.
За да го тествам, генерирах таблица с въображаеми клиенти с 10 милиона реда с някои независими произволни променливи (възраст, заплата, посещения) и изходна променлива (изразходвани). След това оранжевото беше използвано за зареждане на таблицата и получаване на прогнозен модел. Тъй като използва TABLESAMPLE (функция на PostgreSQL 9.5), пробването на различни параметри и настройки работи бързо (дори за данни, много по-големи от този тест). Следователно специалистът по данни може интерактивно да изпробва различни решения, да ги оцени и в крайна сметка да излезе с добър модел. След това окончателният модел на регресия на хребет беше експортиран и зареден в базата данни. Там той може да се използва в реално време, за да се предвиди сумата, изразходвана за нови клиенти, появяващи се в базата данни.
Използването на pgbench показа, че докато избирането на съществуваща колона за един клиент от таблицата изисква 0,086 ms, това е само малко по-дълго за да получите независимите променливи и да направите прогноза за стойността на изразходваните:0,134 ms.
Прогнозирането на изразходваната сума за 10^6 клиенти не отнема 10^6 пъти повече време (134 s), тъй като инициализацията на модела е извършена първия път и след това се използва повторно. Така че всъщност отне 13,6 секунди, което го прави около 10 пъти по-бързо.
Тези числа бяха получени за прост модел, на моя лаптоп, с код, който има потенциал за много повече оптимизация. Очаквайте скоро по-строга оценка, когато се подготвим да пуснем pgpredict за обществеността. Но дори и сега мисля, че показаната ефективност и лекота на използване биха го направили голямо предимство за голяма част от потенциалните потребители, които търсят прогнозни анализи за своите хранилища за данни, захранвани с PostgreSQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Готови ли сме за Nordic PPGDay?

  2. Как да използвам Postgres JSONB тип данни с JPA?

  3. Търсене в индекси на изрази

  4. Извличане на последната известна стойност за всяка колона от ред

  5. Съвети и трикове за навигация в общността на PostgreSQL