Upgrade to Pro — share decks privately, control downloads, hide ads and more …

La mia prima data pipeline

La mia prima data pipeline

Come creare una semplice data pipeline: dal consumo delle api, alla trasformazione e alla visualizzazione dei dati.
Talk tenuto a pyData @ Pycon Otto

Riccardo Magliocchetti

April 09, 2017
Tweet

More Decks by Riccardo Magliocchetti

Other Decks in Programming

Transcript

  1. La mia prima data pipeline
    La mia prima data pipeline
    Pycon 8
    Pycon 8
    Riccardo Magliocchetti
    Riccardo Magliocchetti

    View Slide

  2. whoami
    whoami
    Sw developer @ Maieu�cal Labs
    Consulente
    @rmistaken

    View Slide

  3. View Slide

  4. Menu
    Menu
    Una data pipeline che:
    consuma una api
    salva i da� in db
    ci perme�e di fare delle analisi

    View Slide

  5. Cos'è una
    Cos'è una
    data pipeline?
    data pipeline?

    View Slide

  6. Perchè questo talk?
    Perchè questo talk?
    Dobbiamo mostrare ai nostri partner sta�s�che dell'uso dei loro
    prodo� da parte degli uten�

    View Slide

  7. Necessità
    Necessità
    mul�-tenancy: auten�cazione e autorizzazione
    autonomia: i partner devono essere liberi di fare le proprie
    analisi

    View Slide

  8. Come lo implemento?
    Come lo implemento?
    Web app fa�a in casa
    Elas�csearch e Kibana
    Time-series db e Grafana
    Bokeh

    View Slide

  9. Come lo ho
    Come lo ho
    implementato?
    implementato?

    View Slide

  10. Boring tech!
    Boring tech!
    storage: PostgreSQL
    nuova API per esportare i da�
    pipeline batch, Luigi per il plumbing
    per il frontend? prendiamo tempo :)

    View Slide

  11. Perchè batch?
    Perchè batch?
    fallisce, guardo i log e rifaccio ripar�re
    devo cambiare il formato da�?
    rifaccio le query alle api e ricreo il db
    non mi servono da� in real �me

    View Slide

  12. : un framework
    : un framework
    Luigi
    Luigi
    risoluzione dipendenze e workflow
    cli
    errori e no�fiche
    scheduler
    web ui
    integrazioni, vedi luigi.contrib
    PostgreSQL, MySQL, MongoDB, redis
    s3
    ssh
    Hadoop, Hive, HDFS

    View Slide

  13. Luigi: concetti principali
    Luigi: concetti principali
    Task: run(), output(), requires()
    Target: un file, una riga in un database, etc..

    View Slide

  14. Ma il frontend?
    Ma il frontend?

    View Slide

  15. 30 marzo 2016
    30 marzo 2016
    :
    @mistercrunch annuncia
    As a vector for data explora�on, discovery, and collabora�ve
    analy�cs, we have built and are now open sourcing, a data
    explora�on and dashboarding pla�orm named Superset.

    View Slide

  16. Superset
    Superset
    mantenuto da un team di airbnb
    perme�e di creare visualizzazioni e dashboard in
    autonomia

    View Slide

  17. Superset: tech
    Superset: tech
    hackable! ~13 KLOC di python
    Flask + Flask-App-Builder
    frontend: react, d3.js / nvd3.js
    da�: pandas + sqlalchemy / druid

    View Slide

  18. Superset: concetti
    Superset: concetti
    Database
    Slice
    Dashboard

    View Slide

  19. Database
    Database
    PostgreSQL, MySQL, SQLite
    SQL Server, Oracle
    Redshi�, Ver�ca
    Presto, Impala, Hive, SparkSQL
    Druid

    View Slide

  20. Slice
    Slice

    View Slide

  21. Dashboard
    Dashboard

    View Slide

  22. Batterie incluse
    Batterie incluse
    Auten�cazione e Autorizzazione
    SQL Lab

    View Slide

  23. SQL Lab
    SQL Lab

    View Slide

  24. DEMO
    DEMO

    View Slide

  25. Conclusioni
    Conclusioni
    Creare data pipelines con Luigi è semplice e conveniente
    Superset ci perme�e di fare analisi senza scrivere codice

    View Slide

  26. Thanks!
    Thanks!
    @rmistaken
    github.com/xrmx
    Conta�

    View Slide