Big Data in Azure

Big Data in
Azure
Ein Beispiel mit HD Insight
Ralf Stemmer
Agenda
o Was ist Big Data? Was ist HD Insight?
o Welche Probleme kann man damit lösen?
o Demo
Was ist Big Data? Was ist HD Insight?
Datenexplosion - Rasanter Zuwachs der Datenmenge
• Günstiger Speicher (Hardware & Cloud)
• Günstige Rechenpower
• Soziale Netzwerke (Mehr digitale Kommunikation)
• Device Explosion (Wearables, Smart Phones)
• Internet of Things (Sensoren, Kameras, RFID, Industrie 4.0)
= Big
Data
Big Data
…wird klassifiziert durch folgenden Eigenschaften:
• Volume – Große Datenmengen
• Variety - Strukturierte und unstrukturierte Daten
• Velocity - Konstanter Datenstrom mit großer Bandbreite
• Veracity –Sicherheit, Präzision (z.B. Soziale Medien)
Umgang mit Big Data
Klassische relationale Datenbanken sind nicht für Umgang mit Big Data konzipiert
• Relationale Datenbanken sind konzipiert für die Speicherung von strukturierten Daten
• Parallele Ausführung von Abfragen wird nur begrenzt unterstützt
 Apache Hadoop
= Open Source Framework für die verteilte Verarbeitung von Big Data
HDFS – Verteiltes Dateisystem
Map Reduce - Abfragesprache
 HD Insight
