Wie Twitter Apache Cassandra verwendet, um seine Social-Media-Plattform zu betreiben

Veröffentlicht: 2022-11-17

Twitter ist eine soziale Netzwerkplattform, die es Benutzern ermöglicht, Kurznachrichten, sogenannte „Tweets“, zu senden und zu lesen. Es existiert seit 2006 und hat sich seitdem zu einer der beliebtesten Social-Media-Plattformen entwickelt. Während Twitter einige relationale Datenbankverwaltungssysteme (RDBMS) für bestimmte Teile seiner Infrastruktur verwendet, verwendet es hauptsächlich eine NoSQL-Datenbank namens Apache Cassandra. Cassandra wurde entwickelt, um große Datenmengen mit hoher Verfügbarkeit und Leistung zu verarbeiten. Twitter verwendet Cassandra aus mehreren Gründen. Erstens ist es sehr skalierbar. Twitter kann problemlos weitere Cassandra-Knoten hinzufügen, wenn seine Benutzerbasis wächst. Zweitens ist Cassandra hochverfügbar. Selbst wenn ein Cassandra-Knoten ausfällt, können die anderen die Lücke schließen. Schließlich ist Cassandra schnell. Dies ist wichtig für eine Social-Media-Plattform, auf der Benutzer Echtzeit-Updates erwarten. Während Twitter also einige relationale Datenbanken verwendet, ist seine primäre Datenbank NoSQL. Dadurch kann Twitter schnell skalieren und seinen Nutzern ein schnelles, zuverlässiges Erlebnis bieten.

Kevin Weil, Director of Product Development bei Twitter, erklärt in einem Video, das Anfang des Jahres veröffentlicht wurde, wie das Unternehmen NoSQL einsetzt. Täglich erzeugen Twitter-Nutzer ungefähr 12 Petabyte an Daten, was ungefähr 4 Petabyte pro Jahr entspricht. Hadoop wird zusammen mit seinem eigenen Open-Source-Projekt namens FlockDB verwendet, um soziale Daten zu analysieren und Daten zu analysieren. Twitter sammelt und verwendet alle gesammelten Informationen, um relevante Inhalte bereitzustellen. Laut Weil ist dieser SlideShare ein großartiger Ort, um mehr darüber zu erfahren, wie Twitter Social Graphs analysiert. Twitter experimentiert immer noch mit Cassandra, der Open-Source-NoSQL-Datenbank von Facebook, als Dienst.

MySQL war von Anfang an der primäre Datenspeicher von Twitter, als die Persistenzschicht auf eine große Anzahl von Clustern anwuchs. Twitter hat von Anfang an eine beträchtliche MySQL-Bereitstellung. Es gibt Tausende von MySQL-Clustern mit Millionen von Knoten darin, und Abfragen pro Sekunde werden bedient.

Google Cloud bietet zwei Arten von NoSQL-Datenbankdiensten: Cloud Firestore, eine dokumentenorientierte Datenbank, und Cloud Object Storage, ein Datenspeichersystem. Es ist einfach zu bedienen und für kleine Dokumente optimiert, was es ideal für mobile Anwendungen macht. Dokumentendatenbanken, die sich einfach skalieren lassen, eine gute Leistung erbringen und im Cloud Datastore einfach zu verwenden sind.

Die NoSQL-Technologie unterstützt die mobile App von Ryanair, der verkehrsreichsten Fluggesellschaft der Welt, die über 3 Millionen Benutzer pro Monat bedient. In den letzten acht Jahren hat Marriott NoSQL für den Betrieb seines Reservierungssystems verwendet, das 38 Milliarden US-Dollar Umsatz generiert. Zusätzlich zu seinem proprietären Content-Management-System verwendet Presto, das vom US-Zeitungsverlag Nr. 1, The Chronicle of Higher Education, verwendet wird, NoSQL.

PostgreSQL und Cassandra sind zwei der Backend-Datenbanksysteme von Instagram.

Welche Art von Datenbank verwendet Twitter?

Bildnachweis: sqlnethub.com

Twitter verwendet eine relationale Datenbank, um seine Tweets zu speichern. Diese Datenbank dient zum Speichern von Daten in einer Reihe von Tabellen, wobei jede Tabelle Informationen zu einem bestimmten Aspekt der Tweets enthält. Beispielsweise gibt es eine Tabelle für die Benutzerinformationen, eine Tabelle für die Tweets selbst und eine Tabelle für die Beziehungen zwischen Benutzern.

