Stellen Sie sich vor, Sie lesen Millionen von Datenzeilen aus einer CSV-Datei. Jede Zeile zeigt den Sensornamen, den aktuellen Sensorwert und den Zeitstempel, wenn dieser Wert beobachtet wurde.So speichern Sie Sensordaten in Apache Hadoop HDFS, Hive, HBase oder andere
key, value, timestamp
temp_x, 8°C, 10:52am
temp_x, 25°C, 11:02am
temp_x, 30°C, 11:12am
Dies bezieht dich auf ein Signal wie folgen aus:
So frage ich mich, was ist der beste und effizienteste Weg, dass in Apache Hadoop HDFS zu speichern. Die erste Idee verwendet BigTable aka HBase. Hier ist der Signalname der Zeilenschlüssel, während der Wert eine Spaltengruppe ist, die die Werte im Laufe der Zeit speichert. Man könnte diesem Zeilenschlüssel weitere Spaltengruppen (wie zum Beispiel Statistiken) hinzufügen.
Eine weitere Idee ist unter Verwendung eines tabellarischen (SQL oder dergleichen) Struktur. Aber dann replizieren Sie den Schlüssel in jeder Zeile. Und Sie müssen Statistiken nach Bedarf berechnen und separat speichern (hier in eine zweite Tabelle).
Ich frage mich, ob es eine bessere Idee. Einmal gespeichert, möchte ich diese Daten in Python/PySpark lesen und Datenanalyse und maschinelles Lernen durchführen. Daher sollten die Daten unter Verwendung eines Schemas (Spark RDD) leicht zugänglich sein.
Danke. Das ist unser aktueller Ansatz. – Matthias
Haben Sie versucht, im Avro-Format zu speichern, um den Leistungsunterschied zu sehen? –
Ja, wir haben das in verschiedenen anderen Projekten ausprobiert und fühlen, dass Parquet in Sachen Leistung besser ist. – Matthias