Big in Azure Ein Beispiel mit HD Insight Ralf Stemmer
Agenda owas ist Big? Was ist HD Insight? owelche Probleme kann man damit lösen? odemo
Was ist Big? 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
Big 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 Klassische relationale Datenbanken sind nicht für Umgang mit Big 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 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 Node 1 Node 2 Node
HD Insight - Datenspeicherung Client File1.txt Name Node Node 1 Node 2 Node
HD Insight - Datenspeicherung Client 1 Block 1 Block 2 Block 3 Name Node Node 1 Node 2 Node
HD Insight - Datenspeicherung Client 2 Wohin soll Block 1 gespeichert werden? 1 Block 1 Block 2 Block 3 Name Node Node 1 Node 2 Node Node 3, 4, 5
HD Insight - Datenspeicherung Client 2 Node 1, 2 und 4 1 Block 1 Block 2 Block 3 3 Name Node Node 1 Node 2 Node Node 3, 4, 5
HD Insight - Datenspeicherung Client 2 Kopiere Daten in Node 1 1 Block 1 4 3 Name Node Node 1 Node 2 Node Node 3, 4, 5
HD Insight - Datenspeicherung Client 2 Kopiere Daten in Node 2 1 3 4 Name Node Node 1 Block 1 Node 2 Node Node 3, 4, 5 5 Block 1
HD Insight - Datenspeicherung Client 2 Kopiere Daten in Node 4 1 4 3 Name Node Node 1 Node 2 Block 1 Block 1 Node Node 3, 4, 5 5 6 Block 1
HD Insight - Datenspeicherung Client 2 Node 4: Fertig 1 4 3 Name Node Node 1 Node 2 Node Node 3, 4, 5 Block 1 Block 1 Block 1 5 6 7
HD Insight - Datenspeicherung Client 2 Node 2: Fertig 1 4 3 Name Node Node 1 Block 1 Block 1 Node 2 Node Node 3, 4, 5 Block 1 5 6 8 7
HD Insight - Datenspeicherung Client 2 Node 1: Fertig 1 9 4 3 Name Node Node 1 Block 1 Block 1 Node 2 Node Node 3, 4, 5 Block 1 5 6 8 7
HD Insight - Datenspeicherung 1 Client 3 2 Metadata: Block 1: Node 1, 2, 4 Block 2: 9 4 Name Node Node 1 Block 1 Block 1 Node 2 Node Node 3, 4, 5 Block 1 5 6 8 7
HD Insight - Datenspeicherung oredundante Datenspeicherung Standardreplikationsfaktor = 3 o 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 2) Die Aufgabe ausführen Map 3) Ergebnisse kombinieren Ergebnis 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 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/sensorsample/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/sensorsample/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 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