In che modo Twitter utilizza Apache Cassandra per potenziare la sua piattaforma di social media
Pubblicato: 2022-11-17Twitter è una piattaforma di social networking che consente agli utenti di inviare e leggere brevi messaggi chiamati "tweet". È in circolazione dal 2006 e da allora è diventata una delle piattaforme di social media più popolari. Sebbene Twitter utilizzi alcuni sistemi di gestione di database relazionali (RDBMS) per alcune parti della sua infrastruttura, utilizza principalmente un database NoSQL chiamato Apache Cassandra. Cassandra è stata progettata per gestire grandi quantità di dati con disponibilità e prestazioni elevate. Twitter utilizza Cassandra per diversi motivi. Innanzitutto, è molto scalabile. Twitter può facilmente aggiungere altri nodi Cassandra man mano che la sua base di utenti cresce. In secondo luogo, Cassandra è altamente disponibile. Anche se un nodo Cassandra si interrompe, gli altri possono riprendersi. Infine, Cassandra è veloce. Questo è importante per una piattaforma di social media in cui gli utenti si aspettano aggiornamenti in tempo reale. Quindi, sebbene Twitter utilizzi alcuni database relazionali, il suo database principale è NoSQL. Ciò consente a Twitter di scalare rapidamente e fornire ai suoi utenti un'esperienza veloce e affidabile.
Kevin Weil, direttore dello sviluppo prodotto di Twitter, fornisce una spiegazione di come l'azienda utilizza NoSQL in un video pubblicato all'inizio di quest'anno. Ogni giorno, gli utenti di Twitter generano circa 12 petabyte di dati, pari a circa 4 petabyte all'anno. Hadoop, insieme al proprio progetto open source chiamato FlockDB, viene utilizzato per analizzare i dati social e analizzare i dati. Twitter raccoglie e utilizza tutte le informazioni raccolte per fornire contenuti pertinenti. Secondo Weil, questo SlideShare è un ottimo posto per saperne di più su come Twitter analizza i grafici sociali. Twitter sta ancora sperimentando l'utilizzo di Cassandra, il database NoSQL open source di Facebook, come servizio.
MySQL è stato l'archivio dati principale di Twitter sin dall'inizio, poiché il livello di persistenza è cresciuto fino a raggiungere un gran numero di cluster. Twitter ha una considerevole distribuzione di MySQL sin dal suo inizio. Esistono migliaia di cluster MySQL con milioni di nodi e vengono servite query al secondo.
Google Cloud fornisce due tipi di servizi di database NoSQL: Cloud Firestore, che è un database orientato ai documenti, e Cloud Object Storage, che è un sistema di archiviazione dei dati. È semplice da usare e ottimizza per documenti di piccole dimensioni, rendendolo ideale per le applicazioni mobili. Database di documenti facilmente scalabili, performanti e facili da usare nel Cloud Datastore .
La tecnologia NoSQL alimenta l'app mobile di Ryanair, la compagnia aerea più trafficata del mondo, che serve oltre 3 milioni di utenti al mese. Negli ultimi otto anni, Marriott ha utilizzato NoSQL per gestire il proprio sistema di prenotazione, che genera entrate per 38 miliardi di dollari. Oltre al suo sistema di gestione dei contenuti proprietario, Presto, utilizzato dall'editore di giornali n. 1 negli Stati Uniti, The Chronicle of Higher Education, utilizza NoSQL.
PostgreSQL e Cassandra sono due dei sistemi di database back-end di Instagram.
Che tipo di database utilizza Twitter?
Twitter utilizza un database relazionale per archiviare i propri tweet. Questo database è progettato per archiviare i dati in una serie di tabelle, ciascuna delle quali contiene informazioni su un aspetto specifico dei tweet. Ad esempio, esiste una tabella per le informazioni dell'utente, una tabella per i tweet stessi e una tabella per le relazioni tra gli utenti.
Potremmo aver bisogno di alcune di queste informazioni per alcuni dei nostri servizi, come richiedere che la tua richiesta venga indirizzata a un server specifico, ma non è necessario. Se vuoi indirizzare la tua richiesta, non è necessario conoscere il timestamp del tuo tweet.
Nonostante ciò, i dati rimangono archiviati ed elaborati. Non è necessario eliminare o rendere anonime le informazioni. I nostri dati non sono accessibili al governo, ma possono comunque essere utilizzati per raccogliere informazioni su di te.
Esistono alcuni problemi di privacy a causa dell'archiviazione e dell'elaborazione di queste informazioni. Consente inoltre al governo di monitorare i tuoi movimenti e le tue attività in primo luogo. Inoltre, consente al governo di accedere alle tue informazioni personali senza il tuo consenso.
Non memorizziamo il testo dei tuoi tweet. Il nome e il timestamp di questo account sono le uniche cose che conserviamo. Non memorizziamo il contenuto dei tuoi tweet.
I tuoi tweet non contengono dati che possiamo memorizzare su di essi.
Memorizziamo solo il nome dell'account e il timestamp durante il caricamento dell'immagine.
I vantaggi dell'utilizzo di Mysql
Twitter ha utilizzato MySQL per archiviare i tweet in passato. MySQL può gestire un gran numero di richieste grazie alla sua affidabilità e natura coerente. Facebook impiega MySQL per archiviare tutti i suoi dati sui social media .
Facebook usa Sql o Nosql?
Poiché fornisce flessibilità di modellazione dei dati e MySQL è onnipresente all'avvio di FB, SQL è stato utilizzato come database persistente e memcache come cache "lookaside" nei primi giorni di FB.
Un database di Facebook memorizza i profili dei suoi clienti, che rappresentano circa il 23% dei clienti totali. I principi fondamentali alla base dell'architettura su scala Internet e distribuita a livello globale di Facebook si applicano a un'ampia gamma di applicazioni aziendali critiche per l'azienda, tra cui SaaS multi-tenant, e ci sono lezioni da trarre da una migliore comprensione dell'evoluzione del database su Facebook. L'API NoSQL Graph di TAO, che si basa su una versione frammentata del popolare database open source Mystria , è una delle API NoSQL di FB. TAO ha partizionato i 1000 database MySQL master-slave più vecchi di FB in migliaia di slave frammentati. Di conseguenza, l'applicazione non utilizza più il database per eseguire transazioni tra partizioni e JOIN tra partizioni. Di conseguenza, se si eseguiva questo tipo di failover, i dati recenti andrebbero persi. Poiché tutti gli oggetti e le associazioni sono memorizzati nella cache sugli stessi server, possono essere archiviati nello stesso frammento per un periodo di tempo indefinito.
Il grado di collocazione dei dati è stato determinato come un'importante tecnica di ottimizzazione utilizzata per massimizzare l'accesso ai dati di latenza. La comunità degli sviluppatori ha abbandonato SQL a favore dell'API NoSQL personalizzata di TAO dopo che FB li ha costretti a rinunciare alla loro API di query SQL. Il database Spanner di Google, creato oltre un decennio fa, è stato creato come parte del database TAO di FB. Il modello di dati di Spanner, al contrario di un grafico sociale, era più un carico di lavoro tradizionale ad accesso casuale per OLTP. La seconda generazione di database distribuiti si basa su un'enorme scalabilità e distribuzione globale dei dati come parte del livello del database. Spanner utilizza il consenso distribuito per shard per garantire che ogni shard (e non solo ogni istanza) rimanga altamente disponibile in caso di guasto del servizio. Nonostante il fatto che la configurazione del cluster dell'applicazione sia stata modificata, rimane operativa.
I dati rilevanti per la regione locale continueranno a essere classificati in cima all'elenco grazie a funzionalità come il partizionamento geografico a livello di tabella e di riga. Un gestore di transazioni distribuito viene utilizzato in una transazione multi-shard per gestire il processo di 2-Phase Commit, nonché le differenze di clock in ciascun nodo. Abbiamo utilizzato TAO come misura di riduzione dei costi in FB, permettendoci di mantenere il nostro investimento in MySQL frammentato. Google ha scelto di intraprendere una strada diversa con Spanner, un database completamente nuovo con capacità di scalabilità orizzontale, funzionalità di replica geografica senza soluzione di continuità e facilità di guasto dell'infrastruttura.
Ci sono numerose ragioni per cui i database NoSQL stanno guadagnando popolarità. Il sistema utilizza un approccio diverso all'archiviazione dei dati che è più efficiente quando si tratta di un grande volume di dati.
I database NoSQL sono utilizzati da numerose aziende note, tra cui Amazon, Netflix, Microsoft, Snapchat e Dropbox. La scelta di un database NoSQL è stata una delle migliori decisioni che abbiano mai preso perché le loro applicazioni gestiscono molti dati.
Di conseguenza, i database NoSQL offrono una maggiore flessibilità nel modo in cui le aziende possono archiviare i dati. Di conseguenza, c'è una migliore organizzazione e accesso ai dati. Inoltre, i database NoSQL hanno il vantaggio di essere più veloci in termini di elaborazione di grandi quantità di dati.
Ha perfettamente senso per le aziende che devono archiviare una grande quantità di dati considerare i database NoSQL. Come risultato del loro approccio unico all'elaborazione dei dati, sono in grado di gestire i dati a una velocità maggiore e in modo più efficiente.
Twitter utilizza il database grafico
Twitter mantiene i dati primari come i grafici degli interessi, le tempistiche e i dati degli utenti in MySql. Twitter ha centinaia di schemi e migliaia di nodi che servono milioni di query al secondo nel suo cluster più grande. Un servizio flockdb viene utilizzato nel calcolo grafico.
Vengono discussi l'uso di database a grafo , la sua applicazione ai dati COVID-19 e il linguaggio scelto per i grafici. Dopo la chat, puoi leggere i loro approfondimenti qui. Partecipa alla nostra chat su tweet alle 13:00 EST di oggi intitolata The State of Graph Databases in 2020. Presenteremo diverse domande che verranno utilizzate per facilitare la discussione. I database a grafo si sono dimostrati molto utili in passato. A causa della sua capacità di connettere i dati, gestire enormi quantità di dati ed eseguire egregiamente, è richiesto da tutte le organizzazioni con una mentalità analitica. Si distinguono per il fatto che possono essere utilizzati per connettere dati da più fonti piuttosto che da database.
Gli utenti possono ora utilizzare questi grafici per beneficiare di funzioni specifiche che si trovano in un database grafico durante l'analisi dei dati. Molti nuovi utenti potrebbero essere introdotti a #knowledgegraph come primo caso d'uso perché molte aziende richiedono #analytics da un'ampia gamma di fonti di dati strutturate e non strutturate. Quando si tratta di #NLP e combinando il suo output con varie fonti, #graphdb è la soluzione migliore. COVID-19 sarà discusso in modo più approfondito in GraphDB Q2. # GraphDB potrebbe essere molto utile nel secondo trimestre come soluzione di tracciamento dei contatti. Di conseguenza, i dati sono ingiusti per le grandi organizzazioni nel modo in cui le informazioni sono reperibili, accessibili, interoperabili e riutilizzabili. RDF* è un grafico di proprietà.
Non c'è dubbio che ci sia confusione. La federazione è un argomento intrigante in questo momento. Questi dati devono essere inseriti nel file #graphdbs. Se lo modelli correttamente, non hai necessariamente bisogno di usare RDF*. L'uso della scienza dei dati grafici per connettere e correlare set di dati disparati è un modo eccellente per farlo. Oggi non c'è alcuna differenza significativa tra CDR* e GPL. I fornitori abilitati per RDF in genere supportano proprietà etichettate, consentendo agli algoritmi grafici e ad altre funzioni analitiche di essere completamente invisibili dai precedenti RDF.
Devo usare rdf o sparcl tra il mio PC e le app mobili? In effetti, non è scienza missilistica generare proprietà da RDF, ma ML potrebbe potenzialmente generare triple dalle proprietà nel DBMS grafico #GraphDB @stevesarfield. Quando guardi un'ontologia, la stai modellando e ti segue a letto. Inoltre, i nostri editor hanno iniziato a interagire con il marketplace di GraphDB. Il nostro obiettivo è mettere insieme un elenco completo dei migliori prodotti a disposizione dei consumatori. Un knowledgegraph può essere creato con GraphDB combinando dati strutturati e non strutturati, consentendone l'utilizzo come strumento per l'analisi. Molti utenti troveranno che questo sarà l'inizio del loro viaggio verso i database grafici in futuro.
Per molto tempo, FOSS è stato il punto di riferimento per i progetti open source, ma potrebbe tornare alla ribalta in futuro. # GraphDB può essere il modo migliore per organizzare tutti i componenti disparati in un ecosistema #IoT man mano che maturano nelle organizzazioni e negli ecosistemi. Le società di carte di credito utilizzano GraphDB per rilevare schemi di attività sospetti. Quando è necessario combinare schemi imperfetti con altre fonti imperfette, l'utilizzo di #GraphDB può essere una buona opzione. Rimanete in contatto gli uni con gli altri e state anche in salute. La soluzione di database GOLAP di Cambridge Semantics, AnzoGraphDB, fornisce contesto e significato su vasta scala in un database grafico MPP (Massively Parallel Processing) in memoria. Una query di attraversamento del grafico può essere ridimensionata per soddisfare le esigenze di analisi e data warehousing complessi e può anche gestire ampie aree di aggregazione dei dati. Prova AnzoGraphDB gratuitamente per vedere se può aiutarti a gestire meglio la tua vasta raccolta di dati.
In che modo i giganti dei social media utilizzano i database a grafo per migliorare le proprie piattaforme
MySQL, un sistema di gestione di database, è stato originariamente utilizzato per archiviare i dati di Twitter. Siamo passati da un'istanza di database di piccole dimensioni a un'istanza di database di grandi dimensioni e quindi da un'istanza di database di grandi dimensioni a un'altra. Il database di Twitter è stato utilizzato per archiviare tutte le informazioni dell'utente, consentendogli di diventare una delle più potenti società di social media . L'azienda è stata in grado di migliorare la propria piattaforma analizzando il comportamento degli utenti e monitorando i loro progressi. Il motore di ricerca di Instagram era inizialmente alimentato da Elasticsearch, un motore di ricerca basato su grafici sociali creato da Facebook, ma alla fine è stato sostituito da Unicorn. Oltre a utilizzare un database grafico per tenere traccia di come gli utenti interagiscono, Instagram lo utilizza per tenere traccia di come gli utenti sono collegati. Instagram può migliorare la sua esperienza utente e fornire contenuti più pertinenti analizzando i dati dei social media. I database e le analisi dei grafici vengono utilizzati da Facebook, Instagram e Twitter per comprendere meglio come i loro utenti interagiscono tra loro e per costruire piattaforme migliori.