PyCon X

Florence

2nd - 5th May 2019

Digital Analytics Data Aggregation: un case study dal mondo reale utilizzando SQL, NoSQL e Pandas

I clienti enterprise si trovano sempre più spesso ad avere difficoltà nel recuperare informazioni essenziali per capire nel complesso dove il brand sta funzionando e dove invece serve un intervento tempestivo, perchè sono inondati di dati di dettaglio che spesso non sono facilmente aggregabili e visualizzabili insieme con frequenza giornaliera.

Per rispondere a questa esigenza, in azienda, nel nostro reparto R&D, abbiamo sviluppato una dashboard che permette a clienti con diversi brand e properties (siti) di aggregare i principali KPI da monitorare (sia KPI standard che KPI personalizzati). I KPI sono i key performance indicators, ovvero metriche che aiutano a valutare le performance).

Ma i dati da visualizzare e aggregare, provenienti da diverse fonti (Google Analytics, Adobe Analytics, tools SEO), hanno strutture diverse e non è possibile a priori prevedere quali sono le strutture disponibili.

Perciò, in questo talk vedremo insieme come abbiamo gestito questo caso reale attraverso un mix di tecnologie SQL (MySQL attraverso Django) e NoSQL (MongoDb), utilizzando i dataframe di Pandas come layer intermedio attraverso il quale lavorare il dato velocemente.

La soluzione realizzata ci ha permesso di integrare rapidamente nuove fonti e nuovi KPI, e di gestire volumi elevati di dati (attualmente 200+ siti contemporaneamente) con ottime performance.

Vedremo poi (se rimane tempo) come questi dati vengono forniti attraverso API Rest (grazie a Django Rest Framework) e consumati attraverso AngularJS sul client.

Vorremmo infine coinvolgervi chiedendovi come avreste gestito questa difficoltà - non è assolutamente detto che la nostra soluzione sia per forza quella ottimale!


Comments

  1. Gravatar
    Ciao Alessandro.

    Quale pensi sia esattamente il focus del talk ?
    In base a questo potremmo decidere di lasciare in questa track o muoverlo in PyData.

    Il punto non è se è presente o no Machine Learning. Il punto è: nel talk parlerai principalmente del problema dal punto di vista dei dati e degli strumenti che hai utilizzato per il processing, o più della webapp Django che hai sviluppato?

    Thanks
    — Valerio Maggio,
  2. Gravatar
    Ciao Valerio,

    scusa se ho visto solo ora il commento (non ho ricevuto notifiche, e ho visto solo ora che ci si può iscrivere per riceverle)

    Parleremo più della gestione del dato, e nello specifico di come salvare in modo flessibile un dato che a priori non ha una struttura definita, per poi riuscire a leggerlo ed aggregarlo facilmente. Django e angularjs sono le interfacce che permettono di gestire la visualizzazione del dato e la configurazione, ma non sono quello che alla fine scrive e recupera il dato.

    A vostra disposizione,
    Alessandro
    — Alessandro Pelliciari,

New comment