Daten und Informationen
Mittlerweile produziert jeder Mensch und jedes Device rund um die Uhr eine Unzahl an Daten. Die Speicherung der Daten ist kostengünstig, allerdings ist die Auswertung der Daten oftmals schwer und die Interpretationen oftmals fragwürdig. Trotzdem bieten Daten eine Fülle von nützlicher Informationen und können zu wichtigen Geschäftsentscheidungen beitragen. Wichtig ist hierbei, dass die richtigen Informationen aus den Daten extrahiert werden.
Klassifizierung und Einteilung von Daten
Im nachfolgenden werden die Möglichen Einteilungen von Daten näher erläutert, wobei diese Liste nicht abschließend ist, sondern dir lediglich einen Überblick in die Möglichkeiten geben soll.
Strukturierung von Daten
Daten können auf drei Arten klassifiziert werden:
- Strukturiert: Tabellendaten in Zeilen und Spalten organsiert (relationale Datenbanken) => Azure SQL Database, SQL Server
- Halb strukturiert: Daten mit gewisser Struktur, etwa JSON, XML, Key-Value Pairs, Graphen Datenbanken (komplexe Verbindungen mit Nodes und Edges) => Azure Cosmos DB
- Unstrukturiert: andere Daten wie Video, Audio, binäre Daten, Fotos => Azure Blob Storage
Zugriff auf Daten
- Lesen (Read only): Daten können gelesen aber nicht geändert werden, keine neuen Daten können generiert werden
- Lesen und Schreiben (Read Write): Daten können gelesen und verändert werden, neue Daten können erstellt werden
- Besitzer (Owner): Vollzugang zu den Daten, managen von Sicherheit (neue User hinzufügen oder Berechtigung entfernen)
Datenverarbeitung
Datenverarbeitung kann in zwei Kategorien eingeteilt werden:
- Transaktionssystem: Zeichnet Transaktionen auf (z.B. finanzielle Bewegung von Geldern, Finanztransaktion), hohes Volumen, schneller Zugriff, oftmals unterteilt in kleine Arbeitsschritte, normalisierter Tabellen => OLTP (Online Transaction Processing),
- Analytische Systeme: Benutzer sollen unterstützt werden Daten abzufragen und einen Überblick über die gespeicherten Informationen zu verschaffen, Rohdaten werden zu Informationen (etwa Trendanalyse)
Stream or Batch
Wird jedes Element beim Eintreffen verarbeitet wird vom streamen (real-time / Echtzeit) gesprochen. Werden hingegen Rohdaten in Gruppen gepuffert und erst in Gruppen verarbeitet nennt man dies Stapelverarbeitung (Batch). Das Zusammenwarten macht bei einer großen Datenmenge Sinn, welche zu einer bestimmten Zeit oder über Nacht verarbeitet werden kann.
Weitere Einteilungen
- Datenumfang: Stapelverarbeitung kann alle Daten im Datensatz verarbeiten, in real-time nur jene, welche zur Verfügung stehen
- Datengröße: Stapelverarbeitung eignet sich für große Datenmenge, Stream Verarbeitung für kleine Mengen
- Leistung: Latenz bei den Stapelverarbeitungen kann einige Stunden betragen, in real-time lediglich Millisekunden
- Analyse: Komplexe Analysen werden mit der Stapelverarbeitung durchgeführt, für schnelle Berechnungen kann real-time verwendet werden
Transaktionssystem und Workloads transaktionaler Systeme
Bei den Transaktionen gibt es einen Startpunkt und anschließend eine bis mehrere Datenänderungen, alle Transaktionen müssen mit einem Commit bestätigt werden sofern erfolgreich oder es erfolgt ein Rollback (Zurücksetzten) zum Startpunkt.
ACID (Atomicity, Consistency, Isolation, Durability)
- Atomizität: Jede Transaktion wird als Einheit behandelt die entweder vollständig erfolgreich ist (Commit) oder vollständig zurückgesetzt wird (Rollback). Garantiert muss dies auch bei Stromausfällen und Abstürzen werden.
- Konsistenz: Gültigkeit von einem Status in einem andern übertragen kann. Daten sollten niemals verloren gehen.
- Isolierung: Die gleichzeitige Ausführung wird zu einer sequentiellen Ausführung, oftmals mit Locks den Lese und Schreibzugriff verhindert
- Haltbarkeit: festgeschrieben Transaktionen
Eventuelle Konsistenz
Bei einem Datencenter wird die Transaktion auf einem Server festgeschrieben und asynchron zu anderen übertragen. Dies verkürzt und minimiert die Latenz, kann aber zu vorübergehenden Inkonsistenzen führen. Nicht angewendet sollte dies bei kritischen Systemen – etwa Bestellsystemen.
Analytische System
Meist nur Lese Arbeitsschritte für Analysen und Entscheidungsfindung. Geeignet sind auch Snapshots (Daten zu einem gewissen Zeitpunkt).
Schritte von analytischen Systemen
- Datenaufnahme: Rohdaten speichern, eventuell von einem OLTP, Datenbank, FileServer, Dokumentendatenbank
- Transformation: Anomalien filtern, Standardformate sicherstellen, Bereinigung, invalide Daten herausfiltern, Aggregationen durchführen (KPIs)
- Abfrage: Generierung von Abfragen und Reports
- Visualisierung: Nützlich um Daten besser darzustellen, etwa in Charts (Linien, Spalten), Karten, Tortendiagramme => Power BI
Jobs in der Datenwelt
- Datenbankadministratoren: Verwalten Datenbanken und weisen Berechtigungen zu, machen Sicherungskopien und sorgen sich um die Wiederherstellung (Design, Implementation, Wartungs- und Betriebsaspekte)
- Dateningenieure: Arbeiten mit Daten, Datenbereinigungsroutinen, Geschäftsregeln und die Extraktion von wichtigen Informationen (Datenpipelies, Transformationen, Datenspeicher für relationale und nicht relationale Daten, Datenschutz)
- Datenanalysten: Erstellung von Visualisierungen und Diagramm, Entscheidungshilfen (Maximierung der Informationsgewinnung aus den Daten, Modelle)
Relationale Daten (Datenbanken)
Eine Sammlung von Entitäten (etwas, was Informationen beinhaltet, z.B. ein Produkt, ein Kunde) aus der Praxis in Tabellen gespeichert. Jede Zeile ist dabei eine einzelne Instanz einer Identität. Die Spalten sind die zu speichernden Informationen (Eigenschaften) der Entitäten.
Der Entwurf einer relationalen Datenbank (die Zeichnung der Entitäten mit Beziehungen) nennt man Datenmodell. Jede Tabelle sollte dabei einen Primärschlüssel (PK, primary key) zur eindeutigen Identifizierung besitzen. Die Beziehungen werden als Linien zwischen den Tabellen dargestellt. Fremdschlüssel (FK, foreign key) verweisen auf den Primärschlüssel einer anderen Tabelle und sorgen damit für die Verknüpfung (Beziehung).
Merkmale relationaler Daten
- Daten sind tabellarisch, jede Instanz wird in einer Zeile dargestellt, jede Eigenschaft als Spalte
- Alle Zeilen in der Tabelle verfügen über die gleichen Spalten
- Die Anzahl der Zeilen ist beliebig hoch
- Primärschlüssel dienen zur eindeutigen Identifikation, zwei Zeilen können nicht denselben Schlüssel haben
- Fremdschlüssel verweisen auf Zeilen (PK) in einer verknüpften Tabelle
Index und Views (Sichten)
Der Index ermöglich eine schnelle Suche in der Datenbank. Notwendig dabei ist die Angabe der Spalte, für welche der Index gelten soll. Der Index enthält eine Kopie der Werte in sortierter Reihenfolge und Zeigern (Pointer) auf die Zeilen der Tabelle. Ein Index kostet Speicherplatz und muss bei jeder Datenänderung aktualisiert werden (verlangsamt das System). Es gibt auch die Möglichkeit des gruppierten Index, wobei jede Tabelle über nur einen verfügen kann. Dabei ist diese Spalte dann geordnet.
Eine View ist eine virtuelle Tabelle, welche auf der eigentlichen Tabelle beruht. Eine Sicht wird oftmals dafür verwendet, Tabellen zu verknüpfen und nur gewisse Informationen anzuzeigen.
Nicht Relationale Daten
Daten in nicht relationalen Systemen speichern die Daten auf eine sehr flexible Weise ohne ein Schema. Es geht hierbei um die Daten und nicht mehr um die Struktur. Abfragen nach Hauptmerkmale wie ID sind meist recht schnell, allerdings jedes Unterfeld einer Entität zu durchlaufen (etwa bei Telefon für Handy, Festnetz, Geschäftlich) benötigt viel Zeit. Es gibt dafür allerdings die Möglichkeit einer Indizierung.
Verwendung von nicht relationalen Daten
- IoT: Große Menge an verschiedenen Daten
- Marketing: Kataloge
- Gaming: Game Statistiken
- Webanwendungen: Modellierung sozialer Ereignisse und Interaktionen
Teilweise strukturierte Daten
Daten beinhalten in teilweise strukturierten Daten Felder, wobei diese nicht gleich sein müssen. Die Daten sind dadurch zumindest so formiert, dass sie von Anwendungen analysiert und verarbeitet werden können – etwa mit einem JSON Format. Ein JSON Dokument besteht auch geschweiften Klammern {} sowie aus Namen (Bezeichnung), einem Doppelpunkt sowie den Wert des Feldes. Sollten Felder mehrere Werte erhalten, werden jene in Arrays mit rechteckigen Klammern gespeichert. Dabei gibt es wieder einen Namen, die Array Klammern und anschließend pro Datensatz ein neues JSON Objekt mit geschwungenen Klammern.
{
"ID":"1",
"Name":"Max Mustermann",
"Phone":[{"Home":"+43 123 456789"},{"Business":"+43 012 3456"}]
}
Andere Formate sind Avro (zeilenbasiertes Format von Apache mit Speicherung von binären Daten, gut geeignet zum Minimieren und Komprimieren), ORC Format (Daten sind in Spalten organisiert, Stripes sind Bereichsstreifen, welche mehrere Spalten enthalten) oder Parquet (Spaltenorientiert).
Unstrukturierte Daten
Daten welche keine Felder enthalten – etwa Audio, Video, Fotos – gehören zu den unstrukturierten Daten. Es ist nicht möglich, nach Elementen in diesen Daten zu suchen. Die Daten sind dabei in BLOBs gespeichert, wobei Blocklobs nur einfache Lese- und Schreibvorgänge unterstützen. Neben dem unstrukturierten Hauptinhalten der Daten ist es möglich strukturierte Metadaten zu speichern (etwa den Dateityp).
NoSQL Daten
NoSQL Datenbanken können in vier Kategorien unterteilt werden:
- Schlüssel-Wert Speicher: einfach und schneller Typ, beinhaltet einen Schlüssel (Identifizierung) und einen Wert (Daten des Elements, unstrukturiert bzw. nicht transparent), es ist nicht möglich nach Werten zu suchen, Azure Table Storage oder Azure Cosmos DB, der Schwerpunkt liegt auf der Schreibfunktion.
- Dokumentdatenbank: Jedes Element hat eine eindeutige ID und die Felder sind transparent. Dabei handelt es sich meist um XML oder JSON Formate oder reinen Text. Dadurch besteht die Dokumentdatenbank aus einem Schlüssel und dem Dokument. Der Schwerpunkt liegt hier auf der Abfragefunktion.
- Spaltenfamilien Datenbank: ORC oder Parquet Dateien, Daten sind in Spalten und Zeilen organisiert. Die Spalten können dabei in Gruppen unterteilt werden, welche als Spaltenfamilie bezeichnet werden, die Datenbank entspricht ungefährt einer relationaler nicht normalisierten strukturierten Datenbank, welche allerdings mehr Werte pro Spalte (etwa die gesamte Adresse) zulässt. Beispiele: Azure Cosmos DB und Apache Cassandra
- Graphdatenbank: Schwerpunkt sind die Beziehungen der Entitäten, bestehend aus Knoten (Instanzen von Entitäten) und Kanten (Beziehungen). Kanten können Informationen sowie Richtungen aufweisen. Beispiele: Azure Cosmos DB und Gremlin
Datenanalyse
Aus den Daten sollen Informationen gewonnen werden. Unter Wranglich kann aus Rohdaten ein nützlicheres Format erstellt werden, wobei Code zum erfassen, filtere, bereinigen, kombinieren und aggregieren von Daten geschrieben wird.
Phasen der Datenanalyse
- Datenaufnahme: Daten sollen erfasst und gespeichert werden, Filterung auf verdächtige (unbekannte Quellen), beschädigte oder doppelte Daten (Gerätefehler, Manipulation, Übertragungsfehler), Transformation zu einem Standardformat (Datum, Zeit)
- Datenverarbeitung: Bereinigung und Konvertierung in ein Format, Ergebnis ist eine Datenbank mit Daten, Entfernung von Anomalien, Filtern, Transformierung, Elemente und Informationen können zusammengefasst werden, Vorhersagemodelle können erzeugt werden, ELT (Extract, Load, Transform => Daten werden vor dem Transformieren gespeichert, komplexe Modelle, skalierbar, Batch) und ETL (Extract, Transform, Load => für simple Modelle mit wenig Abhängigkeit, Durchsatz, Stream)
- Datenexploration: Reporting (Daten als zusammengefasste Informationen für die Überwachung), Business Intelligence (Verfahren zum Sammeln, Integrieren, Analysieren und Präsentieren von Geschäftsinformationen), Benchmarking (Vergleichsprozess mit Unternehmen in derselben Branche), Data Visualisierung (grafische Darstellung von Daten durch Diagramme, Karten, Grafiken, etc. etwa mit Power BI).
Visualisierung der Daten
- Balken- und Säulendiagramme: Reihe von Variablen in verschiedenen Kategorien
- Liniendiagramme: Gesamtform über die Dauer der Zeit
- Matrix: tabellarische Struktur für Berichte oder Dashboard
- Key Influencer: wichtigsten Beiträge zu einem Wert oder Ergebnis
- Treemap: farbigen Rechtecken, Größe gibt relativen Wert wieder
- Scatter: Streudiagramm zeigt die Beziehung zwischen Werten als Blasendiagramm
- Punktdiagramm: Ähnlich einem Blasendiagramm jedoch mit Kategorien an der X-Achse
- Gefüllte Karte: Geografische Daten durch Schattierungen darstellen
Aktivitäten der Datenanaylse
- Deskriptive Analyse: Was ist passiert, basierend auf historischen Daten, KPIs, Metriken, Generieren von Berichten
- Diagnostische Analyse: Warum ist etwas passiert, Ursache des Problems, Untersuchung der Leistungsindikatoren, identifizieren von Anomalien
- Prädiktive Analyse: Was wird in der Zukunft passieren, Trends zu identifizieren, statistische und maschinelle Lerntechniken, Regression, Entscheidungsbäume
- Präskriptive Analyse: Welche Aktionen sollten gesetzt werden, um das Ziel zu erreichen, datengesteuerte Entscheidungen, Wahrscheinlichkeit der Ergebnisse kann geschätzt werden
- Kognitive Analyse: Schlüsse ziehen aus Daten oder Mustern, Schlussfolgerungen für Wissensdatenbanken
Azure Data Service
Azure Data Services (PaaS) sind zu 99,99% verfügbar.
- Mit SQL Server auf Azure Virtual Machines: IaaS, erneutes Hosting von Apps, Zugriff und Kontrolle aufs Betriebssystem, Vervollständigen der SQL Server Funktionalität
- Verwaltete Azure Instanz: PaaS, Modernisierung von vorhandenen Apps, Verwaltungsaufwand entfernen, Universell oder Unternehmenskritisch (hohe Performance, geringe Wartezeiten), Modell des virtuellen Kerns (mittels remote oder lokalen Speicher), einzelne Instanz, Instanzpool
- Azure SQL Datenbank: PaaS, für neue Apps, Pools von Datenbanken, serverloses Computing (automatische Skalierung), höchste Verfügbarkeit, Universell (remote Speicher) oder Unternehmenskritisch (sekundäres Replikat, lokale Speicher) oder Hyperscale (Lokaler und remote Speicher, unbegrenzter Speicherplatz), Einzeldatenbank, Pool für elastische Datenbanken (Ressourcen freigeben zwischen Datenbanken)
- PostgreSQL: moderne Apps
- MariaDB: Community entwickelt
- MySQL: LAMP Stapel (relationale Open Source Datenbank), php
Bereitstellung & Anwendungen relationaler Datenbankangebote
- Grundlegenden Einstellungen festlegen (Region, Kennwort, Anmeldung, Abonnement, Ressourcengruppen)
- Netzwerkkonnektivität (öffentlich, privat, Firewall, Verbindungstyp)
- Weitere Einstellungen (Datenquellen, Sortierung, Zeitzone, Security)
- Tags
Abfragetools
- Azure Portal
- SQL Management Studio
- SQL Server Data Tools
- Azure Data Studio: Daten analysieren und Inhalte anschauen
- SqlCMD: Kommandozeilen Tool
- Azure CLI / Cloud Shell: Kommandozeilen Tool
Azure Cosmos DB
- Web und Einzelhandel
- Gaming
- IoT Szenarien
Bereitstellung und Einsatz nicht relationaler Datendienste
- ETL (Extract, Transform, Load): Transformation passiert im Zieldatenspeicher (leistungsfähig um Daten schnell zu transformieren), meistens parallel
- Cognitive: Transkription von Audio Files
- Diagnostic: Was ist passiert?
- Descriptive: Warum ist es passiert?
- Predictive: Was wird passieren?
- Prescriptive: Welche Aktionen sollen gesetzt werden?
- Root Objekt
- Verschachteltes Objekt
- Verschachteltes Array
Data Warehouse
Moderne Konzepte basieren auf relationalen und nicht relationalen Daten. Daten werden in einer Azure Data Factory (Cloudbasierender Datenintegrationsdienst (orchestrieren und automatisieren von Datenverschiebungen und Datentransformationen)) bearbeitet und anschließend in einen Azure Daten Lake Storage (Repository mit Daten, organsiert Daten in Verzeichnissen) geschrieben. Die Daten können anschließend in ein relationales Format gebracht werden oder durch Azure Databricks (Datenaufbereitung, Datenvorbereitung) bearbeitet werden (z.B. Anomalien erkennen, Vorbereitung für Analytics). Durch Analyse Systeme (etwa Azure Synapse Analytics) können Verbindungen und Erkenntnisse erlangt werden. Anschließend können die Daten mittels Tools visualisiert oder bereitgestellt werden (etwa Power BI).
- Erfassen und Vorberieten: Azure Data Factory, Azure Databricks
- Modellieren und Darstellen: Azure Synapse Analytics (Data Warehouse) => bestehend aus Synapse Link, Synapse Pipelines, Synapse SQL, Synapse Spark, Synapse Studio
- Visualisierungen: Power BI
- Speichern: Azure Data Lake Storage (unterstützt POSIX und RBAC Berechtigungen und ist kompatibel mit Hadoop Distributed File System)
Azure HDInsight
Datenerfassung
- Azure Data Factory: Heterogen, kann mit verknüpften Dienste arbeiten (z.B. Data Lake Store oder Azure Databricks), Aktivitäten (Abrufen, Transformieren) zusammengefasst in einer Pipeline (Trigger zum starten kann verwendet werden) zu einem DataSet, Parameter, Controll Flow und Integration Runtimes können verwendet werden
- PolyBase: Dateibasiert
- Secret Server Integration Service: Heterogen
Datenverarbeitung
- Azure Synapse Analysen
- Azure Databricks
- Azure HDInsights
- Azure Data Factory
- Data Lake Store