Möglicherweise benötigen wir einige dieser Informationen für einige unserer Dienste, z. B. um anzufordern, dass Ihre Anfrage an einen bestimmten Server weitergeleitet wird, dies ist jedoch nicht erforderlich. Wenn Sie Ihre Anfrage weiterleiten möchten, müssen Sie den Zeitstempel Ihres Tweets nicht kennen.
Die Daten bleiben trotzdem gespeichert und verarbeitet. Es besteht keine Notwendigkeit, die Informationen zu löschen oder zu anonymisieren. Auf unsere Daten kann von der Regierung nicht zugegriffen werden, aber sie können dennoch verwendet werden, um Informationen über Sie zu sammeln.
Aufgrund der Speicherung und Verarbeitung dieser Informationen bestehen einige Datenschutzbedenken. Es ermöglicht der Regierung auch, Ihre Bewegungen und Aktivitäten überhaupt zu verfolgen. Darüber hinaus ermöglicht es der Regierung, ohne Ihre Zustimmung auf Ihre persönlichen Daten zuzugreifen.
Wir speichern den Text Ihrer Tweets nicht. Der Name und der Zeitstempel dieses Kontos sind die einzigen Dinge, die wir speichern. Wir speichern den Inhalt Ihrer Tweets nicht.
Ihre Tweets enthalten keine Daten, die wir darauf speichern können.
Wir speichern nur den Kontonamen und den Zeitstempel beim Hochladen des Bildes.

Die Vorteile der Verwendung von MySQL

Twitter hat in der Vergangenheit MySQL zum Speichern von Tweets verwendet. MySQL kann aufgrund seiner Zuverlässigkeit und Konsistenz eine große Anzahl von Anfragen verarbeiten. Facebook verwendet MySQL, um alle seine Social-Media-Daten zu speichern.

Verwendet Facebook SQL oder Nosql?

Bildnachweis: phoenixnap.com

Da es Flexibilität bei der Datenmodellierung bietet und MySQL allgegenwärtig war, als FB gestartet wurde, wurde SQL in den frühen Tagen von FB als persistente Datenbank und Memcache als „Lookaside“-Cache verwendet.

Eine Facebook-Datenbank speichert die Profile ihrer Kunden, die etwa 23 % aller Kunden ausmachen. Die Grundprinzipien, die der internetbasierten, global verteilten Architektur von Facebook zugrunde liegen, gelten für eine Vielzahl von geschäftskritischen Unternehmensanwendungen, einschließlich Multi-Tenant-SaaS, und aus einem besseren Verständnis der Datenbankentwicklung bei Facebook können Lehren gezogen werden. Die TAO NoSQL Graph API, die auf einer Sharding-Version der beliebten Open-Source-Datenbank Mystria aufbaut, ist eine der NoSQL-APIs von FB. TAO partitionierte die älteren 1000 manuell gesalzten MySQL-Master-Slave-Datenbanken von FB in Tausende von geteilten Slaves. Infolgedessen verwendet die Anwendung die Datenbank nicht mehr, um Shard-übergreifende Transaktionen und Shard-übergreifende JOINs durchzuführen. Wenn diese Art von Failover durchgeführt würde, würden daher aktuelle Daten verloren gehen. Da alle Objekte und Zuordnungen auf denselben Servern zwischengespeichert werden, können sie auf unbestimmte Zeit im selben Shard gespeichert werden.

Es wurde festgestellt, dass der Grad der Datenkollokation eine wichtige Optimierungstechnik ist, die verwendet wird, um den Latenzdatenzugriff zu maximieren. Die Entwicklergemeinschaft hat SQL zugunsten der benutzerdefinierten NoSQL-API von TAO aufgegeben, nachdem FB sie gezwungen hatte, ihre SQL-Abfrage-API aufzugeben. Die vor über einem Jahrzehnt erstellte Spanner-Datenbank von Google wurde als Teil der TAO-Datenbank von FB erstellt. Das Datenmodell von Spanner war im Gegensatz zu einem Social Graph eher eine traditionelle Workload mit wahlfreiem Zugriff für OLTP. Die zweite Generation verteilter Datenbanken basiert auf massiver Skalierbarkeit und globaler Datenverteilung als Teil der Datenbankschicht. Spanner verwendet einen pro Shard verteilten Konsens, um sicherzustellen, dass jeder Shard (und nicht nur jede Instanz) im Falle eines Dienstausfalls hochverfügbar bleibt. Obwohl die Clusterkonfiguration der Anwendung geändert wurde, bleibt sie betriebsbereit.

