Erfahrungsbericht einer erfolgreichen SAP BW Bridge Implementierung
Caching: In-Memory Column Store oder im BI Server
1. Caching:
In-Memory Column Store oder BI Server?
Andreas Buckenhofer / Analytics / Daimler TSS
1Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
2. Zur Person
Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Andreas Buckenhofer
Senior DB Professional
E-Mail: andreas.buckenhofer@daimler.com
Seit 2009 bei Daimler TSS
im Fachgebiet Data Warehouse & Data Integration (Cognos/Informatica) –
Department Analytics
Schwerpunkt DWH/CRM seit 1998 als
• Entwickler
• Administrator
• Berater
3. Daimler TSS IT-Exzellenz: Ganzheitlich, innovativ, nah
Wir sind Spezialist und strategischer Business-Partner für innovative IT-Lösungen im Daimler-Konzern. Als
100%ige Daimler-Tochter leben wir die Kultur der Exzellenz mit dem Anspruch der Innovations- und
Technologieführerschaft.
Mit herausragender Technologie- und Methodenkompetenz verstehen wir uns als kompetenter Anbieter von
wettbewerbsdifferenzierenden IT-Dienstleistungen. Unsere Geschäftspartner im Konzern begleiten wir
lösungsorientiert im Rahmen eines ganzheitlichen Ansatzes.
Wir denken und arbeiten partnerschaftlich und agil, sind technologieneutral und hersteller-unabhängig. Das macht
uns frei für maßgeschneiderte End-to-End-Lösungen mit hoher Effektivität. Die Aufnahme wichtiger Trends und
Impulse von außen zusammen mit dem tiefen Verständnis der Daimler-Geschäftsprozesse garantieren eine
umfassende Sicht und überzeugenden Mehrwert.
Unser Anspruch ist es, die Geschäftsprozesse, die Wettbewerbsfähigkeit und die Innovations-kraft von Daimler mit
marktführenden IT-Lösungen voranzutreiben. Als attraktiver Arbeitgeber wollen wir mit Menschen arbeiten, die durch
unser Unternehmen und das menschlich geprägte Umfeld inspiriert sind ihr Bestes zu geben und mit uns ihr volles
Potential zu entwickeln.
3Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
5. 5Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Ganzheitliche Betreuung (Erhebung, Auswertung,
Visualisierung und Interpretation), unabhängige
Beratung und Optimierung der Geschäftsabläufe.
Von klassischer BI bis hin zu predictive und prescriptive
Analytics bieten wir Leistungen unter Berücksichtigung
der Datensicherheit.
Dabei verknüpfen wir fachliche Erfahrung und IT-Know-
how im Daimler-Kontext mit dem Blick fürs große
Ganze.
Analytics. Das große Ganze verstehen, um Daten nutzbar machen.
6. Gliederung
Motivation und Konzepte spaltenorientierter In-Memory DBs (IMDB)
OLAP/Cognos In-Memory Cubes und IMDB
Testszenario und –durchführung mit Oracle
Erkenntnisse/Folgerungen
Zusammenfassung
6Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
7. DWH Reference Architecture
7Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Backend
Frontend
Acquisition Layer (Input Layer)
Core Warehouse Layer (Storage Layer)
Information Mart Layer (Output Layer)
Ad-hoc
Reporting
Standard
Reporting
Dash-
boards
Predictive
Analytics
Prescriptive
Analytics
Star OLAP
3NF Data Vault
Keine FK, PKFlat
8. DWH Reference Architecture PoC
8Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Backend
Frontend
Acquisition Layer (Input Layer)
Core Warehouse Layer (Storage Layer)
Information Mart Layer (Output Layer)
Cognos BI Cognos SPSS / R
Star Cognos Cubes
Data Vault
Keine FK, PKFlat
9. Information und Analytics Mart Layer
Ausgangssituation/Fragestellung im Projekt:
• Modellierung: Relationales Starschema mit In-Memory DB oder weiterhin
Nutzung von Cubes?
• Analysen / Reporting direkt auf Core Warehouse Layer möglich (=
performant)?
9Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
10. In-Memory … nicht neu
Datenbank Buffer Cache
Datenspeicherung auf RAM-Disk
Datenspeicherung auf SSD
OLAP In-Memory Cubes
Datenanalyse mit Qlikview, TM1, u.a.
10Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
11. In-Memory - Cache Latenz
11Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Quelle: Brendan Gregg: “Systems Performance: Enterprise and the Cloud”
Flüchtig
Nicht flüchtig
„In-Memory“
Festplatte
12. Datenverteilung, z.B. partitionierte Umsatzdaten
In-Memory – Speicherhierarchien Kosten vs Nutzen
12Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Festplatte SSD RAM
1/2015
2/2015
…
1/2013
…
12/2014
<= 12/2012
Wenig genutzte
Daten
Häufig genutzte
Daten
13. Spaltenorientierung … nicht ganz so neu
13Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
1993 1995 > 2004
KDB
Sybase IQ
(heute SAP)
Relational:
Monet
C-Store
Vertica
Greenplum
(Nicht-Relational:
BigTable
HBASE
Cassandra)
15. Zeilen- vs Spaltenorientierung: Vor und Nachteile
15Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Zeilenorientierung Spaltenorientierung
Vorteile • Datensatz wird zusammen
abgespeichert
• Einfache/Performante
Updates und Deletes
• Select auf eine oder mehrere
Spalten liest keine unnötigen
Spalten
• Spalte kann als Index verstanden
werden
Nachteile • Es wird der gesamte
Datensatz gelesen – auch
wenn nur einzelne Spalten
benötigt werden
• Nach der Selektion muss ein
Datensatz aus den einzelnen
Spalten rekonstruiert werden
• Inperformante Datenänderungen
• Cache-Aufbau
16. Vorteil: Komprimierungsverfahren je nach Datentyp
16Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Dictionary Encoding
• Zentrale Wörterbücher zur Kodierung.
Run-length Encoding
• Mehrfache Wiederholungen werden durch ein Anzahl-Attribut kodiert.
Null-Suppression
• Unterdrückung von Nullwerten.
Bit-Vector
• Kodierung von 0 bzw1 für eine vorhandene bzw. nicht vorhandene Ausprägung.
17. Vorteil: Data Skipping (Column Store Storage Index)
17Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
• Automatische Registrierung minimaler und maximaler Werte in einer IMU
• „Interner Index“: Ignorieren/Überlesen nicht relevanter Pages
Cache mit InMemory Units (IMU)
1,9,20,34,4,100,…Min: 1 Max: 100
22,1,19,34,4,10,…Min: 1 Max: 34
SQL-Abfrage
SELECT …
FROM …
WHERE spalte > 50
72,60,60,61,60,69,…Min: 60 Max: 72
32,44,30,50,50,…Min: 30 Max: 50
skip
18. Vorteil: SIMD-Prozessoren (Single Instruction Multiple
Data)
18Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
CPU
Vector
Register
z.B. where x=12
1
12
3
12
5
5
12
12
12
12
12
12
Cache (RAM)
1
12
3
12
5
5
12
12
20. Gliederung
Motivation und Konzepte spaltenorientierter In-Memory DBs (IMDB)
OLAP/Cognos In-Memory Cubes und IMDB
Testszenario und –durchführung mit Oracle
Erkenntnisse/Folgerungen
Zusammenfassung
20Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
22. OLAP Cubes
• Multi-dimensionales Datenarray „Würfel“
• Fakten, Dimensionen, Hierarchien, Aggregate
• Eine Struktur ohne Joins
• Ziel: schnell / interaktiv
• KPIs (Kennzahlen) nötig + Dimensionen
• Typisch für BI Reporting, aber auch inflexibel
• Beladung meist mittels Batch
22Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Kunde
Produkt
KPI
Umsatz
23. Cognos Dynamic Cubes
• In-Memory OLAP-Würfel, die Daten direkt aus relationalen DBs laden
• Voraussetzung: Star-Schema oder Snowfalke-Schema (Views möglich, aber
nicht empfohlen)
• In Cognos BI integriert– keine seperate Installation oder Lizenz
• Verschiedene Caches
23Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
24. Cognos Dynamic Cubes – Cache Hierarchie
24Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
25. Cognos Dynamic Cubes – Cache Hierarchie
25Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Start Cube
• Member Cache wird komplett geladen
• Aggregate Cache wird komplett
geladen
Reporting/Daten-Analyse
• Weitere Caches werden nach Bedarf
geladen
• Sobald Cache voll ist, werden Daten
aus DB gelesen
26. Oracle
Das duale Format in der Datenbank
26Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
27. Oracle – Buffer Cache (row) and IMDB (columnar)
27Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Quelle: Guy Harrison: “Next Generation Databases”
28. Gliederung
Motivation und Konzepte spaltenorientierter In-Memory DBs (IMDB)
OLAP/Cognos In-Memory Cubes und IMDB
Testszenario und –durchführung mit Oracle
Erkenntnisse/Folgerungen
Zusammenfassung
28Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
29. Testszenario mit Oracle DB
Daten: 60GB komprimiert sowie RAM: 60GB
• Testlauf 1: Zeilenorientierte Speicherung „Baseline“ mit Basic compression
• Testlauf 2: Spaltenorientierte Speicherung „Vergleich“ mit Low compression
• Verschiedene parallele Abfragen (simulieren User-Parallität)
• 3 Datenmodelle
29Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
30. Testzenario – 3 Datenmodelle
30Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Data Vault
Strukturierte
Modellierung
für das Core
Warehouse
Star
Fakten und
Dimensionen
typisch für
Data Mart
Layer
Flat
Flache
Tabelle =
MeinExcel
31. Testzenario – 3 Datenmodelle (Auszug Datenmodell)
31Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Data Vault Star Flat
32. Testszenario – Abfragen (Beschränkung auf Standard-
Abfragen)
Typ 1
•Simuliert Report-Einstieg
•Keine where-Bedingung, Aggregation auf höchster Ebene
Typ 2
•Simuliert Drill Down von Typ 1
•1-2 where-Bedingungen
Typ 3
•Simuliert Drill Down von Typ 2
•3-4 where-Bedingungen
32Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
4 parallele Sessions
führen Abfragen aus in der Reihenfolge
Typ1->Typ2->Typ3->Typ3->Typ2->Typ3->Typ3
Verhältnis Häufigkeit Typ1:Typ2:Typ3 = 1:2:4
33. Testszenario mit Oracle DB
Daten: 60GB komprimiert sowie RAM: 60GB
• Testlauf 1: Zeilenorientierte Speicherung „Baseline“ mit Basic
compression
• Testlauf 2: Spaltenorientierte Speicherung „Vergleich“ mit Low compression
• Verschiedene parallele Abfragen (simulieren User-Parallität)
• 3 Datenmodelle
33Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
34. 0
10
20
30
40
50
60
70
Data Vault Star Flat
Buffer Cache
Laufzeit (sek)
Buffer Cache
Größe (GB)
Testlauf 1: zeilenorientierte Speicherung, Cache
34Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
3 1 1 2 32
35. Testlauf 1: Bewertung
Ergebnis bestätigt die Erwartungen: Star Schema performant für Reporting
Star Schema (= empfohlene Modellierung für Standardreports im Data Mart)
• Klar beste Performanz und sehr gute Komprimierung (kleine Indexe)
Data Vault (eine mögliche Modellierung im Core Warehouse Layer)
• Schlechte Leseperformanz, da für Beladung optimiert
• Hash Keys verwendet, daher relativ großer Speicherverbrauch
Flat
• Hohe Datenmenge aufgrund großer Redundanz
35Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
36. Testszenario mit Oracle DB
Daten: 60GB komprimiert sowie RAM: 60GB
• Testlauf 1: Zeilenorientierte Speicherung „Baseline“ mit Basic compression
• Testlauf 2: Spaltenorientierte Speicherung „Vergleich“ mit Low
compression
• Verschiedene parallele Abfragen (simulieren User-Parallität)
• 3 Datenmodelle
36Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
37. 0
5
10
15
20
25
30
Data Vault Star Flat
IMDB
Laufzeit (sek)
IMDB
Größe (GB)
Testlauf 2: spaltenorientierte Speicherung, Cache
37Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
3 2 1 1 23
38. Vergleich Testlauf 1 und Testlauf 2
38Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
0
5
10
15
20
25
30
35
40
45
Data Vault Star Flat
Buffer Cache
Laufzeit (sek)
IMDB
Laufzeit (sek)
0
10
20
30
40
50
60
70
Data Vault Star Flat
Buffer Cache
Größe (GB)
IMDB
Größe (GB)
Laufzeit Cache Größe
39. Testlauf 2: Bewertung 1(2)
Ergebnis (Anmerkung: Indexe gelöscht außer PK, UK, FK)
Star Schema
• Gute Performanz und gute Komprimierung
Data Vault
• Performanzverbesserung beim Lesen
Flat
• Beste Performanz in diesem Beispiel! Jedoch nicht unbedingt empfehlenswert
zukünftig so zu modellieren!
39Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
40. Testlauf 2: Bewertung 2(2)
• Testläufe sind nicht beliebig zu verallgemeinern, zeigen aber Vor/Nachteile auf. Es gibt auch
Ausreißer.
• Ergebnis stark abhängig von Anzahl Typ1 / Typ2 / Typ3 Abfragen
• Viele Typ3-Abfragen = gut für Spaltenorientierung und Flat-Tabellen
• Viele Typ1-Abfragen = geringer/kein Vorteil für Spaltenorientierung
• Testen, Testen, Testen bei Migration in eine spaltenorientierte In-Memory DB.
• Nicht immer Performanzvorteile
• Oft ist das Problem in der Anwendung und nicht in der DB
40Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
41. Gliederung
Motivation und Konzepte spaltenorientierter In-Memory DBs (IMDB)
OLAP/Cognos In-Memory Cubes und IMDB
Testszenario und –durchführung mit Oracle
Erkenntnisse/Folgerungen
Zusammenfassung
41Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
42. • Data Vault Hub-Tabelle H_CUSTOMER mit Hash-Keys
• Schmale Tabelle mit eindeutigen Hash-Keys und eindeutigen Business-Keys
• Tabellen mit solchen Daten (nicht nur bezogen auf Data Vault) sind
ungeeignet für Dictionary-Compression
Ausreißer Komprimierung am Beispiel Hub-Tabelle
Größe in GB Verfahren
9 GB Buffer Cache, Basic compression
9.7 GB (größer!) IMDB, FOR QUERY LOW compression
8.4 GB IMDB, FOR QUERY HIGH compression
42Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
43. Allgemeine Faustformel
The greater the ratio of
the total data accessed by a query to
the data actually processed by the query,
the greater the potential benefit from IMDB.
Quelle: Oracle White Paper: When to use Oracle IMDB
43Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
44. Anzahl selektierter Spalten
44Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Beschreibung Gut geeignet für
Spalten InMemory
Weniger geeignet für
Spalten InMemory
Je mehr Spalten abgefragt
werden, umso geringer ist der
Vorteil des spaltenorientierten
Zugriffs. Bei der
Modellierung im BI Tool
darauf achten, dass nicht
automatisch select *
verwendet wird
SELECT cust_name FROM
customer;
SELECT * FROM customer;
45. Anzahl zurückgelieferter Zeilen
Beschreibung Gut geeignet für
Spalten InMemory
Weniger geeignet für
Spalten InMemory
Je mehr Zeilen zurückgeliefert
werden, umso geringer ist der
Vorteil des spaltenorientierten
Zugriffs, da die
Werteübergabe zum BI
Server und der
Berichtaufbau die
Performanz dominiert.
SELECT sum(revenue)
FROM sales;
SELECT revenue FROM
sales;
45Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
46. Komplexe SQL-Funktionen (Expressions)
Beschreibung Gut geeignet für
Spalten InMemory
Weniger geeignet für
Spalten InMemory
Rechenintensive SQL-
Funktionen sind weniger
geeignet, da die Performanz
für die Berechnung benötigt
wird.
SELECT I.id,
sum(S.revenue)
FROM Sales S, Items I
WHERE S.item_id = I.id
AND
I.name LIKE “%LED%TV”
GROUP BY I.id;
SELECT I.id,
sum(S.revenue)
FROM Sales S, Items I
WHERE S.item_id = I.id
AND
MyMatch(I.name,”LED
TV”)=1
GROUP BY I.id;
46Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
47. DWH Reference Architecture PoC
47Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Backend
Frontend
Acquisition Layer (Input Layer)
Core Warehouse Layer (Storage Layer)
Information Mart Layer (Output Layer)
Cognos BI Cognos SPSS / R
Star Cognos Cubes
Data Vault
Keine FK, PKFlat
48. Use Case: Standardreporting
IMDB Cognos Dynamic Cubes (OLAP)
Skalierbar Skalierbar
Wenn IMDB-Cache voll, wird der
Buffercache verwendet
Nur Membercache und Aggregatecache
kritisch (alle Daten müssen reinpassen).
Faktendaten müssen nicht in den Cache
(Abhängigkeit von der DB-Performanz; IBM
empfiehlt Einsatz IMDB)
DML-Operationen verlangsamen Aktualität Kompletter Refresh: dauert täglich länger
mit größer werdender Datenmenge
(RealTime Differential Refresh möglich)
48Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
49. Use Case: Ad-hoc Reporting
49Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
• Cubes sind nicht für ad-hoc geeignet. OLAP Cubes setzen bekannte Abfragen
voraus, deren Daten zuvor festgelegt/implementiert werden müssen.
50. Use Case: Flexibilität und Virtualisierung
50Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
• Information / Analytics Mart Layer besteht nur aus Views auf Tabellen im
Core Warehouse Layer
• Einschätzung nach
Performanztests:
Vereinzelt machbar
mit guter Performanz
51. Gliederung
Motivation und Konzepte spaltenorientierter In-Memory DBs (IMDB)
OLAP/Cognos In-Memory Cubes und IMDB
Testszenario und –durchführung mit Oracle
Erkenntnisse/Folgerungen
Zusammenfassung
51Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
52. OLAP Cubes / Cognos Dynamic Cubes
Use Cases werden weniger
• Sinnvoll bei rechenintensiven KPIs (Aggregation, Expression Cache)
• Sinnvoll, wenn Abfragen komplett feststehen (reines Standardreporting)
• Keine weitere Lizenz nötig sobald Cognos BI lizensiert
• Cognos Dynamic Cubes: Nicht alle Daten müssen im Cache gehalten werden
(nur Member + Aggregate)
• Zugriff auf DB bei Daten, die nicht im Cognos Cache sind
• Performanz schwankt, je nach DB-Performanz
52Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
53. OLAP, OLTP und OLTAP
OLAP
OLTP
OLTAP –
gemischte
Workloads
53Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
• großes Potential für spaltenorientierte In-Memory DBs
• auch mit reinen Views als Data Marts denkbar („Datenvirtualisierung“)
• vereinzelt sinnvoll, z.B. große Stammdatentabellen
• große Herausforderung in der Vergangenheit
• Potential für spaltenorientierte In-Memory DBs
• aber: gegenläufiger Trend Microservices = „kleinere“ DBs
54. One size does not fit all
„In 10 years there will be no row
stores in the data warehouse world.“
Quelle: Stonebreaker, O'Reilly webcast http://radar.oreilly.com/2015/06/the-future-of-data-at-scale.html
54Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
55. Vielen Dank!
55Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Daimler TSS GmbH
Wilhelm-Runge-Straße 11
89081 Ulm
Telefon +49 731 505-06
Fax +49 731 505-65 99
tss@daimler.com
Internet: www.daimler-tss.com
Daimler TSS GmbH
Sitz und Registergericht: Ulm, HRB-Nr.: 3844
Geschäftsführung: Dr. Stefan Eberhardt (Vorsitzender), Steffen Bäuerle
Jobportal
https://jobs.daimler-tss.de/PORTAL/jobs.html
z.B.:
56. In-Memory: IBM, Microsoft, Oracle, SAP 1(3)
SQL Server IBM DB2 BLU Oracle IMDB SAP HANA
Ersteinführung 07/2014 06/2013 04/2014 10/2010
Befehl zur
Erzeugung der
spaltenorienti
erten Tabelle
Create index … Create table … Eigenschaft
einer Tabelle
Create table …
56Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
57. In-Memory: IBM, Microsoft, Oracle, SAP 2(3)
SQL Server IBM DB2 BLU Oracle IMDB SAP HANA
Datenkomprim
ierung
Ja Ja Ja Ja
Data Skipping Ja Ja Ja Ja
Datenhaltung • Zeilen (In-
Memory
Organized
Tables)
• Spalten
(Columnstor
e Index)
• Zeilen und
Spalten
(Column-
organized
Tables oder
Schattentab
ellen)
• Zeilen und
Spalten
simultan
(BufferCache
für Zeilen)
• Zeilen und
Spalten
(Spalten
präferiert)
57Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
58. In-Memory: IBM, Microsoft, Oracle, SAP 3(3)
SQL Server IBM DB2 BLU Oracle IMDB SAP HANA
In-Memory
Analytics / R
Ja Nein Ja Ja
Persistenz
Columnstore
Ja Ja Nein Ja
Aggregate
Pushdown
Ja (ab 2016) Ja
Limitierung
durch RAM
Nein Nein Nein Nein (nicht
mehr)
SIMD Ja Ja Ja Ja
58Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
59. 1 Technologie - 4 Hersteller – 4 Implementierungen
Spaltenorientierte
IM DB
RAM
(In-Memory)
Spalten-
orientierung
KomprimierungData Skipping
SIMD
59Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
60. SAP HANA
Aufhebung Trennung operative
(OLTP) und analytische (OLAP)
Workloads
60Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
61. Workload OLTP und OLAP
61Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Quelle: http://www.vldb.org/pvldb/vol5/p061_jenskrueger_vldb2012.pdf
62. SAP Hana
62Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Eine Tabelle ist
entweder
zeilenorientiert
oder
spaltenorientiert.Row Store
Column Store Delta L2 Delta L1
Select + DML
DML
Select
Logs Snapshots
63. IBM DB2 BLU
Seven Big Ideas
63Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
64. IBM DB2 BLU – 7 Big Ideas
64Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Big Idea 1: Simplicity and ease of use
Big Idea 2: Column store
Big Idea 3: Adaptive compression
Big Idea 4: Parallel vector processing (SIMD)
Big Idea 5: Core-friendly parallelism
Big Idea 6: Scan-friendly memory caching
Big Idea 7: Data skipping
65. IBM DB2 BLU – Variante 1: OLAP
65Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Eine Tabelle ist
entweder
zeilenorientiert
oder
spaltenorientiert.
66. IBM DB2 BLU – Variante 2: OLTAP (Schattentabellen)
66Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Eine Tabelle ist
zeilenorientiert
und
spaltenorientiert.
67. MS SQL Server
Dedizierte In-Memory stores für
OLTP und OLAP
67Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
68. MS SQL Server – NonClustered Columnstore Index
68Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Eine Tabelle
(„Index“) ist
zeilenorientiert
und
spaltenorientiert.
69. MS SQL Server – Clustered Columnstore Index
69Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Eine Tabelle
(„Index“) ist
entweder
zeilenorientiert
oder
spaltenorientiert.
70. Oracle
Das duale Format in der Datenbank
70Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
71. Oracle – Buffer Cache (row) and IMDB (columnar)
71Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Row Store Column Store
Logs Datendateien
Eine Tabelle ist
zeilenorientiert
und
spaltenorientiert.
Row Store
DML
Select
73. RDBMS vs OLAP vs IMDP
Datenmodell Abfrage-
Sprache
Interaktion Vorteile
RDBMS Star-Schema SQL Abfrage und
Antwort
Skalierbar
Flexibel
OLAP Cube MDX Interaktiv Performant
IMDB Star-Schema
Oder andere
relationale
Form
SQL Interaktiv Skalierbar
Flexibel
Performant
73Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
RDBMS (In-Memory) nähert sich OLAP Cubes an (interaktiv, schnell)
74. Selektivität von Join-Bedingungen
Beschreibung Gut geeignet für
Spalten InMemory
Weniger geeignet für
Spalten InMemory
Selektive Join-Bedingungen
nutzen den Vorteil des
schnellen Filterns von Daten.
SELECT
S.id, P.name, S.revenue
FROM
Sales S, Products P
WHERE
S.prod_id=P.id AND
P.type=‘Footwear’;
SELECT
Si.d, S.revenue, P.name
FROM
Sales S,Products P
WHERE
S.prod_id=P.id;
74Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
75. Anzahl der Tabellen im Join
Beschreibung Gut geeignet für
Spalten InMemory
Weniger geeignet für
Spalten InMemory
Je größer die Anzahl der
Tabellen im Join ist, umso
geringer ist der Vorteil, da die
Performanz für den Join
benötigt wird.
Aber typisch im Reporting!
SELECT <select list>
FROM Sales, Products,
Customers
WHERE <join condition>
SELECT <select list>
FROM Sales, Products,
Customers, Shipments,
Stores, Suppliers,
Warehouses
WHERE <Join Condition>
75Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
76. Selektivität von Spalten-Prädikaten
Beschreibung Gut geeignet für
Spalten InMemory
Weniger geeignet für
Spalten InMemory
Selektive Prädikate
nutzen den Vorteil des
schnellen Filterns von
Daten.
SELECT MEDIAN(revenue)
FROM Sales
WHERE revenue < 2;
Vorteilhaft, da weniger Zeilen
und dadurch weniger Daten für
die Median-Berechnung nötig
sind.
SELECT MEDIAN(revenue)
FROM Sales
WHERE revenue > 2;
76Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
77. OLTP - Mögliche Anwendungsfälle
Sinnvoll bei
• Größeren Stammdatentabellen
• Weniger Indexe
• Vermeidung ständiges Tuning dieser Tabellen
• Klassiker: Adress-Suche (siehe folgendes Beispiel)
Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
79. Herausforderung Suchabfrage: Müller AND Berlin
Buckenhofer: ca. 100
Müller: ca. 700.000
Berlin: ca. 3.5 Mio
Dornstadt: ca. 8.500
79Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Buck
enho
fer
Berlin Müller Dornst
adt
Müller Berlin
21 12
? ?
1 2 = Reihenfolge der Abarbeitung / Joins
Kleine Tabelle zuerst
80. Lösungsansätze Adress-Suche
• Materialized Views
• Text Index
• Bitmap Join Index
• Index Backbone Join: Patent US8103658 (Lothar Flatz, Bjorn Kisbye Engsig)
http://www.google.com/patents/US8103658
• Spaltenorientierte In-Memory DB
80Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015