oracle in-memory & data warehouse: die perfekte...

30
BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH Oracle In-Memory & Data Warehouse: Die perfekte Kombination? DOAG Konferenz, 16. November 2016 Dani Schnider, Trivadis AG @dani_schnider

Upload: others

Post on 18-Jul-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH

Oracle In-Memory & Data Warehouse: Die perfekte Kombination? DOAG Konferenz, 16. November 2016 Dani Schnider, Trivadis AG

@dani_schnider

Page 2: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Unser Unternehmen.

Oracle In-Memory & Data Warehouse 2 16.11.2016

Trivadis ist führend bei der IT-Beratung, der Systemintegration, dem Solution Engineering und der Erbringung von IT-Services mit Fokussierung auf - und -Technologien in der Schweiz, Deutschland, Österreich und Dänemark. Trivadis erbringt ihre Leistungen aus den strategischen Geschäftsfeldern: Trivadis Services übernimmt den korrespondierenden Betrieb Ihrer IT Systeme.

B E T R I E B

Page 3: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

KOPENHAGEN

MÜNCHEN

LAUSANNE BERN

ZÜRICH BRUGG

GENF

HAMBURG

DÜSSELDORF

FRANKFURT

STUTTGART

FREIBURG

BASEL

WIEN

Mit über 600 IT- und Fachexperten bei Ihnen vor Ort.

Oracle In-Memory & Data Warehouse 3 16.11.2016

14 Trivadis Niederlassungen mit über 600 Mitarbeitenden.

Über 200 Service Level Agreements.

Mehr als 4'000 Trainingsteilnehmer.

Forschungs- und Entwicklungsbudget: CHF 5.0 Mio. / EUR 4.0 Mio.

Finanziell unabhängig und nachhaltig profitabel.

Erfahrung aus mehr als 1'900 Projekten pro Jahr bei über 800 Kunden.

Page 4: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Dani Schnider

4

Principal Consultant, Teacher und DWH Lead Architect bei Trivadis in Zürich

  Co-Autor der Bücher «Data Warehousing mit Oracle» und «Data Warehouse Blueprints»

16.11.2016 Oracle In-Memory & Data Warehouse

@dani_schnider danischnider.wordpress.com

Page 5: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Oracle In-Memory & Data Warehouse 5 16.11.2016

Oracle Database In-Memory

Page 6: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Oracle In-Memory & Data Warehouse 6 16.11.2016

The innovation of the Oracle In-Memory option is: We store the data both ways - we store it two ways. We store it both in row format and in memory in columnar format. Next slide please!

When we process queries, we have all the data in memory, and we can scan it very very quickly. So we speed up insert into the database and update to the database two - three - four times by dropping these analytic indexes. Those analytic indexes are much more expensive to maintain than the column store that replaces the analytic indexes - and that's magic.

Page 7: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Oracle Database In-Memory Architektur

Oracle In-Memory & Data Warehouse 7 16.11.2016

SGA

Buffer Cache IM Column Store TX Journal

DBWn User IMCO Wnnn

Row Format

C5 C1 C2 C3 C4

SELECT UPDATE

Page 8: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Vorteile von Oracle Database In-Memory

Oracle In-Memory & Data Warehouse 8 16.11.2016

  Optimiert für analytische Abfragen und Real-Time-Reporting

  Schnelle Abfragen und Aggregationen auf grosse Datenmengen

  Spaltenweise Komprimierung der Daten im Memory

  Nur benötigte Spalten werden gelesen

  Weniger Aufwand für Performanceoptimierungen

  Keine applikatorischen Änderungen notwendig

Page 9: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Oracle In-Memory & Data Warehouse 9 16.11.2016

In-Memory & Data Warehouse

Page 10: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Braucht es überhaupt noch ein Data Warehouse?

Oracle In-Memory & Data Warehouse 10 16.11.2016

