Skip to main content

Twitter löst seine Datenformatierung Herausforderung

Twitter verzichtet auf beliebte Optionen wie XML, CSV und JSON und hat sich dafür entschieden, den Back-End-Speicher seiner Benutzer- und Systemdaten in einem relativ unbekannten Format namens Protocol Buffers zu formatieren.

Mit dem Unternehmen, das 12 TB speichert Diese Daten wurden jeden Tag zur späteren Verwendung verwendet, die Entscheidung für das zu verwendende Format war entscheidend.

"Die richtigen Datenformate zu haben, ist alles", sagte Kevin Weil, Leiter von Twitter Analytics, während eines Vortrags auf der HadoopWorld-Konferenz in New York am Dienstag.

[Weiterführende Literatur: Beste NAS-Boxen für Media-Streaming und Backup]

Das Unternehmen plant für die Zeit, in der es "eine Billion Tweets" aufnehmen muss, sagte Weil und will Werkzeuge an Ort und Stelle um diese Informationen zu analysieren. Die Kombination von Protokoll-Puffern mit Hadoop und anderen zugehörigen Technologien sollte diesen Job rationalisieren, sagte Weil.

Jede Kurznachricht, oder "Tweet", besteht aus 17 Feldern, von denen sechs mindestens ein Unterfeld haben , er erklärte. Und das Unternehmen wird wahrscheinlich in den kommenden Jahren weitere Felder zu diesem Schema hinzufügen.

Zusätzlich zu den Tweets, die die Benutzer des Unternehmens liefern, speichert Twitter interne Protokolldaten über mehr als 80 verschiedene Arten von Operationen, die innerhalb seiner Systeme auftreten, Weil sagte. Viele dieser Log-Daten werden von der Open-Source-Technologie Scribe von Facebook aggregiert.

Die Wahl eines Formats zur Speicherung all dieser Daten war schwierig. Eine offensichtliche Wahl ist XML (Extensible Markup Language), aber dieses Protokoll ist "sehr wörtlich", sagte Weil und bezog sich darauf, wie der Name des Tags jedes Datenelement begleitet.

Unter XML könnte "ein Petabyte für eine Billion Tweets 10 Petabyte für eine Billion Tweets ", sagte er.

JSON (JavaScript Object Notation), obwohl es entworfen wurde, um XML zu vereinfachen, ist auch wortreich, indem es auch den Namen des Schlüssels mit jedem Eintrag speichert.

Am anderen Ende des Spektrums steht CSV (Comma Separated Values). Wie der Name schon sagt, trennt CSV jedes Datenelement nur mit einem Komma. Es ist zwar nicht einfach, Datenelemente in Unterfeldern zu verschachteln, erklärte Weil. Wenn das Schema geändert wird, wäre die resultierende Programmierung, die erforderlich wäre, um Daten in dem alten Schema unterzubringen, beträchtlich.

Ein Nachteil all dieser Protokolle besteht darin, dass, um die Daten in und aus Anwendungen zu bekommen, Entwickler müssen wiederholt Datenstrukturen erstellen, um die Daten zu verschlüsseln und zu analysieren, weil Weil dies als "rot" ansieht.

Protocol Buffers, weit verbreitet in Google, ist ein erweiterbares Protokoll für die Serialisierung von Daten, von dem Google behauptet, es sei einfacher als XML. Und es kann den Prozess der Wiederherstellung der Datenstrukturen innerhalb von Anwendungen automatisieren.

"Sie definieren, wie Ihre Daten einmal strukturiert sein sollen, dann können Sie speziellen generierten Quellcode verwenden, um Ihre strukturierten Daten einfach zu und von einem zu schreiben und zu lesen Vielzahl von Datenströmen und die Verwendung einer Vielzahl von Sprachen ", heißt es in einem Google-Tutorial zu Protocol Buffers. "Sie können sogar Ihre Datenstruktur aktualisieren, ohne vorhandene Programme zu kompromittieren, die mit dem" alten "Format kompiliert wurden."

Für Twitter würde diese Automatisierung dem Unternehmen ermöglichen, neue Funktionen schneller zu starten.

"Protokollpuffer werden Code in einer Reihe von verschiedenen Sprachen zu generieren, so dass Sie nicht Code über IDL schreiben müssen, "oder Interface Description Language, sagte Weil. Es stellt auch sicher, dass die älteren Informationen weiterhin zugänglich sind, wenn das Schema geändert wird.

Während primäre Kopien von Benutzer-Tweets in MySQL- und Cassandra-Datenbanken aufbewahrt werden, baut das Unternehmen auch ein zweites Daten-Repository, das auf Hadoop läuft für Analysen und Anwendungen verwendet werden.

Die Informationen in diesem System können mit Java MapReduce oder Pig abgefragt werden, einer eigenen SQL-ähnlichen Abfragesprache von Hadoop. Auf diesem System läuft bereits eine Funktion, die Namenssuche von Twitter, und es wird erwartet, dass weitere erstellt werden.

Joab Jackson berichtet über Unternehmenssoftware und allgemeine Technologie-Neuigkeiten für The IDG News Service. Folge Joab auf Twitter unter @Joab_Jackson. Joabs E-Mail-Adresse ist [email protected]