
Datenintensive Anwendungen designen
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions


Persons
Content
- Cover
- Titel
- Impressum
- Inhalt
- Einleitung
- Teil I: Grundlagen von Datensystemen
- 1 Zuverlässige, skalierbare und wartbare Anwendungen
- Gedanken zu Datensystemen
- Zuverlässigkeit
- Hardwarefehler
- Softwarefehler
- Menschliche Fehler
- Wie wichtig ist Zuverlässigkeit?
- Skalierbarkeit
- Lasten beschreiben
- Performance beschreiben
- Konzepte zur Bewältigung von Belastungen
- Wartbarkeit
- Betriebsfähigkeit: Den Betrieb erleichtern
- Einfachheit: Komplexität im Griff
- Evolvierbarkeit: Änderungen erleichtern
- Zusammenfassung
- 2 Datenmodelle und Abfragesprachen
- Relationales Modell vs. Dokumentmodell
- Die Geburt von NoSQL
- Die objektrelationale Unverträglichkeit
- n:1- und n:n-Beziehungen
- Wiederholen Dokumentdatenbanken die Geschichte?
- Heutige relationale Datenbanken vs. Dokumentdatenbanken
- Abfragesprachen für Daten
- Deklarative Abfragen im Web
- MapReduce-Abfragen
- Graphen-ähnliche Datenmodelle
- Property-Graphen
- Die Abfragesprache Cypher
- Graph-Abfragen in SQL
- Triple-Stores und SPARQL
- Das Fundament: Datalog
- Zusammenfassung
- 3 Speichern und Abrufen
- Datenstrukturen, auf denen Ihre Datenbank beruht
- Hash-Indizes
- SSTables und LSM-Bäume
- B-Bäume
- B-Bäume und LSM-Bäume im Vergleich
- Andere Indizierungsstrukturen
- Transaktionsverarbeitung oder Datenanalyse?
- Data-Warehousing
- Sterne und Schneeflocken: Schemas für die Analytik
- Spaltenorientierte Speicherung
- Spaltenkomprimierung
- Sortierreihenfolge in spaltenorientierten Datenbanken
- In spaltenorientierte Datenbanken schreiben
- Aggregation: Datenwürfel und materialisierte Sichten
- Zusammenfassung
- 4 Codierung und Evolution
- Formate für das Codieren von Daten
- Sprachspezifische Formate
- JSON, XML und binäre Varianten
- Thrift und Protocol Buffers
- Avro
- Die Vorzüge von Schemas
- Datenflussmodi
- Datenfluss über Datenbanken
- Datenfluss über Dienste: REST und RPC
- Datenfluss beim Nachrichtenaustausch
- Zusammenfassung
- Teil II: Verteilte Daten
- 5 Replikation
- Leader und Follower
- Synchrone und asynchrone Replikation
- Neue Follower einrichten
- Knotenausfälle behandeln
- Implementierung von Replikationsprotokollen
- Probleme mit der Replikationsverzögerung
- Die eigenen Schreiboperationen lesen
- Monotones Lesen
- Präfixkonsistenz
- Lösungen für Replikationsverzögerung
- Multi-Leader-Replikation
- Einsatzfälle für Multi-Leader-Replikation
- Schreibkonflikte behandeln
- Topologien für Multi-Leader-Replikation
- Replikation ohne Leader
- In die Datenbank schreiben, wenn ein Knoten ausgefallen ist
- Grenzen der Quorumkonsistenz
- Sloppy Quoren und Hinted Handoff
- Parallele Schreibvorgänge erkennen
- Zusammenfassung
- 6 Partitionierung
- Partitionierung und Replikation
- Partitionierung von Schlüssel-Wert-Daten
- Partitionierung nach Schlüsselbereich
- Nach dem Hashwert des Schlüssels partitionieren
- Schiefe Arbeitslasten und Entlastung von Hotspots
- Partitionierung und Sekundärindizes
- Sekundärindizes nach Dokument partitionieren
- Sekundärindizes nach Begriff partitionieren
- Rebalancing - Partitionen gleichmäßig belasten
- Strategien für Rebalancing
- Operationen: Automatisches oder manuelles Rebalancing
- Anfragen weiterleiten
- Parallele Abfrageausführung
- Zusammenfassung
- 7 Transaktionen
- Das schwammige Konzept einer Transaktion
- Die Bedeutung von ACID
- Einzelobjekt- und Multiobjektoperationen
- Schwache Isolationsstufen
- Read Committed
- Snapshot-Isolation und Repeatable Read
- Verlorene Updates verhindern
- Schreibversatz und Phantome
- Serialisierbarkeit
- Tatsächliche serielle Ausführung
- Zwei-Phasen-Sperrverfahren (2PL)
- Serialisierbare Snapshot-Isolation (SSI)
- Zusammenfassung
- 8 Die Probleme mit verteilten Systemen
- Fehler und Teilausfälle
- Cloud-Computing und Supercomputing
- Unzuverlässige Netzwerke
- Netzwerkfehler in der Praxis
- Fehler erkennen
- Timeouts und unbeschränkte Verzögerungen
- Synchrone und asynchrone Netzwerke
- Unzuverlässige Uhren
- Monotone Uhren und Echtzeituhren
- Uhrensynchronisierung und Genauigkeit
- Sich auf synchronisierte Uhren verlassen
- Prozesspausen
- Wissen, Wahrheit und Lügen
- Die Wahrheit wird von der Mehrheit definiert
- Byzantinische Fehler
- Systemmodell und Realität
- Zusammenfassung
- 9 Konsistenz und Konsens
- Konsistenzgarantien
- Linearisierbarkeit
- Was macht ein System linearisierbar?
- Auf Linearisierbarkeit setzen
- Linearisierbare Systeme implementieren
- Die Kosten der Linearisierbarkeit
- Ordnungsgarantien
- Ordnung und Kausalität
- Ordnung nach Sequenznummern
- Total geordneter Broadcast
- Verteilte Transaktionen und Konsens
- Atomarer Commit und Zwei-Phasen-Commit (2PC)
- Verteilte Transaktionen in der Praxis
- Fehlertoleranter Konsens
- Mitgliedschafts- und Koordinationsdienste
- Zusammenfassung
- Teil III: Abgeleitete Daten
- 10 Stapelverarbeitung
- Stapelverarbeitung mit Unix-Tools
- Einfache Protokollanalyse
- Die Unix-Philosophie
- MapReduce und verteilte Dateisysteme
- MapReduce-Jobausführung
- Reduce-seitige Verknüpfungen und Gruppierungen
- Map-seitige Verknüpfungen
- Die Ausgabe von Stapel-Workflows
- Hadoop im Vergleich mit verteilten Datenbanken
- Jenseits von MapReduce
- Zwischenzustände materialisieren
- Graphen und iterative Verarbeitung
- Höhere APIs und Sprachen
- Zusammenfassung
- 11 Stream-Verarbeitung
- Ereignisströme übertragen
- Nachrichtensysteme
- Partitionierte Protokolle
- Datenbanken und Streams
- Systeme synchron halten
- Erfassen von Datenänderungen
- Event Sourcing
- Zustand, Streams und Unveränderlichkeit
- Streams verarbeiten
- Anwendungen der Stream-Verarbeitung
- Überlegungen zur Zeit
- Stream-Joins
- Fehlertoleranz
- Zusammenfassung
- 12 Die Zukunft von Datensystemen
- Datenintegration
- Spezialisierte Tools durch Ableiten von Daten kombinieren
- Batch- und Stream-Verarbeitung
- Die Entflechtung von Datenbanken
- Zusammenstellung verschiedener Datenspeichertechniken
- Anwendungen datenflussorientiert entwickeln
- Abgeleitete Zustände beobachten
- Auf der Suche nach Korrektheit
- Das Ende-zu-Ende-Argument für Datenbanken
- Durchsetzung von Einschränkungen
- Zeitnähe und Integrität
- Vertrauen ist gut, Kontrolle ist besser
- Das Richtige tun
- Prädiktive Analytik
- Datenschutz und Nachverfolgung
- Zusammenfassung
- 13 Glossar
- Index
- Fußnoten
- Über den Autor
- Kolophon
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.