So optimieren Sie ihr Storage für Zeitreihen

Zeitreihendaten sollten abhängig von Verwendung und Alter gespeichert werden. Wir geben Tipps wie sich Daten für vergleichende Analysen und maschinelles Lernen sichern lassen.

Die Art und Weise, wie wir Daten nutzen, ändert sich im Laufe der Zeit und in verschiedenen Szenarien. Nehmen Sie zum Beispiel Zeitreihendaten. Zu dieser Art von Daten gehören Informationen zur Leistungsüberwachung, Messungen von IoT-Sensoren, Streaming-Standortdaten von Mobilgeräten und andere Daten, die die Zeit als Teil ihrer einzigartigen Identifizierungsmerkmale enthalten.

Neu generierte Zeitreihendaten sind besonders nützlich, wenn Datenströme auf Anomalien analysiert werden oder ein Coupon an ein mobiles Gerät in der Nähe eines Unternehmens gesendet wird. Solche Daten können sehr wertvoll sein, zumindest für eine kurze Zeitspanne.

Das Senden einer Warnung an einen Techniker über eine Festplatte, deren Speicherplatz bald erschöpft sein wird, ist nur dann sinnvoll, wenn die Nachricht vor dem bevorstehenden Ereignis eintrifft. In ähnlicher Weise ist ein Gutschein, der einen potenziellen Kunden in Ihr Geschäft lockt, weit weniger wertvoll, wenn er eintrifft, nachdem der Kunde wieder zu Hause ist.

Ein Zeitreihendatenspeicher kann bei der Erstellung von statistischen und maschinellen Lernmodellen, die Anomalien erkennen, unerlässlich sein. Mit genügend Daten können Algorithmen Muster erkennen, die typischerweise signifikanten Ereignissen vorausgehen. Das Auslaufen von Speicherplatz ist leicht vorherzusagen; Rückschlüsse aus Daten zu ziehen, die sich aufgrund von allgemeinen Trends oder saisonalen Schwankungen verschieben, erfordert genauere Ansätze zur Modellierung. Je komplexer der Modellierungsansatz ist, desto eher profitiert er von zusätzlichen Daten.

Schon bevor maschinelles Lernen ein fester Bestandteil der IT-Tool-Liste von Unternehmen wurde, waren ältere Zeitreihendaten für die Analyse nützlich. So ist beispielsweise der Vergleich der Umsätze eines Geschäfts mit dem gleichen Monat im Vorjahr eine gängige Methode zur Leistungsbewertung.

Betrachtet man Gesamttrends, zum Beispiel über die letzten sechs Monate, dann kann eine Visualisierung, die Daten auf der Aggregationsebene von einem Tag anzeigt, nicht von einer Visualisierung zu unterscheiden sein, die auf der Ebene von einer Minute misst.

Manager können die verschiedenen Arten der Verwendung von Zeitreihendaten nutzen, um sowohl die Speicherkosten als auch die Leistung von Anwendungen zu optimieren, die diese Daten verwenden.

Zuletzt erzeugte Zeitreihendaten

Aktuelle Zeitreihendaten sind die wahrscheinlichsten Informationen, die verwendet werden, und sie sollten mit geringer Latenzzeit zugänglich sein. In einigen Fällen, beispielsweise bei der Stream-Verarbeitung, kann dies die Verwendung eines In-Memory-Caches erfordern, um Daten zu speichern, bevor sie in den permanenten Speicher geschrieben werden. Dies kann bei Anwendungen zur Erkennung von Anomalien und anderen Anwendungen der Fall sein, die innerhalb eines engen Zeitfensters erkennen und reagieren müssen.

Wenn Zeitreihendaten länger aufbewahrt werden, müssen Sie überlegen, wie sie abgefragt werden sollen. Wird ein Zeitreihendatenspeicher beispielsweise üblicherweise in Bezug auf einen anderen Wert abgefragt, zum Beispiel einen Kunden-, Sensor- oder Standortidentifikator? Idealerweise werden Daten, auf die wahrscheinlich zur gleichen Zeit zugegriffen wird, zusammen gespeichert, beisppielsweise in derselben Partition oder demselben Datenbank-Shard.

Gleichzeitig möchten Sie vermeiden, zu viele Daten in eine einzelne Partition oder einen Shard zu schreiben. Dies kann zu Hotspotting oder zur Isolierung einer Serien-E/A-Operation auf eine kleine Anzahl von Speicherkomponenten führen, anstatt die Operationen über viele verschiedene Komponenten zu parallelisieren.

Dies ist ein häufiges Problem bei NoSQL-Datenbanken mit breiten Spalten, wie zum Beispiel Google Cloud Bigtable und Apache Cassandra. Es kann aber bei jedem verteilten Datenspeicher auftreten, sogar bei Google Cloud Spanner, einer horizontal skalierbaren relationalen Datenbank.

Ältere Zeitreihendaten

Wenn Sie auf ältere Daten nicht mehr auf einer feingranularen Ebene zugreifen wollen, sollten Sie darüber nachdenken, diese zu aggregieren und zu speichern.

Denken Sie zum Beispiel darüber nach, wie Sie Zeitreihendaten aus einer früheren Periode verwenden könnten. Sie könnten tägliche Volumina oder Raten von vor einem Jahr mit aktuelleren Daten vergleichen, aber selten, wenn überhaupt, würden Sie ein Jahr alte Daten auf Minuten-Ebene vergleichen.

In diesem Fall können tägliche Aggregate in Ihrem Zeitreihendatenspeicher berechnet und in einem Speicher mit niedriger Latenz für Abfragezwecke gespeichert werden.

Einfache Summen und Zählungen sind oft ausreichend. Wenn Sie jedoch mehr Informationen über die Daten benötigen, die Sie aggregieren, können Sie deskriptive Statistiken wie Mittelwert und Standardabweichung aufbewahren, um die Verteilung der ursprünglichen Daten zu beschreiben.

Maschinelles Lernen

Aggregate sind nützlich, um Abfragen zu erfüllen, die keine genaueren Details erfordern, aber das Training von Modellen für maschinelles Lernen hängt von großen Mengen detaillierter Daten ab. Für diesen Anwendungsfall ist es sinnvoll, granulare Daten auf kostengünstigerem Speicher zu speichern, bis sie für das Modelltraining benötigt werden. Da das Modelltraining die Vorteile von GPUs und anderen Beschleunigern nutzen kann, besteht eine Herausforderung darin, diese Geräte mit Daten in einer Geschwindigkeit zu versorgen, die sie verarbeiten können.

Google hat beispielsweise Nearline Storage in der Google Cloud für Daten konzipiert, die wahrscheinlich nicht öfter als einmal pro Monat gelesen werden, was sie zu einem guten Kandidaten für großvolumige Langzeitspeicher macht. Wenn Daten für Aufgaben des maschinellen Lernens benötigt werden, können sie auf persistente Festplatten mit niedriger Latenz kopiert werden, damit Trainingsprogramme direkt auf sie zugreifen können.

Die Art und Weise, wie wir Daten nutzen, ändert sich mit der Zeit und je nach Anwendungsfall. Dies bietet die Möglichkeit, unsere Speicherangebote anzupassen, um die Kosten niedrig zu halten und gleichzeitig die Art der Datennutzung zu optimieren. Dies gilt für einen Zeitreihendaten genauso wie für andere Geschäftsdaten.

Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.

Fortsetzung des Inhalts unten

Erfahren Sie mehr über Storage Performance

ComputerWeekly.de
Close