[FIXED] Streamen Sie Daten aus dem MySQL-Binärprotokoll an Kinesis

Ausgabe

Wir haben eine schreibintensive Tabelle (auf AWS RDS MySQL) von einem Legacy-System und wir möchten jedes Schreibereignis (einfügen oder aktualisiert) von dieser Tabelle zu Kinesis streamen. Die Idee ist, eine Pipe zu erstellen, um Caches aufzuwärmen und Suchmaschinen zu aktualisieren.

Derzeit verwenden wir dazu eine rudimentäre Polling-Architektur, im Wesentlichen mit SQL, aber das Ideal wäre, eine Push-Architektur zu haben, die die Ereignisse direkt aus dem Transaktionsprotokoll liest.

Hat es jemand versucht? Irgendwelche Architekturvorschläge?

Lösung

Ich habe bereits mit einigen Kunden zusammengearbeitet, die das in Oracle gemacht haben. Es scheint auch, dass LinkedIn diese Technik des Streamens von Daten aus Datenbanken an einen anderen Ort häufig verwendet. Sie haben eine Plattform namens Databus erstellt, um dies auf agnostische Weise zu erreichen – https://github.com/linkedin/databus/wiki/Databus-for-MySQL .

Es gibt ein öffentliches Projekt in Github, das den LinkedIn-Prinzipien folgt und bereits Binlog von Mysql zu Kinesis Streams streamt – https://github.com/cmerrick/plainview

Wenn Sie in die wesentlichen Details des LinkedIn-Ansatzes einsteigen möchten, gibt es einen wirklich netten (und ausführlichen) Blogbeitrag – https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer -sollte-über-Echtzeitdatenvereinheitlichung Bescheid wissen .

Zu guter Letzt macht Yelp das auch, aber mit Kafka – https://engineeringblog.yelp.com/2016/08/streaming-mysql-tables-in-real-time-to-kafka.html

Ohne auf die Grundlagen von Kinesis Streams einzugehen, der Kürze halber, wenn wir Kinesis Streams ins Spiel bringen, sehe ich nicht ein, warum es nicht funktionieren sollte. Tatsächlich wurde es dafür gebaut – Ihr Datenbank-Transaktionsprotokoll ist ein Strom von Ereignissen. Auszug aus der öffentlichen Dokumentation von Amazon Web Services: Amazon Kinesis Streams ermöglicht Datenverarbeitung in Echtzeit. Mit Amazon Kinesis Streams können Sie kontinuierlich Daten sammeln, während sie generiert werden, und sofort auf wichtige Informationen über Ihr Unternehmen und Ihre Abläufe reagieren.

Hoffe das hilft.


Beantwortet von –
Felipe Garcia


Antwort geprüft von –
Timothy Miller (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like