So können diese Technologien zusammenarbeiten:
Datenpipeline-Architektur:
-
MySQL: Primäre Quelle strukturierter Daten.
-
TiDB: Verteilte SQL-Datenbank, die mit MySQL kompatibel ist und für Skalierbarkeit und hohe Verfügbarkeit verwendet wird.
-
Kafka: Messaging-System für Echtzeit-Datenstreaming.
-
Logstash: Datenverarbeitungs-Pipeline-Tool, das Daten aus verschiedenen Quellen aufnimmt und an verschiedene Ziele sendet.
-
Redis: Caching-Ebene für schnellen Zugriff auf häufig aufgerufene Daten.
-
Elasticsearch: Such- und Analysemaschine zur Abfrage großer Datenmengen.
-
CloudCanal: Datenintegrationstool zum Synchronisieren von Daten aus verschiedenen Quellen wie MySQL mit TiDB, Kafka, Redis und Elasticsearch.
Workflow-Details:
1. Datenaufnahme:
- Anwendungen speichern Daten in MySQL.
- CloudCanal wird verwendet, um Daten von MySQL mit TiDB und Kafka zu synchronisieren.
2. Daten-Streaming und -Verarbeitung:
Kafka:
- Kafka nimmt Daten von MySQL über CloudCanal auf und sendet sie an verschiedene Themen.
- Themen enthalten Streams von Datenereignissen, die von verschiedenen Verbrauchern verarbeitet werden können.
Logstash:
- Logstash fungiert als Kafka-Consumer, verarbeitet Daten von Kafka und sendet sie an verschiedene Ausgaben wie Elasticsearch und Redis.
3. Datenspeicherung und -abruf:
TiDB:
- TiDB dient als skalierbare und hochverfügbare Datenbanklösung, die große Datenmengen verarbeiten kann.
- TiDB ist MySQL-kompatibel, was die Integration und Migration von MySQL unkompliziert macht.
Redis:
- Redis wird als Caching-Schicht für häufig abgerufene Daten von MySQL oder verarbeitete Ereignisse von Kafka verwendet.
- Anwendungen können zuerst Redis abfragen, bevor sie MySQL abfragen, um den Datenabruf zu beschleunigen.
Elasticsearch:
- Logstash kann Daten von Kafka aufnehmen und an Elasticsearch senden.
- Elasticsearch indiziert die Daten für eine schnelle Suche und Analyse.
- Anwendungen können Elasticsearch nach erweiterten Suchfunktionen und Echtzeitanalysen abfragen.
Beispieldatenfluss:
Dateneingabe in MySQL:
- Ein Benutzer fügt einen neuen Datensatz in die MySQL-Datenbank ein.
- CloudCanal überwacht Änderungen in MySQL und sendet Ereignisse an TiDB- und Kafka-Themen.
Echtzeitverarbeitung:
- Kafka überträgt die Veranstaltung zu einem Thema.
- Logstash fungiert als Kafka-Consumer, verarbeitet das Ereignis und sendet die analysierten Daten zur Indizierung an Elasticsearch.
- Gleichzeitig wird Redis aktualisiert, um die neuen Daten zwischenzuspeichern.
Datenzugriff:
- Die Anwendung überprüft den Redis-Cache auf Daten.
- Wenn sich die Daten nicht im Cache befinden, werden MySQL oder TiDB abgefragt.
- Für komplexe Abfragen und Analysen fragt die Anwendung Elasticsearch ab.
Das ist nur für meine Notizen. CTTO