Partitionierungsstrategien für Data Vault

Ähnliche Dokumente
Wie modelliere ich mein Core Data Warehouse?

Haben Sie die Zeit im Griff? Designtipps zur Zeitdimension

ZWISCHEN ALBTRAUM UND OPTIMALER PERFORMANCE

Modellierung agiler Data Warehouses mit Data Vault

Oracle In-Memory & Data Warehouse: Die perfekte Kombination?

Globale Statistiken im Oracle Data Warehhouse

Haben Sie die Zeit im Griff? Designtipps zur Zeitdimension

INDEXIERUNGS- STRATEGIE IM DATA WAREHOUSE

Indexierungsstrategie im Data Warehouse Zwischen Albtraum und optimaler Performance

Modellierung agiler Data Warehouses mit Data Vault Dani Schnider, Trivadis AG DOAG Konferenz 2015

Brücken bauen im dimensionalen Modell

Indexstrategien im Data Warehouse

Methoden zum Befüllen von SCD2

FEHLERTOLERANTE LADEPROZESSE IN ORACLE

DWH Automatisierung mit Data Vault 2.0

Partitionierung im DWH mit ORACLE 11g und 12c

Laden von Data Marts auch mal komplex DOAG BI, 9. Juni 2016 Dani Schnider, Trivadis AG

APEX Datenverwaltung Wo sind die Daten gerade?

! Partitionieren Sie Ihr Data Warehouse?

Fehlertoleranz und Robustheit von ETL-Prozessen Wie gestalten wir Abläufe möglichst widerstandsfähig. Christian Borghardt I BI Consultant

Können "fast changing monster dimensions" gezähmt werden?

Nutzung der Oracle Database InMemory Option für SAP BW

Schnelle Kurzgeschichten

Indizes B+Bäume in Oracle. Jörg Winkler

Partitioning Technik und Anwendungsbeispiele

Indizes. Index. Datenfeld Normale Tabelle. Gesucht wird: Zugriff. 3. Zugriff 1. Zugriff.

Datenzugriffskomponente mit JPA 2.1

10. Datenbank Design 1

Datenbanken: Indexe. Motivation und Konzepte

Hochverteilte Datenhaltung im Internet

Nützliche Oracle 12c Features für Data Warehousing DOAG BI, 8. Juni 2016 Dani Schnider, Trivadis AG

Das relationale Datenmodell

Partitionieren Sie Ihr Data Warehouse!

DWH-Modellierung mit Data Vault in Kombination mit ODI 12c - Erfahrungen aus der Praxis - Claus Jordan Trivadis GmbH Stuttgart

1 Business-Intelligence-Architektur 1

Wir bauen uns ein Data Warehouse mit MySQL

Analytic Views: Einsatzgebiete im Data Warehouse

Brücken bauen im dimensionalen Modell

So beschleunigen Sie Ihre ETL-Prozesse

NAFI Online-Spezial. Kunden- / Datenverwaltung. Mehr Infos unter:

ACCESS. Berechnete Felder in Tabellen TABELLEN ENTWERFEN BERECHNETE FELDER IN TABELLEN BASICS

Die interne Textverarbeitung. Voraussetzungen. Grundlagen. SOFTplus Merkblatt

Cognos im Siebel Marketingprozess - die Integration zweier Welten

SAP BW/4HANA Operational Data Provisioning (ODP) //

1. Tabellen-Beziehungen

Whitepaper. Produkt: combit Relationship Manager 5. Import von Adressen nach Firmen und Personen. combit GmbH Untere Laube Konstanz

Optimale Performance durch Constraints im Data Warehouse

myfactory.go! - Dokumente

SOA verspielt - rekursive BPEL Prozesse

DataVault Ein Leben zwischen 3NF und Star. DOAG Konferenz Nürnberg 2013 Michael Klose November 2013

ADS: Algorithmen und Datenstrukturen

Partitionierung Indizes und Statistiken

Brücken bauen im dimensionalen Modell

Oracle Data Warehouse Integrator Builder Ein Selbstversuch

Viel aus wenig: Enterprise-DWH mit Basic ETL

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

BOSSModeler - User Manual

Performance in der Oracle Datenbank von Anfang an

Persistenz. Ralf Gitzel

D1: Relationale Datenstrukturen (14)

Relationale Datenbanken

Schnelle Kurzgeschichten. Dr. Andrea Kennel InfoPunkt Kennel GmbH November 2011

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Es geht also um die sogenannte SQL- Data Definition Language.

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

Performance-Vergleich zwischen InterSystems Caché und Oracle in einer Data-Mart-Applikation

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

