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:
{
"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:
| Feld | Typ | Beschreibung |
|---|---|---|
id | bigint | Eindeutige Datensatzkennung (Primärschlüssel). |
equipment_id | bigint | Verweis auf das Gerät (equipment.id). |
seance_id | bigint | Verweis auf die Sitzung (seances.id). |
channel_id | bigint | Verweis auf den Kanal (channels.id). |
unit_id | bigint | Verweis auf die Maßeinheit (units.id). |
archive_type_id | integer | Verweis auf den Archivtyp (referenceparameters.id). |
event_time | integer | Zeitpunkt des Ereignisses (z. B. Zeitstempel). |
value | character varying(100) | Der vom Kanal empfangene Wert. |
created_at | timestamp(6) without time zone | Zeitpunkt der Erstellung des Eintrags. |
updated_at | timestamp(6) without time zone | Zeitpunkt 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_datagespeichert.
Semantische Vereinheitlichung
Alle Daten haben über sämtliche Systeme hinweg dieselbe Bedeutung und Interpretation.
Zum Beispiel:
- Alle Zeitstempel liegen im Format
UTCvor. 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.
| Feld | Typ | Beschreibung |
|---|---|---|
id | bigint | Eindeutige Datensatzkennung (Primärschlüssel). |
name | character varying(30) | Bezeichnung der Maßeinheit. |
varname | character varying(30) | Kurzer Variablenname für die Maßeinheit. |
description | character varying(100) | Beschreibung der Maßeinheit. |
conversion_factor | double precision | Umrechnungsfaktor für eine Maßeinheit. |
rounding | smallint | Anzahl der Nachkommastellen für die Rundung. |
synonyms | character varying[] | Array von Synonymen für die Maßeinheit. |
created_at | timestamp(6) without time zone | Zeitpunkt der Erstellung des Eintrags. |
updated_at | timestamp(6) without time zone | Zeitpunkt 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_dataverweist über Fremdschlüssel auf die Tabellenequipment,channels,unitsundsessions.
Nutzung vereinheitlichter Daten
Vereinheitlichte Daten können für Analyse, Visualisierung, maschinelles Lernen und weitere Aufgaben genutzt werden.
Datenanalyse mit 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_idDatenabruf über die REST API
Beispielanfrage:
GET /api/v1/channel_data?equipment_id=1&archive_type=daily&channel_id=3Beispielantwort:
[
{
"id": 123,
"equipment_id": 1,
"seance_id": 2,
"channel_id": 3,
"archive_type_id": 4,
"value": 42.5,
"event_time": 1739950861
}
]Verwandte Themen
War diese Seite hilfreich?
Danke für dein Feedback!