Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Big Data Bullshit Bingo

2,817 views

Published on

Big Data Vortrag, gehaltem auf dem SEO Stammtisch Ruhrgebiet am 28. April 2015

Published in: Marketing
  • Be the first to comment

Big Data Bullshit Bingo

  1. 1. Big Data – Ein technischer Überblick Copyright ©: 2015 OnPage.org GmbH Twitter: @danny_munich Facebook: https://www.facebook.com/danny.linden2
  2. 2. Aus Gelsenkirchen 2011 nach München 2013 zu OnPage.org Interessen: Webcrawling, Suchmaschinen(weniger SEO), skalierbare Big Data Systeme Über mich Twitter: @danny_munich Facebook: https://www.facebook.com/danny.linden2 E-mail: danny@onpage.org
  3. 3. Was bedeutet Big Data? Wikipedia: „Big Data [...] bezeichnet Datenmengen, die zu groß oder zu komplex sind oder sich zu schnell ändern, um sie mit händischen und klassischen Methoden der Datenverarbeitung auszuwerten. “ - Große Datenmengen speichern/verarbeiten: Terrabyte - Schnelle Antwortzeiten - Flexible Skalierung - Fault tolerance - Vorausplanen der benötigten Ressourcen
  4. 4. Anwendungsgebiete Empfehlungssysteme - Clustering, - Recommandation Analysen/Diagnosen - Analytics - Fraud-Protection Prozessoptimierung - Fertigung - Lagerhaltung Forschung - Klima - Krankheiten
  5. 5. Big Data Frameworks Hadoop – Der VW Golf
  6. 6. Hadoop - 2008 gestartet - Basiert auf dem Map-Reduce Algorithmus von Google - Besteht ursprünglich aus MapReduce und HDFS - Diverse Erweiterungen / Layer oberhalb von Map-Reduce
  7. 7. HDFS - Hadoop Distributed File System - Global verteilbar - Robust auf Java - Ausfallsicher / HA möglich - Skalierbar - Auf low-cost Hardware - High-level APIs (REST)
  8. 8. Map-Reduce - Hadoop Distributed File System 1. Input 2. Map-Phase 3. Shuffle-Phase 4. Reduce Phase 5. Output
  9. 9. Nice Data Format HDFS + Map-Reduce: Datenlokalität statt Netzwerklast
  10. 10. Open-Source Erweiterungen für Hadoop Apache PIG Apache HBase Apache Hive Apache Oozie HUE Apache Sqoop Apache Nutch Apache Solr Apache mahout
  11. 11. Real-Life Use-Cases für Hadoop - Logfile-Analyse - Webcrawling / eigene Suchmaschine (Apache Solr & Apache Nutch) - Analyse großer Historischer Datenmengen (Produktdaten) - Textanalyse (TF-IDF usw...) - Machine-Learning - Recommandation - Clustering - ...
  12. 12. Datenquellen zum spielen: - Wikipedia Dumps: https://dumps.wikimedia.org - Google Ngrams: http://bit.ly/1gfTzNG - Über 1.000 TB gecrawltes Web: http://commoncrawl.org - AWS Public Datasets: http://aws.amazon.com/datasets - 2,9 Mrd Entitäten: http://www.freebase.com - ...
  13. 13. VMware / VirtualBox: - MapR: https://www.mapr.com/products/mapr-sandbox-hadoop - Cloudera: http://www.cloudera.com/content/cloudera/en/downloads/quickstart_vms/cdh-5-4-x.html - Hortonworks: https://hortonworks.com/products/hortonworks-sandbox/ Distributionen zum testen:
  14. 14. Datenbanken: Von SQL zu NoSQL zu NewSQL
  15. 15. Relationale Datenbanken - Wird mittels SQL Abgefragt - ACID - Normalisierung
  16. 16. Nachteile von Relationalen Datenbanken: Maximal 2 von 3 Eigenschaften möglich RDMS nicht zur Skalierung geeignet?
  17. 17. NoSQL Datenbanken - Key-Value - Column-Based - Document - Graph
  18. 18. Key-Value Datenbanken - Einfach Aufgebaut: GET/PUT/DELETE - Verwenden von Zusammengesetzten Keys: - DB-Systeme: Redis, Riak, Cassandra, DynamoDB
  19. 19. Key-Value Datenbanken Beispiel 1: - GET <Eventid> - GET besucher = 100.000 - GET <Eventid><Datum> - GET besucher:28-04-2015 = 1.000 - GET <Eventid><Datum><Stunde> - GET besucher:28-04-2015-18-00 = 50 Beispiel 2: - GET <Person><Datenfeld> - GET P1:Vorname = Max - GET P1:Nachname = Mustermann - GET P1:Tel = [0151-1234567, 0201-987654]
  20. 20. Column-Based Datenbanken 1,Schmidt,Josef,40000;2,Müller,Maria,50000;3,Meier,Julia,44000; Klassisch Zeilenorientierte Speicherung: 1,2,3;Schmidt,Müller,Meier;Josef,Maria,Julia;40000,50000,44000; Spaltenorientierte Speicherung: SELECT * FROM tabelle WHERE Personalnr = 1; SELECT SUM(Gehalt) FROM tabelle;
  21. 21. Column-Based Datenbanken Bekannte Systeme: - Hbase (Basiert auf Google BigTable, u.a bei Facebook) - Cassandra (Ursprünglich Facebook, Digg, Twitter, Reddit) - SimpleDB (Amazon AWS)
  22. 22. Document Datenbanken Beispiel-Dokument, JSON: db.users.find( { status: "A", age: 55 } ) Beispiel-Dokument:
  23. 23. Graph Datenbanken Als Graph abbilden: - Social-Networks - Verlinkungen - uvm ... Typische Abfragen: Person X kennt Person Y über Person Z
  24. 24. - Kombiniert SQL mit NoSQL - ACID trotz Skalierbarkeit NewSQL - Google F1 basierend auf Google Spanner - CockroachDB - https://github.com/cockroachdb/cockroach - Clustrix - VoltDB - MemSQL - Pivotal's SQLFire - SAP HANA - FoundationDB - NuoDB
  25. 25. More NoSQL Stuff - Elasticsearch - Auch als Datenbank nutzbar! - https://crate.io
  26. 26. Die Cloud: Big Data – Jetzt – Sofort - Alles
  27. 27. Cloud Service Provider Die drei großen: - Amazon AWS - Google Cloud - Microsoft Azure Vorteile: - Schnell beliebige Kapazität buchen - Minuten/Stundenbasierte Abrechung - Lineare skalierung - Keine Upfront kosten
  28. 28. Cloud Anbieter
  29. 29. Cloud Anbieter
  30. 30. Amazon AWS Spot-Instances Durch falsche (copy&paste) Konfiguration werden 2.150$ / Monat / Server aus dem Fenster geworfen
  31. 31. Amazon AWS Services
  32. 32. Der versprochene Quick-Win ;)
  33. 33. Prediction.io - Ready 2 use Machine-Learning System - Basiert auf Spark (In-Memory Hadoop) - Im AWS Marketplace verfügbar - https://docs.prediction.io/install/launch-aws/ u.a: - Recommendation - Complementary Purchase - Clustering - Lead Scoring - … Fertige Module ua. für: - Magento - Wordpress - ... uvm auf Github
  34. 34. Prediction.io <?php use predictionioEventClient; $accessKey = 'IiVHNFnyNvWXqMqXxcIbQDqFRz5K0fe9e3QfqjKwvW3O'; $client = new EventClient($accessKey, 'http://localhost:7070'); $response = $client->setUser(5); $response = $client->setItem('bookId1', array('itypes' => 1)); $client->recordUserActionOnItem('view', 5, 'bookId1'); $engineClient = new EngineClient('http://localhost:8000'); $response = $engineClient->sendQuery(array('uid'=>7, 'iids'=>array(1,2,3,4,5))); print_r($rec);
  35. 35. Das wars! Customer: Twitter: @danny_munich Facebook: https://www.facebook.com/danny.linden2 E-mail: danny@onpage.org Achja: Wir suchen gute Entwickler: https://de.onpage.org/about/jobs/

×