Nein.

  Analytische Abfragen können direkt auf den operativen Systemen ausgeführt werden

  Durch In-Memory Column Store werden OLTP-Applikationen nicht belastet

  Ermöglicht Real-Time-Reporting auf den aktuellen Daten

Ja.

  Integration von Daten aus unterschiedlichen Quellsystemen

  Historisierung/Versionierung der Daten (Nachvollziehbarkeit)

  Bereitstellung von Informationen für thematische Auswertungsbereiche

«A data warehouse is a subject-oriented, integrated,

time-variant, nonvolatile collection of data in support of

management’s decision-making process.»

William H. Inmon

Page 11: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

DWH Architektur (Beispiel)

Oracle In-Memory & Data Warehouse 11 16.11.2016

Data Warehouse Marts Cleansing Area Core Staging Area Quellsysteme

Metadaten ETL

BI-Plattform

Page 12: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Welche Daten gehören in den In-Memory Column Store?

Oracle In-Memory & Data Warehouse 12 16.11.2016

Data Warehouse Marts Core

Metadaten

Cleansing Area Staging Area

? ? ? ?

?

Page 13: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Welche Daten gehören in den In-Memory Column Store?

Oracle In-Memory & Data Warehouse 13 16.11.2016

Marts Core

Einsatzgebiet von In-Memory im Data Warehouse:

  Data Marts

Begründung:

  Abfrageoptimierung von häufig verwendeten Queries

  Star Schema ist idealer Kandidat für In-Memory Column Store

Page 14: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Oracle Database In-Memory und Star Schema

Oracle In-Memory & Data Warehouse 14 16.11.2016

Einsatzgebiet von In-Memory im Data Warehouse:

  Data Marts

Begründung:

  Abfrageoptimierung von häufig verwendeten Queries

  Star Schema ist idealer Kandidat für In-Memory Column Store

  Nur benötigte Spalten müssen gelesen und aggregiert werden

Page 15: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Was ändert sich beim Einsatz von In-Memory im DWH?

Oracle In-Memory & Data Warehouse 15 16.11.2016

Fast nichts.

  Aufgaben im Data Warehouse bleiben gleich

  Architektur (DWH-Schichten) bleibt gleich

  Datenmodelle bleiben gleich

  Abfragen, Reports und BI-Applikationen bleiben gleich

Was ändert sich?

  Physisches Design der Data Marts

Page 16: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Oracle In-Memory & Data Warehouse 16 16.11.2016

In-Memory & Physisches Design

Page 17: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Physisches Design von Data Marts (bisher)

Oracle In-Memory & Data Warehouse 17 16.11.2016

  Dimensionstabellen: –  Primary Key Constraint

–  ev. Bitmap Indizes auf Filterattribute

  Faktentabellen: –  Partitionierung (in der Regel nach Datum)

–  Foreign Key Constraints auf Dimensionen

–  Bitmap Index auf jedem Dimensionsschlüssel

–  ev. zusätzliche Bitmap Join Indizes

  Optimizer-Statistiken

–  Aktualisierung der Statistiken nach ETL-Lauf

  Materialized Views

–  Materialized Views für häufig verwendete Aggregationsstufen

–  Dimension-Objekte für Hierarchien auf Dimensionstabellen

–  ev. Materialized View Logs auf Core-Tabellen

–  ev. Indizes auf Materialized Views

–  ev. Partitionierung der Materialized Views

Page 18: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Physisches Design von Data Marts (mit In-Memory)

Oracle In-Memory & Data Warehouse 18 16.11.2016

  Dimensionstabellen: –  Primary Key Constraint

  Faktentabellen: –  Partitionierung (in der Regel nach Datum)

–  Foreign Key Constraints auf Dimensionen

–  ev. Partial Bitmap Indexes auf Faktentabellen

  Optimizer-Statistiken

–  Aktualisierung der Statistiken nach ETL-Lauf

  In-Memory Column Store

–  Alle Dimensionstabellen

–  Kleine Faktentabellen (vollständig)

