Zero
La capacità di ingerire e di elaborare grandi volumi di dati in tempo reale è qualcosa di interessante da più organizzazioni. Questa è un’area a vedere una rapida crescita, come i casi di utilizzo può tradurre in diretta vantaggi di business.
Abbiamo seguito questo spazio per un po ‘ ora, e la versione di Apache Samza 1.0 è una buona occasione per rivedere e vedere come questo cambia le cose, se non a tutti.
Anche: richiedono l’accesso ai dati in tempo reale non è irragionevole
Nato e cresciuto in LinkedIn
Apache Samza è stato sviluppato su LinkedIn nel 2013. Samza divenne un alto livello di progetto Apache nel 2014, per ora, è utilizzato da oltre 3.000 applicazioni in produzione su LinkedIn. I casi di utilizzo includono il rilevamento di anomalie, la lotta alla frode, il monitoraggio delle prestazioni, le notifiche di analytics in tempo reale, e molti altri.
Se avete una certa familiarità con questo spazio, questo dovrebbe far suonare un campanello. Apache Kafka, un altro quadro in tempo reale di elaborazione dei dati, è stato anche sviluppato su LinkedIn. Kafka è diventato lo standard del meccanismo di trasporto per il monitoraggio dei dati di LinkedIn, e con i carichi di dati generati ogni giorno in Kafka, applicazioni necessarie per ottenere approfondimenti.
Inoltre: che Cosa Overstock.com impara a conoscere i propri clienti da decenni di dati
Queste applicazioni distribuite con un insieme di problemi, come hanno consumato i messaggi da Kafka, come l’arresto, la gestione dei locali, dello stato, di gestione degli errori, la scalabilità orizzontale lavorazione, etc. Apache Samza è stato costruito per affrontare questi problemi in stream processing. Il fatto è, tuttavia, che questo può avere un senso. Ha ancora senso oggi?
Questo può sembrare una domanda strana da chiedere. Dopo tutto, l’afflusso di dati non ha fermato, anzi, è aumentato. Cosa c’è di diverso ora è che ci sono molti altri quadri circa, costruita per affrontare con gli stessi bisogni: Apex, Flink, Scintilla, e la Tempesta, per elencare solo Apache progetti open source. Abbiamo anche un paio di soluzioni proprietarie.