Logischer Entwurf. Stufen der Entwicklung einer Datenbank. Inhalt. Übersicht. 1. Datenbank - Entwurf ( ER - Diagramm)

Informatik Datenbanken

Workaround für BW/BODS - Verbindung

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Wenn die Fakten zu früh eintreffen

Projekte verwalten Projekte bieten in Synago eine Möglichkeit, Freizeiten Einladungsaktionen oder Rundbriefe zu organisieren. So funktioniert es

Kapitel 7: Referentielle Integrität

Datenbanken 6: Normalisierung

Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2

1. Kapitel Konfiguration der Felder der Kursbeschreibung

Grundlagen der Informatik Vorlesungsskript

SQL. Datendefinition

Oracle In-Memory & Data Warehouse: Die perfekte Kombination?

Microsoft Access Relationen. Anja Aue

Welche BI-Architektur braucht Ihr Reporting?

Konzeptueller Entwurf

IBM Cognos Analytics 11 Self-Service dann aber richtig!

Information zur Konzeptberatungs-Schnittstelle

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1

Partitioning mit Oracle Text 9i

Projekte verwalten. 1) Projekte. 2) Aktionen

Info: Um einen Import durchführen zu können, benötigen Sie das Menü- und Funktionsrecht Mitglied(er) importieren (MEM_IMP)

Historisierung auf Knopfdruck

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

IMS-Audit Pro. Kurzanleitung 2 / 14

Festplatte klonen: Tutorial

Hinweise für die Benutzung von Laboratio

GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN

Transkript:

ierungsstrategien für Data Vault Dani Schnider Trivadis AG Zürich/Glattbrugg, Schweiz Einleitung Während das Laden von Tabellen in Data Vault in der Regel nicht zeitkritisch ist, stellt uns das effiziente Extrahieren von Daten aus komplexen Data-Vault-Schemas immer wieder vor Herausforderungen. Abfragen auf zahlreiche s, s und s sind notwendig, um die Informationen in einer Form zur Verfügung zu stellen, die beispielsweise das Laden einer Dimensions- oder einer Faktentabelle in einem dimensionalen Data Mart ermöglichen. Wie können die ierungsmöglichkeiten von Oracle 12c genutzt werden, um das Lesen aus den Data-Vault- Tabellen so effizient wie möglich durchzuführen? Im Gegensatz zur ierung eines Star Schemas gibt es für Data Vault keine eindeutige Empfehlung, wie die Tabellen idealerweise aufgeteilt werden und welche ierungsmethode verwendet werden soll. Es gibt verschiedene Ansätze, jede von ihnen hat Vor- und Nachteile. Nachfolgend werden drei mögliche ierungsstrategien vorgestellt. Strategie 1: ierung nach Ladedatum Jede Tabelle in Data Vault ist mit einem Ladedatum versehen. Mit diesem technischen Zeitstempel wird für jeden Datensatz festgehalten, wann er ins Data Warehouse geladen wurde. Eine naheliegende ierungsstrategie besteht darin, das Ladedatum als ierungsschlüssel zu verwenden. Nur bringt dies in den meisten Fällen keine Vorteile. Für spezifische Anwendungsfälle kann diese Strategie jedoch nützlich sein. Bei der Data-Vault-Modellierung wird nicht unterschieden zwischen Stammdaten ( Dimensionen ) und Bewegungsdaten ( Fakten ). So werden beispielsweise Verkaufstransaktionen genau gleich behandelt wie Kunden oder Produkte. In allen Fällen wird ein mit einem oder mehreren n erstellt. Für das physische Datenbankdesign ist es jedoch nützlich zu wissen, ob die Daten regelmäßig aktualisiert werden (typisch für Stammdaten), oder ob sie einmal geschrieben und danach nicht mehr verändert werden (typisch für Bewegungsdaten). Im ersten Fall wird für jede Änderung eine neue Version im entsprechenden n erstellt. Im zweiten Fall wird nur ein Eintrag in den n eingefügt, und zwar zur gleichen Zeit, in welcher der -Eintrag geschrieben wird. Diese Eigenschaft können wir für die ierung der Tabellen ausnützen. Für Bewegungsdaten, die nur einmal geschrieben werden, können der und die zugehörigen n und s nach Ladedatum partitioniert werden (mittels RANGE- oder INTERVAL- ierung). Dies hat den Vorteil, dass beim Extrahieren aller Bewegungsdaten (z.b. Verkaufstransaktionen) eines bestimmten Tages oder eines Datumintervalls nur die relevanten Tagesoder Monatspartitionen gelesen werden müssen ( Pruning). Außerdem ist es auch einfach möglich, historische Daten aus dem Data Vault zu löschen, wenn sie nicht mehr benötigt werden. Dazu werden einfach die alten en der Tabellen gelöscht. Auch andere Möglichkeiten von Information Lifecycle Management beispielsweise die Verteilung der Daten auf unterschiedliche

