Zeitreihendatenbank Influx-IOx-Quellcodelernen zwölf (Ausführung des physischen Plans)

Datum: 2022-01-26

Im März 2020 startete das Unternehmen ein Projekt zur Analyse der Fahrverhaltensdaten von Nutzern einer großen Autofabrik. Aus Platzgründen werden viele Details später weggelassen.Bei Interesse könnt ihr mich gerne kontaktieren oder dies bei Gelegenheit separat schreiben.

Fahrverhalten bedeutet in der Regel drei dringende und eine überhöhte Geschwindigkeit, nämlich: plötzliches Beschleunigen, plötzliches Abbremsen, plötzliches Bremsen und zu schnelles Fahren. Auf dieser Basis haben wir ein Bewertungssystem mit mehr Dimensionen, wie Spurwechsel, Bedienkomfort, Stau usw., verbessert. Quantifizieren Sie so viele Operationen des Autobesitzers wie möglich, um einen Score-Wert zu erhalten, und empfehlen Sie den Benutzern dann, basierend auf dem Score bessere Vorschläge zum Betriebsverhalten zu machen.

1. Gesamtarchitektur

333

Abstrakt haben Daten drei Attributionen:

Bemerkenswert ist hier, dass, egal bei welcher Partei, der gesamte Server und die Daten im Intranet und DC der Autofabrik liegen, die nur logisch getrennt sind.

1. Eigentümer der Daten ist das Rechenzentrum des Automobilwerks, das zur Veröffentlichung der Daten das Datenanwendungssystem des Projekts nutzt, um die Sicherheit der Daten des Eigentümers zu gewährleisten. Beispiel: Wenn es insgesamt 10 autobezogene Daten gibt und nur 3 Elemente (x, y, z) in Element 1 verwendet werden, schreibt der Autohersteller die drei Elemente (x, y, z) ein the car into one Die Datei wird synchron an Projekt 1 gesendet, um die Vertraulichkeit und Sicherheit der Daten so weit wie möglich zu gewährleisten.

2. Es ist der Datenrechner.Die Daten verwenden Kafka, um die vom Rechenzentrum verarbeiteten Daten in Form von 1 Datei pro Fahrzeug/Minute zu synchronisieren. Nach Erhalt der Daten werden diese entsprechend dem Geschäftsdesign analysiert und verarbeitet und die resultierenden Daten nach der Verarbeitung an die nachgelagerten Datennutzer gesendet.

3. Der Datennutzer ist eine Projektpartei, die sich auf die Analyse atomarer Daten verlässt, um sie zu diversifizieren und Kunden anzuzeigen. Das ist so, als ob die Straße in China die gleiche ist, aber die Navigation von AutoNavi, Baidu und Siwei ist anders.Dann sind AutoNavi und Baidu gleichbedeutend mit den Benutzern von Daten.

2. Datenzugriff

Wir verwenden 6 * 4-Kern-16G-Kafka-Maschinen als Unterstützung.

Die ursprüngliche Dateigröße pro Auto/min beträgt etwa 0,25 MB

444

Es ist ersichtlich, dass die Produktionsseite maximal 5230 Dateien pro Sekunde generiert, was einer eingehenden Datengeschwindigkeit von 1,2 G/s im Spitzenwert entspricht PS: Wenn es sich um die gekaufte öffentliche Netzwerkbandbreite handelt, können Sie die Kosten berechnen.

Aus dem Durchschnittswert lässt sich errechnen, dass die durch die Originaldaten pro Tag generierte Datenmenge ungefähr beträgt: 758/s * 3600 * 24 = 15,6 T/Tag.

Dieser Screenshot ist natürlich lange her, ich bin bewusst online gegangen, um die neusten Daten zu sehen: Die täglich generierte Datenmenge liegt bei etwa: 1,46K/s * 3600 * 24 = 20,6T/Tag. Bei Interesse können Sie die Gesamtkosten für die Aufbewahrung mehrerer Exemplare über einen längeren Zeitraum berechnen.

3. Datenverarbeitung

Nachdem die Datei empfangen wurde, wird Flink verwendet, um die Originaldatei zu parsen, die Daten zu bereinigen und die Originaldaten zu speichern.Zuerst wird Hbase als Datenbank zum Speichern der Originaldaten verwendet.

Nachdem die Datenspeicherung abgeschlossen ist, werden die Originaldaten innerhalb eines bestimmten Zeitraums mit Spark ausgelesen und die algorithmische Berechnung des Geschäfts beginnt.

Daher scheint die schwere Last auf Hbase zu liegen, der die Taufe der ständig eingehenden Daten akzeptieren und von Spark lesen muss. Zumindest habe ich das Gefühl, dass hbase für kleine und mittelständische Unternehmen wie uns nicht geeignet ist. Einerseits ist der Wartungsaufwand extrem hoch. Wir müssen mehr professionelle Leute organisieren, die überprüfen, wo die Engpässe online auftreten und wie um die Engpässe zu lösen; Sexuelle Inspektion des Knotenstatus, es dauert lange, um jederzeit ein Problem zu finden. Zweitens sind die Kosten der Maschine extrem hoch.Der Engpass kann sein, dass wir zu wenige Maschinenknoten haben und einige Ressourcen gemischt sind, aber es ist unmöglich, die Maschine unbegrenzt zu erhöhen.

Als nächstes wird die Grundsituation eingeführt:

