1 Caching: In-Memory Column Store oder BI Server? Andreas Buckenhofer / Analytics / Daimler TSS 1 Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015 Zur Person Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015 Andreas Buckenhofer Senior DB Professional E-Mail: [email protected]Seit 2009 bei Daimler TSS im Fachgebiet Data Warehouse & Data Integration (Cognos/Informatica) – Department Analytics Schwerpunkt DWH/CRM seit 1998 als • Entwickler • Administrator • Berater
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
Zur Person
Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
im Fachgebiet Data Warehouse & Data Integration (Cognos/Informatica) –Department Analytics
Schwerpunkt DWH/CRM seit 1998 als
• Entwickler
• Administrator
• Berater
2
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
Standorte Daimler TSS
4Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
3
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 prescriptiveAnalytics 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.
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
4
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
PrescriptiveAnalytics
Star OLAP
3NF Data Vault
Keine FK, PKFlat
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
5
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
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
6
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
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 RAM1/2015
2/2015
…
1/2013
…
12/2014
<= 12/2012
Wenig genutzte Daten
Häufig genutzte Daten
7
Spaltenorientierung … nicht ganz so neu
13Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
1993 1995 > 2004
KDBSybase IQ
(heute SAP)
Relational:MonetC-StoreVertica
Greenplum(Nicht-Relational:
BigTableHBASE
Cassandra)
Spaltenorientierung: Speicherung Zeilen- vs Spalten
14Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
Id Name Geburtsdatum
1 Maier 1967
2 Schmitt 1980
3 Maier 1993
4 Berger 1980
5 Müller 1967
6 Maier 1970
7 Müller 1980
Spaltenorientierte Speicherung
1, Maier, 1967, 2 Schmitt, 1980, 3
Maier, 1993, 4, Berger, 1980, 5
Müller, 1967, 6, Maier, 1970, …
1, 2, 3, 4, 5, 6, 7, …
Maier, Schmitt, Maier, Berger,
Müller, Maier, Müller, …
Zeilenorientierte Speicherung
Block / Page / In-Memory Unit
8
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/PerformanteUpdates 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
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.
9
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
• 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
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
21
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
• 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
22
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
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;
23
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
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.idAND MyMatch(I.name,”LEDTV”)=1GROUP BY I.id;
46Caching: In-Memory Column Store oder BI Server? | Analytics | 18-Nov-2015
24
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
Use Case: Standardreporting
IMDB Cognos Dynamic Cubes (OLAP)
Skalierbar Skalierbar
Wenn IMDB-Cache voll, wird der Buffercache verwendet
Nur Membercache und Aggregatecachekritisch (alle Daten müssen reinpassen). Faktendaten müssen nicht in den Cache (Abhängigkeit von der DB-Performanz; IBM empfiehlt Einsatz IMDB)