Disksysteme oder partielle Backups der aktuellen Daten lassen sich problemlos und effizient mit dieser ierungsstrategie realisieren. Im Beispiel in Abbildung 1 enthalten, und Satellit auf der rechten Seite Bewegungsdaten, während im und den zwei n links Stammdaten gespeichert sind. Die Tabellen mit Bewegungsdaten sind partitioniert nach Ladedatum. Abbildung 1:, und für Bewegungsdaten sind RANGE-partitioniert nach Ladedatum Die Vorteile dieser ersten ierungsstrategie sind Pruning und Information Lifecycle Management. Sie kommen jedoch nur bei Bewegungsdaten zum Einsatz. Für Stammdaten, die nachträglich geändert werden, kann das Ladedatum nicht als Filterkriterium für Extraktionen verwendet werden. Stattdessen wird dort üblicherweise die aktuelle Version aus jedem n abgefragt. Diese Version kann heute, aber auch vor mehreren Monaten oder Jahren eingefügt worden sein. Somit müssten immer alle en gelesen werden. Strategie 2: ierung nach Lade-Enddatum Beim Extrahieren von Stammdaten wird üblicherweise die aktuelle Version jedes Datensatzes aus den n gelesen. Die aktuelle Version wird auch verwendet, um Unterschiede zwischen neu angelieferten und bereits im Data Vault vorhandenen Daten zu erkennen (Deltaermittlung). Deshalb ist es wichtig, die aktuellen Versionen in den n effizient ermitteln zu können. Aus diesem Grund wird oft ein Enddatum in den n gespeichert. Wird eine neue Version in einen n eingefügt, wird das Enddatum der vorherigen Version auf den Wert des Ladedatums der neuen Version gesetzt. Dadurch lässt sich für jeden Zeitpunkt einfach ermitteln, welche Versionen gültig waren. Das Enddatum der aktuellen Version ist entweder NULL oder enthält ein Datum in der Zukunft oft der 31.12.9999. Für n mit häufigen Änderungen kann es zweckmäßig sein, die aktuellen Versionen in einer separaten zu speichern, während alle anderen (historischen) Versionen in einer anderen abgelegt sind. So muss beim Extrahieren der aktuellen Version nur eine (kleine) gelesen werden, nicht die gesamte n-tabelle. Als ierungsschlüssel wird das Lade- Enddatum verwendet, als ierungsmethode kann entweder LIST- oder RANGE-ierung verwendet werden.

Wird nun eine neue Version mit dem Lade-Enddatum 31.12.9999 eingefügt, wird sie automatisch in der aktuellen gespeichert. Doch was passiert mit der vorherigen Version? Da dort das Lade- Enddatum nachträglich geändert wird, muss der Datensatz von der aktuellen in die historische verschoben werden. Damit dies möglich ist, muss die partitionierte Tabelle mit der Option ENABLE ROW MOVEMENT angelegt werden. Abbildung 2: Alle n enthalten eine aktuelle und eine historische Diese ierungsstrategie kann nur für n verwendet werden, und zwar nur dann, wenn diese ein Lade-Enddatum enthalten (in der reinen Lehre von Data Vault ist dies nicht der Fall). Das redundante Speichern eines Enddatums ist auf jeden Fall zweckmäßig für die effiziente Ermittlung der aktuellen Versionen. Doch lohnt es sich, alle n nach diesem Attribut zu partitionieren? Der Nutzen ist vor allem dann groß, wenn in einer n-tabelle viele Änderungen durchgeführt werden. Wenn beispielsweise pro -Eintrag durchschnittlich 20 Versionen vorhanden sind, würde die aktuelle nur ca. 5% der Datensätze enthalten. Das heißt, die Extraktionsjobs müssen nur einen kleinen Teil der Tabelle lesen und sind dadurch effizienter. Zu Beginn, wenn noch nicht viel historisiert ist, wird der Performancegewinn hingegen relativ klein sein. Ebenso bei n, in denen nur wenige Änderungen vorkommen. Strategie 3: ierung nach -Schlüssel Die dritte hier vorgestellte ierungsstrategie verfolgt ein anderes Ziel. Hier geht es nicht darum, durch Pruning die Datenmenge beim Extrahieren der Daten einzuschränken, sondern die zahlreichen Joins zu beschleunigen, die beim Lesen aus Data Vault ausgeführt werden müssen. Auch dazu ist ierung ein geeignetes Mittel. Sind zwei Tabellen auf die gleiche Weise partitioniert, so kann ein Full -wise Join ausgeführt werden. Das bedeutet, dass beim Join nur jeweils die Datensätze der korrespondierenden en in beiden Tabellen miteinander verglichen werden. Bei großen Datenmengen ergibt dies beträchtliche Performanceverbesserungen, insbesondere wenn die Ausführung parallel erfolgt. Voraussetzung dafür ist, dass beide Tabellen den gleichen ierungsschlüssel verwenden und dass dieser als Join-Kriterium verwendet wird.

