Vorteile und Nachteile von Embedding
Pro:
Kleine Daten
Gut wenn selten Updates
Eventuell consistency ist akzeptabel
Fast read
Gut bei OLAP
Con:
Verschachtelung
Unnesten von zb. Arrays
Update Annomalien
Schlecht bei OLTP
Redundanz
Vorteile und Nachteile Referencing
Gut bei OLTP
Flüchtige Daten (Keine Update Annomalien)
Strong Consistency (ist nötig!)
Muss nicht immer ganzes Dokument fetchen (kein JOIN = weniger Daten)
Fast Writes
JOINs teuer
Langsam bei OLAP (JOIN)
Scale Up vs. Scale Out
Up:
Vertical
Transparent
Limitiert
Out:
Horizontal
High scalability
Benötigt Load balancing
Vor- und Nachteile Row Store
Insert/Update einfach
Evtl unnötige Daten lesen
Schlechter zu komprimieren (ca. 1:3)
Vor- und Nachteile Column Store
Komprimierung (1:10 bis 1:30)
Nur relevante Daten lesen
Gut für OLAP
Insert/Update braucht multi-access
Read teurer bei ganzen records
Was ist Impedance Mismatch?
Unterschied zwischen einem Software model (OOP) und dem DB model
Unterschied object to tabel
Welches Storage Layout kann für Indexe von Key-Value DBs verwendet werden?
Hash-Maps
B-Trees
Erkläre Column Family DB
Nested Maps
Columns Families müssen vordefiniert sein
Column kann any sein
Mehrere Versionen pro Zelle durch Timestamp möglich
Storage Layout für Graph DBs
Bastandteile im Graph
Adjecency List
Bestandteile:
Vertex (V): Nodes (Entities)
Edge (E): Relationships (Kante)
Properties: Attributes and Meta Data: (key, value) pairs
Was macht ein Object-NoSQL Mapper
Übersetzt von Application über SQL zu spezifischer DB
Standartsierung
Single vs Multi Data Store Mapper?
Besonderheiten durch Multi?
Single kann 1 DB gleichzeitig
Multi kann mehrere gleichzeitig
=> Komplexität steigt, Konsistent muss sichergestellt werden
Welche Ansätze gibt es für den Query Language Support von Object-NoSQL Mappern? Kombinationen?
Offer only particular subset of features für ALLE Stores (intersection)
Particular subset of features für particular Store
Missing features selbst implementieren in Mapper => Performance leidet
2 und 3 können kombiniert werden
Funktion MapReduce? Einsatzgebiet?
Map
(Shuffel)
Reduce
Einsatz: zB: ETL Prozess
Was ist Pig?
platform for analyzing large data sets
PigLatin: A Data Processing Language
Pig Infrastructure: An Evaluator for PigLatin programs
Pig compiles Pig Latin into physical plans
=> Ausführung über Hadoop
Arten von SQL on Hadoop
Hive
Pure Hadoop SQL Engines
Format-agonstic SQL Engines
RDBMS with Hadoop access
Erkläre Hive
Vor und Nachteile?
Schema-on-Read oder on-Write?
SQL -> MapReduce für HDFS und HBase
Tabellen in Hive Metastore
Nutzt Serializer-Deserializer => Schema-on-Read
Pro: Scalable, fault tolerant, stable, easy to use
Con: Batch-oriented, slow, no transactions
Was macht ein Serializer-Deserializer?
Support for many data formats
Schema-on-Read vs on-Write
Write: Daten per ETL in Relationales DBMS laden => Dann SQL darauf
Read: Daten in Hadoop laden => Dann Schema auf die Daten mappen und per SQL abfragen
Erkläre SQL Engines on Hadoop
Pro? Con?
Verteilte + parallele SQL Engine
Nutzt Hive Metadaten
Sitzt auf Hadoop
Kein MapReduce
Nur HDFS als Storage
Pro: Schneller als Hive, Low Latency, Pipeline + Caching, Scaleable
Con: No transactions
Was ist Spark
Verteiltes in-Memory Computing Framework
RDD (Resilient Distributed Datasets)
Not restricted to Hive meta data
Consumes a lot of memory
No transactions
Was ist das Besondere an Format-agnostic SQL Engines
Unterstützt nicht nur HDFS als Storage
Sondern auch: Hive und NoSQL
Was ist “RDBMS with Hadoop Access”?
Nachteil?
Integriere Hadoop in RDBMS
Erweitere externe Tabellen
Data processing in RBDMS or Hadoop
Con: Teuer
Wofür wird RDBMS with Hadoop Access benutzt?
Data-lake
RDBMS primary
HDFS for big data
Mixed analytical and transactional load
Forward vs. Reverse Engineering im Schema Management
Welche SW für Schema Management?
FW = Schema Creation
RV = Schema Overview, Data Exploration
Advanced RV = Schema Version Extraction
SW = Darwin
Was sind Single und Multi Type Operations (Kontext: Schema Evaluation)
Single:
Add
Rename
Delete
Multi:
Copy (denormalization)
Move (refactoring)
Nenne die Strategien Basisstrategien für Daten Migration und erkläre diese
Eager Migration:
Neues Schema => Alle Entities migrieren
Lazy Migration:
Migrate on Request
Bei welcher Migrationsstrategie werden keine unbenutzen Entities migriert?
Welche Strategie ist aufwändiger, aber hat eine geringere Read Latency
Lazy
Eager
Proaktive Migrationsstategien
Incremental:
Ist meist Eager
Pro: Composition von Operationen möglich
Con: Migriert unnötige Daten
Predictive:
Forecast, which entities are accessed in the future
Migrate these
Con: Ggf. migration, wenn falscher Forecast
Wie können bei einer Proaktiven Inkrementellen Migration eine Composition von Operationen durchgeführt werden?
zb: Statt: copy und dann delete original => move
Was heißt CAP Theorem?
Consistency
Availability
Partition Tolerance
Weiterentwicklung von CAP?
PACELC
If Partition{
Availability OR Consistency
}else{
Latency OR Consistency
}
Arten von Konsistenz?
Strong
Weak
Eventuall (Abwandlung von Weak)
System wird irgendwann konsistent
Varianten von Eventuall Consistency?
Causal
Read-your-writes
Session consistency
Monotonic reads
Monotonic writes
Was ist Monotonic Read und Monotonic Write?
Art von Eventual Consistency
Read = wenn Process D(k) gesehen, nie mehr älter als k
Write = Serialize the writes of the same process
Wofür steht BASE?
Basically available (Immer up)
Soft-state (State kann sich ändern => zb Stale)
Eventually consistent (Wird irgendwann konsistent)
Was heißt ACID?
atomicity, consistency, isolation, and durability
Arten von Sharding?
Hash
Range
Entity-Group
Was ist Sharding?
Aufteilen von Daten über Scaled Out Data
Pro und Con von Hash-Sharding?
Pro: Gleichmäßig verteilt
Con: No data locality
Pro und Con von Range und Entity-Group Sharding?
Range:
Pro: Range Scans und Sorting
Con: Repatitionierung und Balancing benötigt
Entity-Group:
Pro: Ermöglicht ACID Transactions
Con: Partitionierung nicht einfach änderbar
Was ist Consistent Hasing?
Kreis von Nodes und Keys
Daten gehen an nächste Node und übernächste für Replica
Formel der Fingertabelle bei Chord Sharding (Ring)
Erster Eintrag: succ(k+1)
Danach: succ(k+2^(i-1))
succ=Auflösen zu nächster Node
Wann Replizieren? Auch jeweils Acronym für die Arten nennen. Vor und Nachteile jeweils
Synchron (Eager)
Akzeptiert weitere Writes, aber ACK erst wenn propagiert
Pro: Konsistent
Contra: Commit Protocol benötigt (Roundtrip time)
Async (Lazy)
Sofort ACK
Pro: Fast writes, keine Koodinierung nötig
Con: Daten evtl. Stale (inkonsistent / weak consistent)
Formeln Quorum Consensus?
W+R > N
Bei multi-master auch: W+W > N
Was bei Quorum Consensus:
W=N and R = 1
W=1 and R = N
Formel für Majority Consensus?
Read optimized
Write optimized
R=W= (N/2) + 1
Varianten von Quorum Consensus?
Static vs Dynamic:
Für jedes Item dynamisch, anstatt N
Unweighted vs Weighted
Welche Write und Read Consistency Level gibt es?
Zero, One/Two/Three, Quorum, All
Read: Ohne Zero!
Was passiert bei Write consistency level “zero” wenn die Node down ist?
Hinted Handoff
Was ist hinted handoff?
Notiz an nearest alive Node, wenn eine Ausfällt. System kann weiterarbeiten.
Was ist ein Problem, was bei Async Write auftreten kann?
Write has not propagated to all Nodes
Nenne Read-Related Strategien bei Async Write
Read-Repair
Anti-Entropy
Wie funktioniert der Read-Repair Alogrithmus?
System erkennt out-of-sync
Markieren der Nodes mit Read Repair flag
Sync Stale Nodes with newest Versions
Arten von Replikation
Maste-Slave
Multi-Master (Quorum Consesus)
Wie funktioniert Konflikterkennung?
Vektor-Clocks
Welche Möglichkeiten für Indexing gibt es? Und welche Unterschiede gibt es dabei?
Local Secondary Indexing
Global Secondary Indexing
Nenne 4 Funktionale Requirements
Scan Queries (Sharding)
ACID Transactions (Replication)
Joins (Techniques, Query Processing)
Filter Queries (Query Processing)
Nenne Non-Funktionale Requirements
Data/Write Scalability (Sharding)
Read Scalability (Replication)
Write Throughtput (Storage Management)
Durability (Storage Management)
Read Latency (Query Processing)
Last changed3 months ago