= auf Apache Hadoop basierender Microsoft Cloud Dienst
Hadoop - Anwendungsbeispiele
Luftfahrt
• Sehr viele Sensoren in Flugzeugen
• Boeing 777 erzeugt auf einem Transatlantikflug 30 TB Daten
Soziale Netzwerke
• Twitter Real Time Stimmungsanalyse
UIDAI (Unique Identification Authority of India) Aadhaar-Program
• 1,2 Mrd Einwohner
• Biometrische Merkmale
• Real Time Zugriff (für Erstellung von Bankkonten etc., )
HD Insight - Datenspeicherung
o 1) HDFS – Hadoop Distributed File System
Name
Node
Data
Node 1
Data
Node 2
Data
Node …
HD Insight - Datenspeicherung
Client
File1.txt
Name
Node
Data
Node 1
Data
Node 2
Data
Node …
HD Insight - Datenspeicherung
Client
1
Block 1
Block 2
Block 3
Name
Node
Data
Node 1
Data
Node 2
Data
Node …
HD Insight - Datenspeicherung
Client
1
Block 1
Block 2
„Wohin soll Block 1
gespeichert werden ?
2
Block 3
Name
Node
Data
Node 1
Data
Node 2
Data
Data
Data
Node
Node
Node
3, 4,…5…
HD Insight - Datenspeicherung
Data Node 1, 2 und 4
Client
1
Block 1
Block 2
2
Block 3
3
Name
Node
Data
Node 1
Data
Node 2
Data
Data
Data
Node
Node
Node
3, 4,…5…
HD Insight - Datenspeicherung
Kopiere Daten in Data Node 1
Client
1
2
3
Block 1
Name
Node
4
Data
Node 1
Data
Node 2
Data
Data
Data
Node
Node
Node
3, 4,…5…
HD Insight - Datenspeicherung
Kopiere Daten in Data Node 2
Client
2
1
3
Name
Node
4
Data
Node 1
Data
Node 2
Block 1
5
Block 1
Data
Data
Data
Node
Node
Node
3, 4,…5…
HD Insight - Datenspeicherung
Kopiere Daten in Data Node 4
Client
2
1
3
Name
Node
4
Data
Node 1
Data
Node 2
Block 1
5
Data
Data
Data
Node
Node
Node
3, 4,…5…
Block 1
6
Block 1
HD Insight - Datenspeicherung
Data Node 4: Fertig
Client
2
1
3
Name
Node
4
Data
Node 1
Data
Node 2
Block 1
5
Data
Data
Data Block 1
Node
Node
Node
3, 4,…5…
Block 1
6
7
HD Insight - Datenspeicherung
Data Node 2: Fertig
Client
2
1
3
Name
Node
4
Data
Node 1
Data
Node 2
Block 1
5
8
Data
Data
Data Block 1
Node
Node
Node
3, 4,…5…
Block 1
6
7
HD Insight - Datenspeicherung
Data Node 1: Fertig
Client
2
1
3
Name
Node
9
4
Data
Node 1
Data
Node 2
Block 1
5
8
Data
Data
Data Block 1
Node
Node
Node
3, 4,…5…
Block 1
6
7
HD Insight - Datenspeicherung
Client
Metadata:
Block 1: Node 1, 2, 4
Block 2: …
2
1
3
Name
Node
9
4
Data
Node 1
Data
Node 2
Block 1
5
8
Data
Data
Data Block 1
Node
Node
Node
3, 4,…5…
Block 1
6
7
HD Insight - Datenspeicherung
oRedundante Datenspeicherung
Standardreplikationsfaktor = 3
oData Nodes benutzen Azure Blob Store
-> HD Insight nur benötigt während der Auswertung
-> Daten auch für andere Anwendungen ohne HD Insight zugreifbar
-> Extra Level an Redundanz
HD Insight - Datenabfrage
2) Abfragesprache: Map Reduce
1) Große Probleme in kleine Probleme aufspalten
Map
2) Die Aufgabe ausführen
3) Ergebnisse kombinieren
Reduce
Ergebnis
Abfragen
oMap Reduce (Java, .Net, C#)
+ Strukturierte und unstrukturierte Daten
+ Sehr mächtig (z.B. im Umgang mit Hierarchien)
+ Gute Performance
- Aufwendig zu entwickeln
oHive (HiveQL)
+ Schnell zu entwickeln - SQL sehr ähnlich
+ Gut für adhoc Analyse
- Nur für strukturierte Daten geeignet
- Schlechtere Performance
- Weniger mächtig
Demo
Einrichten eines HD Insight Clusters in Azure
Hive Beispiel – Klimaanlage
o Einfaches Beispiel mit kleiner Datenmenge zur Verdeutlichung der Funktionsweise
o Sensordaten von Heizung, Klimaanlage
o 20 große Gebäude
o Strukturierte Quelldaten:
Hive Beispiel – Klimaanlage
o Vorgehen :
1) Erstellen einer externen (logischen) Rohdatentabelle mit den Sensortransaktionsdaten
2) Erstellen einer externen (logischen) Rohdatentabelle mit den Gebäudestammdaten
3) Erstellen einer (physischen) Tabelle mit eigenen berechneten Feldern
4) Erstellen einer (physischen) Tabelle , die die Sensordaten mit Gebäudedaten anreichert
Hive Beispiel – Klimaanlage
o Erstellen einer Sensordatentabelle
--create the hvac table on comma-separated sensor data
CREATE EXTERNAL TABLE hvac(date STRING, time STRING, targettemp BIGINT,
actualtemp BIGINT,
system BIGINT,
systemage BIGINT,
buildingid BIGINT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE LOCATION
'wasb://techcamphdinsight@azuretechcamp3.blob.core.windows.net/HdiSamples/SensorSampleData/hvac/';
Hive Beispiel – Klimaanlage
o Erstellen einer Gebäudetabelle
--create the building table on comma-separated building data
CREATE EXTERNAL TABLE building(buildingid BIGINT, buildingmgr STRING,
buildingage BIGINT,
hvacproduct STRING,
country STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE LOCATION
'wasb://techcamphdinsight@azuretechcamp3.blob.core.windows.net/HdiSamples/SensorSampleData/building/';
Hive Beispiel – Klimaanlage
o Interpretieren der Sensordaten
--create the hvac_temperatures table by selecting from the hvac table
CREATE TABLE hvac_temperatures AS
SELECT *, targettemp - actualtemp AS temp_diff,
IF((targettemp - actualtemp) > 5, 'COLD',
IF((targettemp - actualtemp) < -5, 'HOT', 'NORMAL')) AS temprange,
IF((targettemp - actualtemp) > 5, '1', IF((targettemp - actualtemp) < -5, '1', 0)) AS extremetemp
FROM hvac;
Hive Beispiel – Klimaanlage
o Erstellen einer Gebäudetabelle
--create the hvac_building table by joining the building table and the hvac_temperatures table
CREATE TABLE hvac_building AS
SELECT h.*, b.country, b.hvacproduct, b.buildingage, b.buildingmgr
FROM building b JOIN hvac_temperatures h ON b.buildingid = h.buildingid;
Rahmenbedingungen
Datenschutz – Sind meine Daten vor dem Zugriff anderer geschützt?
• Zugriffsmöglichkeit durch US Regierung bzw. Justiz unklar
-> Speicherung von streng vertraulichen Daten in der Cloud überprüfen
Alternative Möglichkeiten
-> Vorerst Entwicklungs- oder Testumgebungen in Cloud nutzen
-> Daten anonymisiert speichern und die Schlüssel lokal belassen
-> Anwendungen mit weniger sensiblen Daten in der Cloud hosten
Ausblick - Weitere Nutzungsmöglichkeiten
o Archivierung von älteren Daten auf Hadoop
o Erstellung des HD Insight Clusters per Skript
1) Automatisches Erstellen des Clusters
2) Auswerten der Daten
3) Speichern der Ergebnisse, z.B. in anderer Azure Datenbank oder als Datei
4) Löschen des Clusters
-> Daten sind noch vorhanden
-> Kein Vorhalten von Hadoop notwendig
-> Geringere Kosten wegen nur kurzer Bereitstellung/Nutzung des Clusters
o HD Insight als Verdichtungsstufe vor dem Data Warehouse
Quellen
ETL mit
HD Insight
DWH
BI Reporting
Vielen Dank
stemmer@ergonweb.de
Literatursammlung
Zusätzliche Helferprogramme
Azure Power Shell
o Kommandozeilentool um Azure Dienste zu Erstellen, Steuern und zu Managen
o Anmelden am persönlichen Azure Account:
Add-AzureAccount
AzCopy
o Kommandozeilen Kopierprogramm Lokal -> Azure Blob Storage
o http://aka.ms/downloadazcopy
o Liegt in %ProgramFiles(x86)%\Microsoft SDKs\Azure\AzCopy
o Doku: http://azure.microsoft.com/en-us/documentation/articles/storage-use-azcopy/
Literatursammlung
• Hive - SQL Ähnliche Höhere Programmiersprachen, die von MapReduce abstrahieren
• Pig - Scriptsprache für Datentransformationen
• Storm - Stream Analytics
• Hbase - Apache HBase ist eine nichtrelationale Datenbank basierend auf Hadoop und eignet sich speziell
für große Mengen unstrukturierter und teilstrukturierter Daten - bis zu Milliarden von Zeilen mal Millionen
von Spalten.
• Mahaud - Machine Learning
• Sqoop - Import & Export von Daten
Vorbereitung
Desktop aufräumen
IE Starten
Azure anmelden
Azure Power Shell starten
Favouriten ausblenden
Evtl. Präsiuser anlegen