Hbase läuft seit ungefähr einem Jahr online als Basisdatenbank und verwendet 20 * 8-Kern-11G-Maschinen für Ressourcen, Daten basieren auf S3, WAL-Protokolle basieren auf Solid-State-Festplatten und die IOPS der Festplatte werden angepasst 6000, was gerade ausreicht, um bei niedrigen Spitzen zu unterstützen. Während der Spitzenzeiten ist die Verzögerung beim Schreiben von Daten schwerwiegend, häufig ReginServer-Fehler, Schreibverweigerung usw., und der gekaufte Cloud-Anbieter kann keinen zeitnahen technischen Support leisten Als Teil des Supports müssen Sie einen höheren Preis ausgeben, um erweiterte Dienste zu erwerben.

Die Kosten für dieses Stück betragen ungefähr:

555

Das obige Bild ist die Online-Dienstüberwachung, Grün steht für die Verbrauchsgeschwindigkeit und Rot für die Produktionsgeschwindigkeit. Es ist deutlich zu sehen, dass die grüne Linie durchgehend war, das heißt, bevor ein Datenbatch verbraucht wurde, kommt die nächste Datenwelle erneut.

Zusammenfassend müssen wir uns zwischen den drei Aspekten Kosten, Leistung und Wartungsfreundlichkeit entscheiden.

Zeitreihendaten und IoTDB

Nachdem ich auf dieses Lagerproblem gestoßen war, dachte ich, haben wir außer Hbase noch andere Optionen? Gibt es eine einfachere Bedienung und Wartung, die ohne diverse Abhängigkeiten auskommt?

Kehren Sie also zum Wesen der Daten zurück, um über das Problem nachzudenken: Was sind die Merkmale von Daten? Was genau brauchen wir?

Zuallererst werden die primitivsten Daten in zeitlicher Abfolge generiert und haben eine feste Periode, die im Wesentlichen Zeitreihendaten sind. Nachdem die Daten im Rechenzentrum angekommen sind, führt dies zu ungeordneten, ausgelassenen Frames oder anderen Problemen. Hier müssen wir also die Daten einmal bereinigen und organisieren, die Datenqualität verbessern und die ungeordneten Daten sortieren Daten.

Also dachte ich damals, es wäre besser, eine Middleware zu machen, um die Sortier- und Abfragefunktionen zu vervollständigen.Später begann ich, verwandte Speichertechnologien zu untersuchen, und stieß zufällig auf IoTDB. Natürlich habe ich nebenbei auch TsFile, Storage Engine und Query Engine gelernt Nach einer Einarbeitungszeit ist die Zeit reif und ich bin bereit, online zu gehen.

Natürlich ist der Prozess des Onlinegehens nicht reibungslos, schließlich hat das Internet der Fahrzeuge gewisse Branchenmerkmale, aber es wurde schließlich durch die gemeinsamen Anstrengungen unseres Teams und des IoTDB-Teams abgeschlossen. Die Details des Problems hier und der Prozess zum Finden des Problems werden in diesem Artikel nicht beschrieben. Wenn Sie interessiert sind, können Sie mich als Freund hinzufügen oder im nächsten Artikel weiterschreiben. Hier ist eine Liste der wichtigsten Verbesserungen Zeit:

1. Unterstützung von Gerätevorlagen, wodurch die Speichernutzung von IoTDB erheblich reduziert wird.
2. Die Speicherverwaltungsfunktion wurde neu geschrieben, um die Leistung während des Betriebs stabiler und die Funktion robuster zu machen.
3. String-Pool hinzugefügt, um die Speichernutzung von TsFileResource zu reduzieren.
4. Das verteilte Verbindungsmanagement wurde neu gestaltet, um den Betrieb stabiler zu machen.
5. Es gibt auch einige Fehlerbehebungen. . .

Die oben genannten Funktionen und Fehlerbehebungen sind alle in der veröffentlichten Version 0.12.2 enthalten. Ich habe die Box für alle durchsucht, bitte zögern Sie nicht, sie zu verwenden.

Lassen Sie uns abschließend über den Vergleich von IoTDB und Hbase sprechen:

1. Maschinenressourcen

2021

DienenTypkonfigurierenMengeHadoopMaschine8 VCPU, 32 GiB Speicher20HadoopScheibeMaschinen3HadoopScheibefester Zustand(2T * 14) + (100G * 10)IoTDBMaschine8 VCPU, 64 GiB Speicher3IoTDBScheibefester Zustand500G*6

2025 (geschätzt)

DienenTypkonfigurierenMengeHadoopMaschine8 VCPU, 32 GiB Speicher41HadoopScheibeMaschinen3HadoopScheibefester Zustand(2T * 72) + (100G * 22)IoTDBMaschine8 VCPU, 64 GiB Speicher11IoTDBScheibefester Zustand500G*11

2. Leistungsüberwachung

Hbase

666

IoTDB

777

Die Konsumgeschwindigkeit hat sich fast verdoppelt, das Geld wurde um das 3-4 fache reduziert und die Polizei wird in den Ferien nicht mehr zu sehen sein.

Am Ende schreiben

Der Start des gesamten IoTDB wurde ungefähr im August abgeschlossen.Zu dieser Zeit wollte ich unbedingt einen Artikel schreiben, um den gesamten Prozess zu teilen, aber ich denke, ich sollte warten, bis sich das Internet stabilisiert hat, bevor ich schreibe.

Da es keine Internet-of-Vehicles-Technologie gibt, die die Taufe des Nationalfeiertags am 1. Oktober bestanden hat, ist sie dasselbe wie ein elektronisches Einkaufszentrum, das Double Eleven nicht bestanden hat.

Die gesamte Architektur ist bisher sehr stabil und kann endlich der Öffentlichkeit zugänglich gemacht werden. Wenn Sie auch ein Praktiker für Autonetzwerke, ein Enthusiast für Zeitreihendatenbanken oder ein Praktiker für Autofabriken sind, können Sie gerne Freunde hinzufügen, um gemeinsam zu lernen und zu kommunizieren.

Kontaktiere Uns

* Benötigte Information