–  Bei grossen Faktentabellen ev. nur häufig verwendete Kennzahlen / Dimensionsschlüssel

–  Bei partitionierten Faktentabellen ev. nur aktuelle (bzw. häufig verwendete) Partitionen

  In-Memory Compression Type

–  Meistens MEMCOMPRESS FOR QUERY LOW

Page 19: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Konfiguration von INMEMORY pro Tabelle

Oracle In-Memory & Data Warehouse 19 16.11.2016

  Ganze Tabelle

ALTER TABLE sales INMEMORY

ALTER TABLE sales MODIFY PARTITION p_2016 INMEMORY

ALTER TABLE sales INMEMORY (cust_id,time_id)

  Einzelne Spalten

  Einzelne Partitionen

Page 20: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

In-Memory Compression Type

Oracle In-Memory & Data Warehouse 20 16.11.2016

Compression Level Description

NO MEMCOMPRESS Data is populated without any compression

MEMCOMPRESS FOR DML Minimal compression optimized for DML performance

MEMCOMPRESS FOR QUERY LOW Optimized for query performance (default)

MEMCOMPRESS FOR QUERY HIGH Optimized for query performance as well as space saving

MEMCOMPRESS FOR CAPACITY LOW Balanced with a greater bias towards space saving

MEMCOMPRESS FOR CAPACITY HIGH Optimized for space saving

Page 21: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

In-Memory & Partial Local Index

Oracle In-Memory & Data Warehouse 21 16.11.2016

Table Partition P1

Index Partition P1

Table Partition P2

Index Partition P2

Table Partition P3

Index Partition P3

Table Partition P4

Index Partition P4

Table Partition P5 INMEMORY

Index Partition P5

Table Partition P6 INMEMORY

Index Partition P6

INDEXING ON INDEXING OFF

Page 22: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Oracle In-Memory & Data Warehouse 22 16.11.2016

Abfrageoptimierung

Page 23: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

In-Memory Performance Features

Oracle In-Memory & Data Warehouse 23 16.11.2016

  In-Memory Scan

–  Spaltenweises Lesen der Daten aus dem IM Column Store

–  Aggregation auf gewünschte Granularität

  In-Memory Join

–  Effiziente Methode, um Tabellen zu joinen

–  Verwendung von sogenannten „Bloom Filters“

  In-Memory Aggregation

–  Vergleichbar mit Star Transformation

–  Verwendung von „Key Vectors“ statt Bitmap Indizes

Page 24: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Abfrageoptimierung auf Star Schemas

  Typische Abfragen auf Star Schema:

–  Filterkriterien auf Dimensionen

–  Fakten werden durch Join mit Dimensionen ermittelt

  Problemstellung:

–  Tabellen mit Filterkriterien sollten zuerst evaluiert werden

–  Join nur auf jeweils zwei Tabellen

–  Keine Beziehungen zwischen Dimensionen

1

2

3

3

2

116.11.2016 Oracle In-Memory & Data Warehouse 24

Page 25: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

In-Memory Aggregation (Vector Transformation)

Oracle In-Memory & Data Warehouse 25 16.11.2016

  Phase 1 (für jede Dimension mit Filterkriterien)

1.  Scan auf Dimensionstabelle (inkl. Filterung der Daten)

2.  Ermittlung von Key Vector

3.  Aggregation der Daten (In-Memory Accumulator)

4.  Erstellen von temporärer Tabelle

  Phase 2

5.  Full Table Scan auf Faktentabelle, Filterung anhand von Key Vectors

6.  Aggregation mittels HASH GROUP BY / VECTOR GROUP BY

7.  Join auf temporäre Tabellen (Join Back)

8.  Ev. Join von weiteren Dimensionen (ohne Filterkriterien)

Page 26: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

In-Memory Aggregation (Vector Transformation)

Oracle In-Memory & Data Warehouse 26 16.11.2016

