Komponenten der Vereinheitlichung

Die Bausteine der Datenvereinheitlichung — Formatstandardisierung, Strukturvereinheitlichung, semantische Vereinheitlichung, Normalisierung und die Nutzung vereinheitlichter Daten.

Formatstandardisierung

Alle Daten aus unterschiedlichen Quellen werden in ein einheitliches Format überführt.

Daten von IoT-Geräten treffen beispielsweise im JSON-Format ein:

example.json
{
  "device_id": "sensor-123",
  "temp": 27.3,
  "time": 1739960923
}

Vereinheitlichung der Datenstruktur

Für alle Daten wird unabhängig von ihrer Quelle eine einheitliche Struktur festgelegt.

Alle Daten werden in der Tabelle channel_data gespeichert, die sie mit Geräten, Sitzungen, Kanälen und Maßeinheiten verknüpft:

FeldTypBeschreibung
idbigintEindeutige Datensatzkennung (Primärschlüssel).
equipment_idbigintVerweis auf das Gerät (equipment.id).
seance_idbigintVerweis auf die Sitzung (seances.id).
channel_idbigintVerweis auf den Kanal (channels.id).
unit_idbigintVerweis auf die Maßeinheit (units.id).
archive_type_idintegerVerweis auf den Archivtyp (referenceparameters.id).
event_timeintegerZeitpunkt des Ereignisses (z. B. Zeitstempel).
valuecharacter varying(100)Der vom Kanal empfangene Wert.
created_attimestamp(6) without time zoneZeitpunkt der Erstellung des Eintrags.
updated_attimestamp(6) without time zoneZeitpunkt der letzten Aktualisierung des Eintrags.

Dabei gilt:

  • equipment_id: Eindeutige Gerätekennung.
  • seance_id: Eindeutige Sitzungskennung.
  • channel_id: Eindeutige Kanalkennung.
  • unit_id: Eindeutige Kennung der Maßeinheit.

Wenn Daten verschiedener Geräte in einem zentralen Speicher abgelegt werden:

  • werden die Daten in ein einheitliches Format und eine einheitliche Struktur überführt;
  • werden sie in der Tabelle der vereinheitlichten Daten channel_data gespeichert.

Semantische Vereinheitlichung

Alle Daten haben über sämtliche Systeme hinweg dieselbe Bedeutung und Interpretation.

Zum Beispiel:

  • Alle Zeitstempel liegen im Format UTC vor. Dies wurde in der Entwurfsphase des Systems umgesetzt.
  • Alle Systeme verwenden dieselben Maßeinheiten (z. B. Grad Celsius).

Zur Vereinheitlichung der Maßeinheiten wurde dem System das Modell Units hinzugefügt. Es speichert die für die Kanaldaten verwendeten Maßeinheiten.

FeldTypBeschreibung
idbigintEindeutige Datensatzkennung (Primärschlüssel).
namecharacter varying(30)Bezeichnung der Maßeinheit.
varnamecharacter varying(30)Kurzer Variablenname für die Maßeinheit.
descriptioncharacter varying(100)Beschreibung der Maßeinheit.
conversion_factordouble precisionUmrechnungsfaktor für eine Maßeinheit.
roundingsmallintAnzahl der Nachkommastellen für die Rundung.
synonymscharacter varying[]Array von Synonymen für die Maßeinheit.
created_attimestamp(6) without time zoneZeitpunkt der Erstellung des Eintrags.
updated_attimestamp(6) without time zoneZeitpunkt der letzten Aktualisierung des Eintrags.

Datennormalisierung

Das Datenmodell des Systems ist hinsichtlich atomarer (skalarer) Werte auf die Boyce-Codd-Normalform (dritte Normalform) reduziert. Einige Entitäten des Datenmodells verwenden zusammengesetzte Strukturen, um die Arbeit mit seltenen, nicht standardmäßigen Attributen zu optimieren.

Die Daten werden in logische Tabellen (equipment, channels, units, sessions) aufgeteilt, wodurch Redundanz und Duplikate vermieden werden.

Zum Beispiel:

  • Die Tabelle channel_data verweist über Fremdschlüssel auf die Tabellen equipment, channels, units und sessions.

Nutzung vereinheitlichter Daten

Vereinheitlichte Daten können für Analyse, Visualisierung, maschinelles Lernen und weitere Aufgaben genutzt werden.

Datenanalyse mit SQL

sql
SELECT equipment_id, AVG(value) as avg_value
FROM channel_data
WHERE archive_type_id = 4 AND channel_id = 3
GROUP BY equipment_id
ORDER BY equipment_id

Datenabruf über die REST API

Beispielanfrage:

bash
GET /api/v1/channel_data?equipment_id=1&archive_type=daily&channel_id=3

Beispielantwort:

json
[
  {
    "id": 123,
    "equipment_id": 1,
    "seance_id": 2,
    "channel_id": 3,
    "archive_type_id": 4,
    "value": 42.5,
    "event_time": 1739950861
  }
]

Verwandte Themen

Zuletzt aktualisiert am

War diese Seite hilfreich?