Daten, die für die lokale Region relevant sind, werden aufgrund von Funktionen wie Geopartitionierung auf Tabellen- und Zeilenebene weiterhin ganz oben auf der Liste stehen. Ein verteilter Transaktionsmanager wird in einer Multi-Shard-Transaktion verwendet, um den 2-Phasen-Commit-Prozess sowie Taktverschiebungen in jedem Knoten zu verwalten. Wir haben TAO als Kostensenkungsmaßnahme bei FB eingesetzt, wodurch wir unsere Investition in Sharded MySQL beibehalten konnten. Google entschied sich für einen anderen Weg mit Spanner, einer völlig neuen Datenbank mit horizontalen Skalierungsfunktionen, nahtlosen Georeplikationsfunktionen und der Möglichkeit, Infrastrukturausfälle zu vermeiden.

Es gibt zahlreiche Gründe, warum NoSQL-Datenbanken immer beliebter werden. Das System verwendet einen anderen Ansatz zur Datenspeicherung, der beim Umgang mit großen Datenmengen effizienter ist.
NoSQL-Datenbanken werden von einer Reihe bekannter Unternehmen verwendet, darunter Amazon, Netflix, Microsoft, Snapchat und Dropbox. Die Wahl einer NoSQL-Datenbank war eine der besten Entscheidungen, die sie je getroffen haben, da ihre Anwendungen viele Daten verarbeiten.
Infolgedessen bieten NoSQL-Datenbanken eine größere Flexibilität bei der Speicherung von Daten durch Unternehmen. Das Ergebnis ist eine bessere Organisation und ein besserer Datenzugriff. Darüber hinaus haben NoSQL-Datenbanken den Vorteil, dass sie bei der Verarbeitung großer Datenmengen schneller sind.
Für Unternehmen, die große Datenmengen speichern müssen, ist es absolut sinnvoll, NoSQL-Datenbanken in Betracht zu ziehen. Aufgrund ihres einzigartigen Ansatzes zur Datenverarbeitung sind sie in der Lage, Daten schneller und effizienter zu verarbeiten.


Verwendet Twitter die Graph-Datenbank?

Bildnachweis: metricool.com

Twitter speichert Primärdaten wie Interessendiagramme, Zeitachsen und Benutzerdaten in MySql. Twitter verfügt in seinem größten Cluster über Hunderte von Schemas und Tausende von Knoten, die Millionen von Abfragen pro Sekunde bedienen. Beim Graph-Computing wird ein flockdb-Dienst verwendet.

Die Verwendung von Graphdatenbanken , ihre Anwendung auf COVID-19-Daten und die Sprache der Wahl für Graphen werden diskutiert. Nach dem Chat können Sie ihre Erkenntnisse hier lesen. Nehmen Sie heute um 13:00 Uhr EST an unserem Tweet-Chat mit dem Titel The State of Graph Databases in 2020 teil. Wir werden mehrere Fragen stellen, die verwendet werden, um die Diskussion zu erleichtern. Graphdatenbanken haben sich in der Vergangenheit als sehr nützlich erwiesen. Aufgrund seiner Fähigkeit, Daten zu verbinden, riesige Datenmengen zu verarbeiten und eine bewundernswerte Leistung zu erbringen, wird es von allen analytisch denkenden Organisationen benötigt. Sie zeichnen sich dadurch aus, dass sie zur Verbindung von Daten aus mehreren Quellen anstelle von Datenbanken verwendet werden können.

Benutzer können diese Diagramme nun verwenden, um während der Datenanalyse von bestimmten Funktionen zu profitieren, die in einer Diagrammdatenbank zu finden sind. Viele neue Benutzer können #knowledgegraph als ersten Anwendungsfall kennenlernen, da viele Unternehmen #Analytics aus einer Vielzahl von strukturierten und unstrukturierten Datenquellen benötigen. Wenn es um #NLP und die Kombination seiner Ausgabe mit verschiedenen Quellen geht, ist #graphdb die beste Lösung. COVID-19 wird in GraphDB Q2 ausführlicher erörtert. # GraphDB könnte im 2. Quartal als Contact-Tracing-Lösung viel Verwendung finden. Infolgedessen sind Daten für große Organisationen unfair, da Informationen auffindbar, zugänglich, interoperabel und wiederverwendbar sind. RDF* ist ein Eigenschaftsgraph.

