Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Big Data in AzureEin Beispiel mit HD Insight
Ralf Stemmer
oWas ist Big Data? Was ist HD Insight?
oWelche Probleme kann man damit lösen?
oDemo
Agenda
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 DataKlassische 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 - AnwendungsbeispieleLuftfahrt• 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
NameNode
DataNode 1
o 1) HDFS – Hadoop Distributed File System
DataNode 2
DataNode …
HD Insight - Datenspeicherung
NameNode
DataNode 1
DataNode 2
DataNode …
Client
File1.txt
HD Insight - Datenspeicherung
NameNode
DataNode 1
DataNode 2
DataNode …
Client
Block 1 Block 2 Block 311
DataNode …Data
Node …
HD Insight - Datenspeicherung
NameNode
DataNode 1
DataNode 2
DataNode 3, 4, 5
Client
Block 1 Block 2 Block 3
22
„Wohin soll Block 1 gespeichert werden ?
11
DataNode …Data
Node …
HD Insight - Datenspeicherung
NameNode
DataNode 1
DataNode 2
DataNode 3, 4, 5
Client
Block 1 Block 2 Block 3
22
Data Node 1, 2 und 4
11 33
DataNode …Data
Node …
HD Insight - Datenspeicherung
NameNode
DataNode 1
DataNode 2
DataNode 3, 4, 5
ClientKopiere Daten in Data Node 1
11
Block 1
44
22
33
DataNode …Data
Node …
HD Insight - Datenspeicherung
NameNode
DataNode 1
DataNode 2
DataNode 3, 4, 5
ClientKopiere Daten in Data Node 2
11
Block 1
44
55
22
33
Block 1
DataNode …Data
Node …
HD Insight - Datenspeicherung
NameNode
DataNode 1
DataNode 2
DataNode 3, 4, 5
ClientKopiere Daten in Data Node 4
11
44
55 66
22
33
Block 1 Block 1
Block 1
DataNode …Data
Node …
HD Insight - Datenspeicherung
NameNode
DataNode 1
DataNode 2
ClientData Node 4: Fertig
11
44
55 66
77
22
33
Block 1 Block 1 Block 1DataNode 3, 4, 5
HD Insight - Datenspeicherung
NameNode
DataNode 1
DataNode 2
ClientData Node 2: Fertig
11
44
55 66
7788
22
33
Block 1 Block 1 DataNode …Data
Node …Block 1Data
Node 3, 4, 5
HD Insight - Datenspeicherung
NameNode
DataNode 1
DataNode 2
ClientData Node 1: Fertig
11
44
55 66
7788
99
22
33
Block 1 Block 1 DataNode …Data
Node …Block 1Data
Node 3, 4, 5
HD Insight - Datenspeicherung
NameNode
DataNode 1
DataNode 2
Client Metadata:Block 1: Node 1, 2, 4Block 2: …11
44
55 66
7788
99
22
33
Block 1 Block 1 DataNode …Data
Node …Block 1Data
Node 3, 4, 5
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 - Datenabfrage2) Abfragesprache: Map Reduce
1) Große Probleme in kleine Probleme aufspalten
2) Die Aufgabe ausführen
3) Ergebnisse kombinieren
Ergebnis
Map
Reduce
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 – Klimaanlageo 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 – KlimaanlageoVorgehen:
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 oErstellen 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://[email protected]/HdiSamples/SensorSampleData/hvac/';
Hive Beispiel – Klimaanlage oErstellen 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://[email protected]/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 oErstellen 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;
RahmenbedingungenDatenschutz – 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öglichkeiteno Archivierung von älteren Daten auf Hadoop
o Erstellung des HD Insight Clusters per Skript1) Automatisches Erstellen des Clusters2) Auswerten der Daten3) Speichern der Ergebnisse, z.B. in anderer Azure Datenbank oder als Datei4) 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
Literatursammlung
Zusätzliche HelferprogrammeAzure 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
VorbereitungDesktop aufräumen
IE Starten
Azure anmelden
Azure Power Shell starten
Favouriten ausblenden
Evtl. Präsiuser anlegen