The Doppler Quarterly (DEUTSCHE) Herbst 2017 | Page 29

Langsam wechselnde Dimensionen zu handhaben, ist einer der wichtigsten Prozesse in einem Data- Warehouse. Das kanonische Beispiel für eine langsam wechselnde Dimension ist ein Kunde, der vor Kurzem an eine neue Adresse umgezogen ist. Wir haben einen Datensatz für den Kunden im Data-Warehouse mit den alten Adressdaten und einen weiteren Datensatz für denselben Kunden mit einer neuen Adresse aus dem Transaktionssystem. Die beiden gängigsten Ansätze zur Bewältigung einer solchen Situation in analytischen Systemen heißen SCD (Slow Changing Dimension) Typ I und Typ II. Bei einer Typ-I-Strategie wird ein bestehendes Dimensionsattribut mit neuen Informationen über- schrieben. In unserem Beispiel werden wir die alte Adresse mit der neuen Adresse überschreiben und keine historischen Informationen über den Kunden aufbewahren. Bei einer Typ-II-Strategie wird ein Datensatz mit den neuen Attributinformationen geschrieben und ein Datensatz mit den alten Dimen- sionsdaten beibehalten. Also fügen wir einen Daten- satz mit den neuen Adressinformationen ein, machen den Datensatz zum aktiven Kundendatensatz und inaktivieren den bisherigen Kundendatensatz. Zu jedem Zeitpunkt haben wir also eine lückenlose His- torie der Adressänderungen des Kunden. Strategie zur Implementierung von SCD Typ II in Hive Hive und Hadoop sind für das einmalige Schreiben und Lesen vieler Muster optimiert. Jedes Design wie SCD II, das ein Update erfordert, ist für solche Sys- teme in der Regel nicht besonders gut geeignet. Im Lauf der Zeit wurden jedoch neue Funktionen hinzu- gefügt, um auch diese Szenarien zu unterstützen. Um SCD II zu implementieren, müssen wir ACID-Transaktionen in Hive aktivieren. Derzeit ist Langsam wechselnde Dimensionen in Hive 200 MB Wir empfehlen ORC als Ausgangspunkt für das am besten geeignete Dateiformat für Apache Hive. ORC-Dateien sind in so genannte Stripes (Datenblö- cke) unterteilt, die voneinander unabhängig sind. Wir können Indizes erstellen, um zu bestimmen, welche Stripes in einer Datei für eine bestimmte Abfrage gelesen werden müssen. Durch die Zeilenindizes kann die Suche auf einen bestimmten Satz von 10.000 Zeilen für hochperformante Lesezugriffe einge- schränkt werden. Innerhalb jedes Stripes sind die Spalten voneinander getrennt, sodass die Lesekom- ponente nur die benötigten Spalten lesen kann. Spalte 1 Indexdaten Spalte 2 Spalte 3 Zeilen- daten Spalte 4 Spalte 5 Stripe-Fußzeile Spalte 6 Spalte 7 Indexdaten Spalte 8 Zeilen- daten Spalte 1 Stripe-Fußzeile Spalte 3 Indexdaten Spalte 4 Spalte 2 Spalte 5 Zeilen- daten Spalte 6 Spalte 7 Stripe-Fußzeile Spalte 8 Dateifußzeile PostScript Abbildung 3: ORC-Dateistruktur ORC das einzige Dateiformat, das ACID-Transaktio- nen in Hive unterstützt. Da es sich bei ORC um ein einmal beschreibbares Dateiformat handelt, werden Änderungen anhand von Basisdateien und Deltada- teien durchgeführt, in denen Einfüge-, Aktualisie- rungs- und Löschvorgänge aufgezeichnet werden. Wenn die Anzahl der Deltas einen Schwellenwert überschreitet, wird automatisch eine kleinere Kom- primierung durchgeführt und eine Reihe von Ände- rungen zu einem einzigen Delta zusammengeführt. Wenn diese komprimierten Deltas groß genug wer- den, wird durch eine größere Komprimierung die Basis neu geschrieben, um diese größeren Deltas aufzunehmen. Hive-Sicherheit und Ranger Apache Hive bietet derzeit zwei Arten der Autorisie- rung: die speicherbasierte Autorisierung und die SQL-Standardautorisierung. Die SQL-Standardauto- risierung bietet Erteilungs-/Rückruffunktionalität auf Datenbank- und Tabellenebene mithilfe von Befehlen, die einem Datenbankadministrator bekannt HERBST 2017 | THE DOPPLER | 27