Es besteht kein Zweifel, dass Verwirrung herrscht. Federation ist derzeit ein spannendes Thema. Diese Daten müssen in die #graphdbs-Datei aufgenommen werden. Wenn Sie es richtig modellieren, müssen Sie nicht unbedingt RDF * verwenden. Die Verwendung von Graph Data Science zum Verbinden und Korrelieren unterschiedlicher Datensätze ist eine hervorragende Möglichkeit, dies zu tun. Es gibt heute keinen signifikanten Unterschied zwischen RDF* und LPG. RDF-fähige Anbieter unterstützen in der Regel beschriftete Eigenschaften, wodurch Graphalgorithmen und andere Analysefunktionen von früheren RDFs vollständig unsichtbar gemacht werden können.

Sollte ich rdf oder sparcl zwischen meinem PC und mobilen Apps verwenden? Tatsächlich ist es kein Hexenwerk, Eigenschaften aus RDF zu generieren, aber ML könnte möglicherweise Tripel aus Eigenschaften im Graph-DBMS #GraphDB @stevesarfield generieren. Wenn Sie sich eine Ontologie ansehen, modellieren Sie sie, und sie folgt Ihnen ins Bett. Darüber hinaus haben unsere Redakteure begonnen, mit dem Marktplatz von GraphDB zu interagieren. Unser Ziel ist es, eine umfassende Liste der besten Produkte zusammenzustellen, die Verbrauchern zur Verfügung stehen. Mit GraphDB kann ein Wissensgraph erstellt werden, indem strukturierte und unstrukturierte Daten kombiniert werden, sodass er als Analysetool verwendet werden kann. Viele Benutzer werden feststellen, dass dies der Beginn ihrer Reise zu Graphdatenbanken in der Zukunft ist.

FOSS war lange Zeit die Anlaufstelle für Open-Source-Projekte, könnte aber in Zukunft wieder in den Vordergrund rücken. # GraphDB ist möglicherweise der beste Weg, um all die unterschiedlichen Komponenten in einem #IoT-Ökosystem zu organisieren, wenn sie in Organisationen und Ökosystemen heranreifen. Kreditkartenunternehmen verwenden GraphDB, um verdächtige Aktivitätsmuster zu erkennen. Wenn Sie unvollkommene Schemas mit anderen unvollkommenen Quellen kombinieren müssen, kann die Verwendung von #GraphDB eine gute Option sein. Bleiben Sie miteinander in Kontakt und bleiben Sie auch gesund. Die GOLAP-Datenbanklösung von Cambridge Semantics, AnzoGraphDB, stellt Kontext und Bedeutung in großem Umfang in einer speicherinternen Massively Parallel Processing (MPP)-Grafikdatenbank bereit. Eine Graph-Traversal-Abfrage kann skaliert werden, um die Anforderungen von komplexem Data Warehousing und Analysen zu erfüllen, und sie kann auch große Mengen an Datenaggregation verarbeiten. Probieren Sie AnzoGraphDB kostenlos aus, um zu sehen, ob es Ihnen helfen kann, Ihre riesige Datensammlung besser zu verwalten.

Wie Social-Media-Giganten Graphdatenbanken verwenden, um ihre Plattformen zu verbessern

MySQL, ein Datenbankverwaltungssystem, wurde ursprünglich zum Speichern von Twitter-Daten verwendet. Wir wechselten von einer kleinen Datenbankinstanz zu einer großen Datenbankinstanz und dann von einer großen Datenbankinstanz zu einer anderen. Die Datenbank von Twitter wurde verwendet, um alle Benutzerinformationen zu speichern, wodurch es zu einem der mächtigsten Social-Media-Unternehmen wurde . Das Unternehmen konnte seine Plattform verbessern, indem es das Nutzerverhalten analysierte und deren Fortschritte verfolgte. Die Instagram-Suchmaschine wurde ursprünglich von Elasticsearch betrieben, einer von Facebook entwickelten Social-Graph-aware-Suchmaschine, wurde aber schließlich durch Unicorn ersetzt. Zusätzlich zur Verwendung einer Graphdatenbank, um zu verfolgen, wie Benutzer interagieren, verwendet Instagram sie, um zu verfolgen, wie Benutzer verwandt sind. Durch die Analyse von Social-Media-Daten kann Instagram sein Nutzererlebnis verbessern und relevantere Inhalte bereitstellen. Graphdatenbanken und -analysen werden von Facebook, Instagram und Twitter verwendet, um besser zu verstehen, wie ihre Benutzer miteinander interagieren, und um bessere Plattformen aufzubauen.