Un’istantanea in streaming paesaggio. (Immagine: Ovulo)
Samarth Shetty, Apache Samza responsabile del team di LinkedIn, ha detto che quando era prima affrontare l’elaborazione del flusso, ci sono stati molto pochi esistenti per l’elaborazione del flusso di quadri in grado di gestire la scala o i problemi tecnici che hanno a LinkedIn. Per questo motivo, hanno deciso che sarebbe meglio costruire un proprio quadro:
“Per esempio, abbiamo dovuto costruire per esempio la capacità Incrementale Istantanee e Host di Affinità in Samza. Questi non erano disponibili in quel momento in quadri come Apache, Flink. Kafka Flussi è adatto per l’elaborazione di eventi in Kafka, ma di LinkedIn, abbiamo bisogno di una capacità di elaborare gli eventi da/per diversi sistemi come Azure EventHubs, AWS Kinesis etc.
Samza offre la possibilità di connettersi facilmente a sistemi diversi. Per l’elaborazione del flusso è molto importante in caso di utilizzo di LinkedIn, così siamo stati impegnati a costruire il miglior quadro possibile. Nel corso del tempo, crediamo di aver costruito su una delle più avanzate stateful per l’elaborazione del flusso di quadri che è meglio per gestire LinkedIn bisogno per la scala.”
Questo in qualche modo simile la situazione che abbiamo con la macchina di apprendimento quadri: Ci sono così molti di loro là fuori. Avere molte opzioni non è una brutta cosa, naturalmente, ma la linea tra “molti” e “di troppo” è un sottile uno. Soumith Chintala, Facebook del team leader per PyTorch, rispose lungo linee simili: volevamo qualcosa che ha lavorato per noi, e così abbiamo fatto.
Inoltre: Il passato, il presente e il futuro di streaming
Un Raggiante API
Contrariamente a Kafka e Confluenti, tuttavia, Samza non è mai cresciuto in un prodotto con un produttore in proprio. Shetty ha detto che c’è un gruppo di ingegneri dedicati per l’elaborazione del flusso di LinkedIn, e Samza è parte integrante di questo lavoro. Ha poi aggiunto, tuttavia, che non vedono Samza come un prodotto:
“Vediamo questo come un progetto open source. LinkedIn è sempre stato coinvolto con l’open source in questo modo: quando si costruisce gli strumenti che riteniamo possa essere utile al di fuori della società, vogliamo dare loro indietro per la comunità, quando possibile.
Mentre non vi è attualmente un produttore legato a Samza, più società, tra cui Slack, TripAdvisor, Pesce, e Optimizely, stanno utilizzando in produzione. Qualcosa che ci sentiamo attira altre organizzazioni per uso Samza è il fatto che è testato in battaglia su larga scala, dal momento che usiamo noi su LinkedIn.”
Come abbiamo detto l’ultima volta che abbiamo coperto in streaming, abbiamo appena visto DataTorrent, il venditore dietro Apex, go out of business di recente. Forse non c’è lo spazio sufficiente per di più open-core streaming fornitori, a questo punto. Quindi, se si desidera utilizzare Samza, si dovrà capire, e l’esecuzione in produzione in proprio. Che non è cambiato con la versione 1.0. Ma altre cose sono cambiate, in un modo che può influenzare il contesto più ampio.
Più in particolare, Samza ora ha una nuova API, ed è Apache Fascio compatibile. Apache Beam è un progetto open-source che fornisce un unico API, permettendo di pipeline per essere portato attraverso l’esecuzione di motori, tra cui Samza, Scintilla, o Flink. Consente, inoltre, il trattamento dei dati in altre lingue, tra cui Python, molto usate nei dati della comunità scientifica.
Apache Samza 1.0 porta il supporto per Apache Fascio di API, e che potrebbe essere la cosa più interessante su di esso. (Immagine: Kelly Sikkema / Unsplash)
Il Samza team capito a un certo punto che, mentre la stabilità e le prestazioni sono state Samza i principali punti di forza, le sue API di programmazione è stata abbastanza di basso livello. Samza offerto un semplice richiamata basato su API, permettendo operazioni di a essere specificato a livello di un singolo messaggio.
Gli sviluppatori di implementare operazioni complesse come windows e si unisce da soli in cima a questa API. Inoltre, più Samza lavori necessari per essere collegati insieme tramite Kafka argomenti, che ha reso la creazione di applicazioni termini di tempo e soggetto a errori.
Inoltre: Questo avvio pensa che non sa come migliorare la velocità di analisi in tempo reale
Samza 1.0 viene fornito con un elevato livello di API che consente agli sviluppatori di esprimere il complesso dei dati condotte facilmente dalla combinazione di più operatori. Ma il Samza squadra ha fatto un passo avanti, rendendo le loro API compatibile con Apache Fascio.
Che cosa questo significa è che ora è possibile scrivere applicazioni per lo streaming sulla parte superiore del Fascio utilizzando Java, Scala, o Python, e si può porta attraverso tutti i quadri che lo supportano, e si può eseguire su Google Cloud di flusso dei dati-almeno in teoria.
Sia Flink e Scintilla sono estensioni proprietarie di là del Fascio di API, e la Scintilla creatori non sono molto interessato a sostenere Fascio. Supporto trave su Spark è attraverso i contributi della comunità.
Ma se si bastone core Fascio, la portabilità dovrebbe essere possibile. In ogni caso, un’altra voce nell’elenco dei progetti a sostegno della Trave può dare un po ‘ di slancio. Si può anche aiutare a Google Cloud flusso di dati. Questo è dove il Fascio è stato avviato, e il Fascio può servire come un modo di bordo per applicazioni di streaming di Google Cloud.
SQL, DevOps, e che cosa tutto questo significa
Non è tutto per Samza 1.0 anche se, come si tratta con alcuni più importanti novità: SQL e DevOps imporovements. A un certo punto, il Samza team capito che, anche se le loro API ho un aggiornamento, Api non è di tutti tazza di tè. Non-ingegneri sarebbe molto meglio avere accesso tramite SQL, e Samza è sulla strada per la fornitura di questo.
Diciamo il modo, perché, anche se tecnicamente SQL funziona, non ha ancora essere utilizzato tramite chiamate API. Questo tipo di sconfitte lo scopo di abbassare la barriera di ingresso, ma Shetty notato che sono nel processo di creazione di una shell interattiva per SQL, troppo. Supporto SQL è di arrivare a essere posta in gioco streaming in questi giorni –Kafka, Flink, e la Scintilla l’ha.
Un’altra area di miglioramento per Samza 1.0 è in gestione cluster di indipendenza. Prima Samza 1.0, Samza richiesta di FILATI, per la gestione delle risorse e distribuito esecuzione di applicazioni. FILATI di opere, ma gli utenti voluto la flessibilità necessaria per eseguire il flusso di elaborazione in qualsiasi ambiente. Samza 1.0 indirizzi di questo, offrendo una modalità autonoma delle applicazioni in esecuzione.
Anche: Streaming caldo: in tempo Reale i big data architettura questioni
Questa modalità consente di Samza per essere incorporato come una libreria all’interno di un’applicazione e l’esecuzione di qualsiasi gestore di risorse. C’è un paio di catture, però: La modalità standalone non supporta ancora stateful flusso di elaborazione del windowing e si unisce, e il supporto per Kubernetes non è molto c’è ancora. Il Samza team è al lavoro per affrontare questi. Samza 1.0 porta anche il supporto per la giunzione di flussi con tavoli e migliora la testabilità di Samza applicazioni.
SQL è di arrivare a essere posta in gioco per lo streaming dei dati. Preferibilmente, senza dover passare attraverso un API. (Immagine: Apache Flink)
Allora, qual è il verdetto? Samza ha fatto grandi progressi con la versione 1.0. La squadra dietro di esso sembra essere consapevole dei suoi limiti, ed è impegnata a lavorare su di loro. Sono anche consapevole dei suoi punti di forza, citare, per esempio, come Samza è riuscito a processo di 1.2 M messaggi/sec su una singola macchina.
Il problema però è: Se si cura, o di usare? Se si è certi che si può impostare, programmare, implementare e gestire il proprio, quindi è sicuramente vale la pena di considerare. Può essere open source puristi’ la prima scelta in fatto-che cosa potrebbe scoraggiare alcuni si rivolge ad altri.
Inoltre: applicazioni in tempo Reale intenzione luoghi
Samza 1.0 è importante che tu lo usi o meno. È importante perché dà Apache Fascio di una gamba, in un momento in cui sembrava di essere in una situazione di stallo. Non ogni organizzazione è LinkedIn, non ogni organizzazione ha la necessità, o il lusso, la costruzione e la manutenzione del proprio quadro. Ma lo sviluppo di sopra del Fascio sembra la migliore scommessa per la portabilità, a questo punto.
E anche se LinkedIn non sembrano dare Samza, usando il Fascio significa che potrebbe anche fare, e di essere in grado di porta delle loro applicazioni, senza soluzione di continuità a livello di API. Che non è poco.
Storie correlate:
Entro il 2025, quasi il 30 per cento dei dati generati sarà reale timThis avvio pensa che non sa come migliorare la velocità in tempo reale analyticsOnline sport sono in tempo reale streamingProcessing serie temporali di dati: Quali sono le opzioni?
Argomenti Correlati:
Big Data Analytics
L’innovazione
CXO
Intelligenza Artificiale
Enterprise Software
Archiviazione
0