it-swarm.com.de

Grundlegendes zur Auswahl zwischen Feldern und Tags in InfluxDB

Was sind einige gute Regeln und Beispiele für die Auswahl zwischen dem Speichern von Daten in Feldern und Tags beim Entwerfen von InfluxDB-Schemas ?

Was ich bisher gefunden habe ist:

eine Messung, die sich im Laufe der Zeit ändert, sollte ein Feld sein, und Metadaten zur Messung sollten in Tags angegeben werden

tags und Felder sind effektiv Spalten in der Tabelle. Tags werden indiziert, Felder nicht

die Werte, die sehr unterschiedlich sind und normalerweise nicht Teil einer WHERE-Klausel sind, werden in Felder eingefügt

Speichern Sie Daten in Feldern, wenn Sie sie mit einer InfluxQL-Funktion verwenden möchten

Tags, die sehr variable Informationen wie UUIDs, Hashes und zufällige Zeichenfolgen enthalten, führen zu einer großen Anzahl von Serien in der Datenbank, die umgangssprachlich als Kardinalität hoher Serien bezeichnet werden. Eine hohe Serienkardinalität ist ein Hauptgrund für eine hohe Speichernutzung für viele Datenbank-Workloads.

Angenommen, Sie speichern ausgefüllte Bestellungen in einer E-Commerce-Anwendung: Bestellnummer, Verkaufspreis, Währung.

  • Sollte die Bestellnummer ein Tag oder ein Feld sein?
  • Sollte die Währung ein Tag oder ein Feld sein?
5
Dan Dascalescu

Ich würde vorschlagen, dass sowohl Bestellung als auch Währung die Tags sind. Weil Sie wahrscheinlich Abfragen wie WHERE order = orderid oder WHERE Currency = Currencyid stellen müssen. Das Festlegen von Reihenfolge und Währung als Tags hat in diesem Fall Vorteile, da sie implizit indiziert werden.

Schreiben Sie im Allgemeinen zuerst alle Abfragen auf, die Ihre Anwendung in der Datenbank ausführt, und sehen Sie dann, welche Tags vorhanden sein sollten

2
0x2207

Ich habe gerade ein Tutorial gelesen, das besagt, dass Felder Daten und Tags Metadaten sind. Das ist eine sehr intuitive Definition.

Das Beispiel hatte Druck und Temperatur Felder und ein Wetterstation Tag. Auch hier kristallklar und passt perfekt zur Beschreibung.

Leider sagten sie dann, wenn Sie nach Druck oder Temperatur und nicht Wetterstation fragen, sollten Sie die umdrehen Feld und Tag Bezeichnungen herum. Mit anderen Worten, die Definitionen für Feld und Tag sind bedeutungslos.

Die einfache Lösung besteht darin, festzulegen, dass Felder entweder indiziert oder nicht indiziert werden können. Indizierte Felder heißen Tags. Verwenden Sie tag, wenn Sie ein Feld indizieren müssen (um beispielsweise die Abfragegeschwindigkeit erheblich zu verbessern).

1
Rick O'Shea