Video: Meet Apache Kafka : data streaming nelle tue mani 2024
Quando i flussi di dati sono enormi importi, memorizzare tutto può essere difficile o addirittura impossibile. In effetti, la memorizzazione di tutto potrebbe non essere nemmeno utile. Ecco alcuni esempi di ciò che puoi aspettarti di accadere in un solo minuto su Internet:
- 150 milioni di e-mail inviate
- 350.000 nuovi tweet inviati su Twitter
- 2. 4 milioni di query richieste su Google
- 700, 000 persone hanno effettuato l'accesso al proprio account su Facebook
Dati tali volumi, accumulare i dati tutto il giorno per un'analisi incrementale potrebbe non sembrare efficiente. È sufficiente archiviarlo da qualche parte e analizzarlo di seguito o in un secondo giorno (che è la strategia di archiviazione diffusa tipica dei database e dei data warehouse). Tuttavia, le query di dati utili tendono a chiedere informazioni sui dati più recenti nel flusso e i dati diventano meno utili quando invecchiano (in alcuni settori, ad esempio finanziario, un giorno può essere un sacco di tempo).
Inoltre, è possibile aspettarsi ancora più dati per arrivare domani (la quantità di dati aumenta ogni giorno) e ciò rende difficile, se non impossibile, estrarre dati dai repository mentre si inseriscono nuovi dati. Estrarre vecchi dati dai repository mentre versano nuovi dati è simile alla punizione di Sisyphus. Sisifo, come narra un mito greco, ricevette una terribile punizione dal dio Zeus: essere costretto a rotolare eternamente un immenso macigno in cima a una collina, solo per vederlo rotolare giù ogni volta.
A volte, rendendo le cose ancora più impossibili da gestire, i dati possono arrivare così velocemente e in quantità così grandi che la scrittura su disco è impossibile: le nuove informazioni arrivano più velocemente del tempo necessario per scriverle disco rigido. Questo è un problema tipico degli esperimenti di particelle con acceleratori di particelle come il Large Hadron Collider, che richiede agli scienziati di decidere quali dati conservare. Naturalmente, è possibile accodare i dati per un po 'di tempo, ma non per troppo tempo, perché la coda crescerà rapidamente e diventerà impossibile da mantenere. Ad esempio, se conservati in memoria, i dati in coda porteranno presto a un errore di memoria insufficiente.
Poiché i nuovi flussi di dati possono rendere obsoleta l'elaborazione precedente sui vecchi dati e la procrastinazione non è una soluzione, le persone hanno escogitato più strategie per gestire istantaneamente quantità massicce e variabili di dati. Le persone utilizzano tre modi per gestire grandi quantità di dati:
- Memorizzati: Alcuni dati vengono archiviati perché potrebbero aiutare a rispondere a domande poco chiare in un secondo momento. Questo metodo si basa su tecniche per memorizzarlo immediatamente e analizzarlo in seguito molto velocemente, non importa quanto sia enorme.
- Riepilogati: Alcuni dati sono riepilogati perché mantenere tutto come non ha senso; vengono conservati solo i dati importanti.
- Consumo: I dati rimanenti vengono consumati perché il loro utilizzo è predeterminato. Gli algoritmi possono immediatamente leggere, digerire e trasformare i dati in informazioni. Dopodiché, il sistema dimentica i dati per sempre.
Quando si parla di enormi dati che arrivano in un sistema informatico, lo si sente spesso confrontato con l'acqua: streaming di dati, flussi di dati, manichetta antincendio dei dati.
Scopri come i flussi di dati sono come consumare l'acqua del rubinetto: l'apertura del rubinetto ti consente di conservare l'acqua in tazze o in bottiglie, oppure puoi usarla per cucinare, strofinare cibo, pulire piastre o lavarsi le mani. In ogni caso, la maggior parte o tutta l'acqua è sparita, eppure si rivela molto utile e davvero vitale.