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
© Copyright 2024