FACTS 11 22 1000 11 24 1200 12 21 300 12 22 3200 12 24 700 13 22 1100 14 21 2000 14 24 800 14 25 1600 14 26 700 15 23 1100 15 24 1200 15 26 500 16 22 2400 16 23 800 17 22 1300 17 25 1100 18 21 900 18 24 2100 18 26 600

DIM1 11 Alpha 12 Alpha 13 Beta 14 Beta 15 Beta 16 Gamma 17 Delta 18 Delta

DIM2 21 X green 22 X blue 23 Y green 24 Y blue 25 Y red 26 Z red

SELECT D1, D21, D22 , SUM(FACTS.F) FROM FACTS JOIN DIM1 ON (...) JOIN DIM2 ON (...) WHERE D1 IN ('Beta', 'Gamma') AND D21 = 'Y' GROUP BY D1, D21, D22

Page 27: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

In-Memory Aggregation (Vector Transformation)

Oracle In-Memory & Data Warehouse 27 16.11.2016

FACTS 11 22 1000 11 24 1200 12 21 300 12 22 3200 12 24 700 13 22 1100 14 21 2000 14 24 800 14 25 1600 14 26 700 15 23 1100 15 24 1200 15 26 500 16 22 2400 16 23 800 17 22 1300 17 25 1100 18 21 900 18 24 2100 18 26 600

DIM1 11 Alpha 12 Alpha 13 Beta 14 Beta 15 Beta 16 Gamma 17 Delta 18 Delta

DIM2 21 X green 22 X blue 23 Y green 24 Y blue 25 Y red 26 Z red

KV1 0 0 1 1 1 2 0 0

KV2 0 0 1 2 3 0

TMP1 1 Beta 2 Gamma

TMP2 1 Y green 2 Y blue 3 Y red

0 0 0 2 0 0 0 0 0 2 1 0 1 0 1 2 1 3 1 0 1 1 1 2 1 0 2 0 2 1 0 0 0 3 0 0 0 2 0 0

Beta Y green 1100 Beta Y blue 2000 Beta Y red 1600 Gamma Y green 800

Page 28: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Oracle In-Memory & Data Warehouse 28 16.11.2016

Oracle In-Memory & Data Warehouse Die perfekte Kombination?

Page 29: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Quellen und weitere Informationen

  Oracle Database Online Documentation 12c Release 1 (12.1) Database SQL Tuning Guide, Chapter 5: Query Transformations https://docs.oracle.com/database/121/TGSQL/tgsql_transform.htm#TGSQL95256

  Oracle Database In-Memory: In-Memory Aggregation Oracle White Paper, January 2015 (William Endress) http://www.oracle.com/technetwork/database/bi-datawarehousing/inmemory-aggregation-twp-01282015-2412192.pdf

  Oracle Database In-Memory Oracle White Paper, July 2015 (Maria Colgan) http://www.oracle.com/technetwork/database/in-memory/overview/twp-oracle-database-in-memory-2245633.html

  Oracle Scratchpad, In-memory Aggregation, August 2014 (Jonathan Lewis) https://jonathanlewis.wordpress.com/2014/08/24/in-memory-aggregation/

  Bloom Filters, Trivadis Article, June 2008 (Christian Antognini) https://antognini.ch/papers/BloomFilters20080620.pdf

16.11.2016 Oracle In-Memory & Data Warehouse 29

Page 30: Oracle In-Memory & Data Warehouse: Die perfekte Kombination?dani.schniderkennel.ch/pdf/InMemory_und_DWH_DOAG.pdf · Oracle Database In-Memory und Star Schema 14 16.11.2016 Oracle

Trivadis @ DOAG 2016

  Stand: 3ter Stock – direkt an der Rolltreppe Know how, T-Shirts, Gewinnspiel und Trivadis Power to go   Wir freuen uns wenn Sie vorbei schauen   Weil Sie mit Trivadis immer gewinnen !

16.11.2016 Oracle In-Memory & Data Warehouse 30