Werden in Data Vault s und n nach dem -Schlüssel partitioniert, so können die Tabellen mittels Full -wise Join verknüpft werden. Der -Schlüssel ist entweder ein Hashwert oder eine Sequenznummer, also ein nicht-sprechender Schlüsselwert. Er wird im als Primärschlüssel und in den n als Fremdschlüssel verwendet. Als ierungsmethode wird HASH-ierung verwendet, die empfohlene Anzahl en pro Tabelle ist eine Zweierpotenz (2, 4, 8, 16, etc.). Dadurch werden die Daten gleichmäßig auf die vorhandenen en verteilt, sodass jeder (Teil-)Join zweier en etwa gleich viele Datensätze verarbeiten muss. Dies funktioniert sowohl mit numerischen Sequenznummern als auch mit Hashwerten. Für die -Tabellen in Data Vault wird ein etwas anderer Ansatz verwendet. Idealerweise sollte ein nach jedem -Schlüssel, den er referenziert, partitioniert werden. Bei s mit Referenzen zu zwei s ist dies möglich mittels Composite HASH-HASH-ierung. Die -Tabelle wird HASH-partitioniert nach dem ersten -Schlüssel. Für jede werden zusätzlich HASH- Subpartitionen nach dem zweiten -Schlüssel erstellt. Dadurch kann für die Joins zu beiden s jeweils ein Full -wise Join ausgeführt werden. Abbildung 3: HASH-ierung erlaubt Full -wise Joins zwischen den Tabellen Im Beispiel in Abbildung 3 sind die drei Tabellen links nach dem -Schlüssel des linken s partitioniert, mit jeweils 8 HASH-en. Für die zwei Tabellen rechts wird der -Schlüssel des rechten s verwendet. Die -Tabelle enthält 8 HASH-en, verteilt nach dem rechten -Schlüssel. Jede der en umfasst 8 HASH-Subpartitionen, verteilt nach dem linken - Schlüssel. Composite HASH-HASH-ierung wurde mit Oracle 12c eingeführt und ist die letzte bisher noch nicht unterstützte Kombination von en und Subpartitionen. Was es aber nach wie vor nicht gibt, ist Composite ing über drei oder mehr Stufen. Für s mit mehr als zwei Fremdschlüsseln können somit nicht alle -Schlüssel zur ierung verwendet werden.

Fazit Die perfekte ierungsstrategie für Data Vault gibt es leider nicht. Jede der hier vorgestellten Varianten hat Vorteile in bestimmten Situationen, aber auch Einschränkungen und Nachteile. Eine einheitliche Behandlung aller s, s und s, wie dies in Data Vault idealerweise gewünscht wird, ist nicht möglich. Strategie 1 ist nur für Bewegungsdaten sinnvoll, während Strategie 2 ausschließlich für n-tabellen möglich ist und sich nur lohnt, wenn viele Datenänderungen vorkommen. Strategie 3 schließlich kann in (fast) allen Fällen verwendet werden mit gewissen Einschränkungen bei s. Ausführlichere Informationen zu den hier vorgestellten Strategien beispielsweise ihre Auswirkungen auf die Indexierung der Tabellen sowie Syntaxbeispiele der verschiedenen Varianten werden am Vortrag an der DOAG-Konferenz gezeigt. Sie sind außerdem in einem ausführlichen Trivadis White Paper beschrieben, das nach der DOAG-Konferenz unter https://danischnider.wordpress.com zur Verfügung stehen wird. Kontaktadresse: Dani Schnider Trivadis AG Sägereistrasse 29 CH-8152 Glattbrugg Telefon: +41 58 459 50 81 Fax: +41 58 459 56 95 E-Mail dani.schnider@trivadis.com Internet: www.trivadis.com