In Memory

Werbung
Oracle In-Memory
Warum, Was und Wie!
Oracle Database In-Memory Option
Detlef E. Schröder, dbus Anwenderdialog 2015, 27. Januar 2015
Leitender Systemberater
STCC DB Mitte
Oracle Deutschland B.V. & Co KG
Deutschsprachige DWH Community
ww.oracledwh.de
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
WARUM In Memory Datenbank
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
2
Anforderungsentwicklung an Datenbanken
• Mehr Daten
• Unterschiedliche Daten
• Schnellere Datenbereitstellung
• Verknüpfung von Prozessen
• HW Entwicklung und Kosten Entwicklung
•  Eine beachtliche Lösung für viele Aspekte dieser Anforderungen ist
• In Memory
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
3
In-Memory Technologie
- In-Memory liegt in der DNA eines jeden Datenbankherstellers
- In-Memory-ONLY- Datenbanken sind heute Spezialsysteme
- In-Memory-ONLY- Systeme werden ein abgestuftes Speicherkonzept
einführen müssen, es macht keinen Sinn 80%+ „kalte Daten“ im teueren
Hauptspeicher zu halten.
- denn ‚One-Trick Ponys‘ werden nicht überleben
- In-Memory ist in aller Munde, ist omni-präsent, ist „everybodies darling“
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
In-Memory Technologie
In-Memory Technologie und In-Memory Datenbanken sind nicht neu.
Columnar-Technologie bei Datenbanken ist keine Erfindung der letzten
vier Jahre.
Oracle ist ein Pionier im Bereich In-Memory Technologie.
Was noch fehlte :
„In-Memory (Columnar) Datenbank“ - Technologie
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
WAS Hat Oracle in der DB gemacht
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
6
Datenbank wahlweise
im Hauptspeicher
Keine Änderung der
Anwendung
Spaltenorientiert
Komprimiert
Parallelisierung
Nutzt bestehende
DB-Architektur und
Funktionalität
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
Dual Format Database
Memory
Memory
•
Beides Row- und Column- Format
für dieselbe Tabelle
• Gleichzeitiges Lesen und Updaten,
gesicherte Transaktionen
F_UMSATZ
F_UMSATZ
Row
Format
Column
Format
• Optimizer wählt optimalen Zugriff
• Analytics & Reporting können InMemory Column-Format
nutzen
• OLTP-Anwendungen mit
umfangreicher Satzverarbeitung
nutzen bewährtes Row Format
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
8
Oracle In-Memory Columnar Technology
Reines In-Memory Columnar
• In-Memory-Variante der Daten
• Persistent über Disk-Variante
• Updates direkt persistiert
• Schnelle Updates
•
SALES
2x to 20x Komprimierung
• Tabellen, Partitionen, MAVs, Indexe
DATA WAREHOUSE
• Laden durch Hintergrundprozesse
• Auf jeder Hardware möglich
•
Bei erstmaligem Lesen oder Datenbank-Startup
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
9
spaltenbasiert vs. zeilenbasiert
Select
sum (Umsatz)
Kunden_ID,
Region_ID,
Zeit_ID
from F_Umsatz
where
Artikel_ID = 10
Artikel_ID Kunden_ID
Zeit_ID Region_ID
Kanal_ID UMSATZ MENGE UMSATZ_GESAMT
Select
sum (Umsatz)
from F_Umsatz
where
Artikel_ID = 10
Select
max(Umsatz)
from F_Umsatz
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
Compression Unit (CU) Index
Select
sum (Umsatz)
Kunden_ID,
Region_ID,
Zeit_ID
from F_Umsatz
where
Artikel_ID = 10
Artikel_ID Kunden_ID
Select
sum (Umsatz)
from F_Umsatz
where
Artikel_ID = 10
CU
Select
max(Umsatz)
from F_Umsatz
CU
Zeit_ID Region_ID
Kanal_ID UMSATZ MENGE UMSATZ_GESAMT
max
min
max
min
max
min
max
min
max
min
max
min
CU
CU
CU
CU
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
Vektor-Scans
Memory
REGION
Example:
Finde alle Verkäufe
In der Region CA
• SIMD Vektor Instruktionen
CPU
Vector Register
CA
Load
multiple
region
values
• Jeder CPU Kern liest einzelne
In-Memory Columns
CA
CA
Vector
Compare
all values
an 1 cycle
• Milliarden von
Sätzen/Sekunde/Core
CA
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
12
Join-Verfahren: Bloom-Filter
Example: Find all orders placed on Christmas eve
LINEORDER
Amount
Datekey is
24122013
DateKey
DateKey
Date
DATE_DIM
• Erstellen von Filtertabellen
(Bloom-Filter)
Type=d.d_date='December 24, 2013'
Sum
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
13
In-Memory Aggregation
Example: Report sales of footwear in outlet stores
Products
In-Memory
Report Outline
Sales
• Dynamisches Erstellen von In-
Memory Aggregat-Objekten
Footwear
Stores
Outlets
Outlets
Footwear
$
$$
$
$$$
Sales
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
14
Es ist nur ein Schalter!! – Kein Migrationsprojekt
D_KUNDE
D_ARTIKEL
ARTIKEL_NAME
GRUPPE_NR
GRUPPE_NAME
SPARTE_NAME
SPARTE_NR
ARTIKEL_ID
PK
D_ZEIT
DATUM_ID
TAG_DES_MONATS
TAG_DES_JAHRES
WOCHE_DES_JAHRES
MONATS_NUMMER
MONAT_DESC
QUARTALS_NUMMER
JAHR_NUMMER
ZEIT_ID
PK
D_REGION
REGION_ID
PK
ORTNR
ORT
KREISNR
KREIS LANDNR
LAND
REGIONNR
REGION
F_UMSATZ
FK
ARTIKEL_ID
FK
KUNDEN_ID
ZEIT_ID
FK
REGION_ID
FK
KANAL_ID
FK
UMSATZ
MENGE
UMSATZ_GESAMT
50 Mio
Sätze
D_VERTRIEBSKANAL
PK
KANAL_ID
VERTRIEBSKANAL
KANALBESCHREIBUNG
VERANTWORTLICH
KLASSE
PK: Btree Index
FK: Bitmap Index
PK
KUNDEN_ID
KUNDENNR
GESCHLECHT
VORNAME
NACHNAME
TITEL
ANREDE
GEBDAT
BRANCHE
WOHNART
KUNDENART
BILDUNG
ANZ_KINDER
EINKOMMENSGRUPPE
ORTNR NUMBER,
BERUFSGRUPPE
STATUS
STRASSE
TELEFON
TELEFAX
KONTAKTPERSON
FIRMENRABATT
BERUFSGRUPPEN_NR
BILDUNGS_NR
EINKOMMENS_NR
WOHNART_NR
HAUSNUMMER
PLZ
ORT
KUNDENKARTE
ZAHLUNGSZIEL_TAGE
TOTAL
TOTAL_NR
• Laden in den InMemory-Speicher:
Einfaches Markieren
• Danach einmal anfassen
Alter
Alter
Alter
Alter
Alter
Alter
table
table
table
table
table
table
F_UMSATZ INMEMORY;
D_ZEIT
INMEMORY;
D_VERTRIEBSKANAL INMEMORY;
D_REGION INMEMORY;
D_KUNDE INMEMORY;
D_ARTIKEL INMEMORY;
CREATE TABLE F_UMSATZ ……
PARTITION BY RANGE ……
(PARTITION p1 ……
INMEMORY NO MEMCOMPRESS
PARTITION p2 ……
INMEMORY MEMCOMPRESS FOR DML,
PARTITION p3 ……
INMEMORY MEMCOMPRESS FOR QUERY,
:
PARTITION p200 ……
INMEMORY MEMCOMPRESS FOR CAPACITY
);
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
In-Memory im Data Warehouse
• Komplexe Abfragen auf viele Daten
–
–
–
–
mit mehreren Joins
Sub-Selects
Groupings
Analytische Funktionen
Keine repräsentative Hardware: Laptop mit Intel i5-3320M 2,6 GHz CPU und 4 GB In-Memory-Storage
Beispielabfrage
Subselect
Ohne In-Memory
Analytic
Grouping
Functions
P1
P4
Mit In-Memory
P1
P4
#Joins
#Where
Condition
Umsatz pro Region, Zeit,
Vertriebskanal, , Berufsgruppe
Sortiert nach Kriterien (Abf. 2)
5
5
-
1
1
14,35
27,00
1,10
0,53
Stärkster Umsatzmonat pro
Bundesland in 2010 (Abf. 8)
3
2
1
3
2
26,66
35,03
1,00
0,54
Top 10 Artikel bezogen auf
Umsatz in einem Jahr pro
Bundesland in 2010 (Abf. 10)
4
3
1
4
3
23,14
32,03
3,02
1,55
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
Nach Umsatzstärke sortierte Quartals-Rangfolge
select sum(u.umsatz) Umsatz,
z.Jahr_nummer Jahr
,z.Quartals_nummer Quartal,
RANK() OVER (PARTITION by z.Jahr_nummer
ORDER BY sum(U.umsatz) ASC ) AS Rangfolge
from
f_umsatz u,
d_zeit z
where
z.zeit_id = u.zeit_id and
z.Jahr_nummer between 2006 and 2011
group by z.Jahr_nummer,z.Quartals_nummer
order by z.Jahr_nummer,Rangfolge;
UMSATZ
JAHR
QUARTAL RANGFOLGE
---------- ---------- ---------- ---------6174959616
2006
3
1
6179076096
2006
1
2
6330781696
2006
4
3
6366562304
2006
2
4
5904742400
2007
1
1
6080256000
2007
2
2
6495115264
2007
4
3
6689013760
2007
3
4
6158342144
2008
2
1
6399057920
2008
4
2
6510661632
2008
3
3
6592911360
2008
1
4
6224371712
2009
3
1
6267443200
2009
1
2
6270103552
2009
2
3
6762235904
2009
4
4
6024929280
2010
1
1
6096072704
2010
4
2
6145820672
2010
3
3
6162663424
2010
2
4
6066087936
2011
1
1
6127532032
2011
2
2
6157582336
2011
3
3
6500706304
2011
4
4
6157582336
2011
3
3
6500706304
2011
4
4
24 Zeilen ausgewählt.
Abgelaufen: 00:00:00.91
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
Was ist passiert?
---------------------------------------------------------------------------------------------------| Id | Operation
| Name
|Rows |Bytes|Cost(%CPU)| Time
|
TQ |IN-OUT|
---------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT
|
|
1 |
4 | 76 (98)| 00:00:01 |
|
|
| 1 | SORT AGGREGATE
|
|
1 |
4 |
|
|
|
|
| 2 |
PX COORDINATOR
|
|
|
|
|
|
|
|
| 3 |
PX SEND QC (RANDOM)
| :TQ10000 |
1 |
4 |
|
| Q1,00 | P->S |
| 4 |
SORT AGGREGATE
|
|
1 |
4 |
|
| Q1,00 | PCWP |
| 5 |
PX BLOCK ITERATOR
|
| 207M| 793M| 76 (98)| 00:00:01 | Q1,00 | PCWC |
| 6 |
TABLE ACCESS INMEMORY FULL| F_UMSATZ | 207M| 793M| 76 (98)| 00:00:01 | Q1,00 | PCWP |
---------------------------------------------------------------------------------------------------Statistiken
48 recursive calls
0 db block gets
2111 consistent gets
0 physical reads
0 redo size
368 bytes sent via SQL*Net to client
495 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
Stärkster Umsatzmonat pro Bundesland
SELECT
*
FROM (SELECT
land Bundesland,
monat_desc Monat,
jahr_nummer Jahr,
sum(umsatz) as Umsatz,
RANK() OVER(PARTITION BY r.land
ORDER BY sum(u.umsatz) DESC) AS rangfolge
FROM
d_zeit z,
d_region r,
f_umsatz u
WHERE
z.zeit_id = u.zeit_id
AND r.region_id = u.region_id
AND z.jahr_nummer = '2010'
GROUP BY r.land, z.monat_desc, jahr_nummer
ORDER BY jahr_nummer
)
WHERE
rangfolge < 2
order by Bundesland;
• Analytische Funktion
• Interne Bildung von Summen
• Danach einmal anfassen
BUNDESLAND
MONAT
JAHR
UMSATZ RANGFOLGE
-------------------------------------------------- ------------ --------Baden Wuerttemberg
Oktober
2010 255578112
1
Bayern
MΣrz
2010 643506176
1
Berlin
November
2010
10225664
1
Bremen
September
2010
7036928
1
Hamburg
Juni
2010
7071744
1
Hessen
April
2010 120686592
1
Niedersachsen
April
2010 317964288
1
Nordrhein Westfalen
Dezember
2010 121647104
1
Rheinland Pfalz
Juni
2010 614266880
1
Saarland
Juni
2010
17817600
1
Schleswig Holstein
Oktober
2010 355862528
1
11 Zeilen ausgewählt.
Abgelaufen: 00:00:00.45
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
WIE Setze ich es ein
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
20
Oracle In-Memory Advisor
• New In-Memory Advisor
• Analysiert bestehenden DB
Workload über AWR & ASH
Repository
• Liefert eine Liste von Objekten,
die am meisten von InMemory-Colume-Storage
profitieren
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
Zunächst ein wichtiges Prinzip:
Verteilung von Tabellendaten über die Speicherhierarchie
Umsatzdaten
DISK
SSD
Flash
In Memory
Juni 14
Juni 14
Mai 14
Mai 14
April 14
April 14
März 14
März 14
Februar 14
Februar 14
Januar 14
Januar 14
Dezember 13
Dezember 13
November 13
November 13
Oktober 13
Oktober 13
September 13
September 13
August 13
August 13
Juli13
Juli13
Juni 13
Juni 13
April 13
April 13
März 13
März 13
Februar 13
Februar 13
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
22
An welchen Stellen macht In-Memory im DWH Sinn
OLTP
Systeme
Disk-Daten
In Memory
Integration
Layer
Temporäre
Daten
T
Enterprise Layer
Core - DWH / Info Pool
User View
Layer
Alle Dimensionen
Referenzdaten
R
R
R
Bei sehr großen
Dimensionen nur die
am häufigsten genutzten
Spalten
Stammdaten
S
S
S
Die aktuellen
Partitionen
T
Partitionierte
Transaktionsdaten
nur wenn sie
abgefragt werden
Vorberechnete
Kennzahlen
C
Q
A
A
L
MJ
Data Mining
Statistikdaten
Operational Data
Oracle R
In-Memory
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
Enge Verzahnung von OLTP und DWH wird möglich
OLTP
Systeme
Disk-Daten
In Memory
Integration
Layer
Temporäre
Daten
T
T
Ermöglichen von
Realtime-Reporting und Realtime-ETL
• Kein expliziter Ladevorgang für Transaktionsdaten
• Gelesen wird die In-Memory-Version während
das OLTP-System klassisch die Disk-Version der
Daten beschreibt
• Operational Data Stores entfallen, wenn sie nur
OLTP-Daten 1:1 bereitstellen.
(Wenn machbar können operative Daten direkt gelesen werden)
Operational Data
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
Ist In Memory nur etwas für große Systeme?
• Nein
• Vor allem auch kleinere
Umgebungen profitieren
Ohne Inmemory
Mit Inmemory
Potenzielles Leistungsvermögen
200 MB / Sec / Core = 1,6 GB / Sec
PARALLEL 4 optimal
Potenzielles Leistungsvermögen
200 MB / Sec / Core = 1,6 GB / Sec
PARALLEL 16 optimal
• Sie haben oft kein eigenes
Storage-System, sondern
hängen am SAN und
konkurrieren mit vielen OLTPAnwendungen
• Das SAN wirkt oft als
„IO-Bremse“
• Mit In-Memory machen sich
kleinere Systeme
IO-unabhängig!
> 5 GB / Sec
In Memory
Column Store
700 MB / Sec
700 MB / Sec
Andere
OLTP
Anwendungen
SAN
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Andere
OLTP
Anwendungen
SAN
DATA WAREHOUSE
25
Oracle Database
• Fine Grained Security
• Fine Grained Auditing
• XML / JSON / Spatial / Graph – Objekte in einer Datenbank
• Online-Backup
• Restore mit variabler Granularität
• InDatabase ETL
• Flashback: Rückholbarkeit von Änderungen über n Tage hinweg
• InDatabase Data Mining
• Embedded R mit transparenter R-Funktionalität in der Datenbank
• Single SQL-Access auf RDMBS-Tabellen und HDFS-Files bzw. noSQL-DB-Objekte
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
26
Server
CPU & RAM
Oracle Cloud Control 12c
Oracle 12.1.0.2
Operating System
InMemory
Pluggable DBe
Pluggable DBc
Pluggable DBb
Pluggable DBa
Oracle 12.1.0.2
In-Memory Technologien und Konsolidierung …
? neues Betriebsmodell
? Reifegrad unter Last
- einige Anpassung
- zus. Lizenzen
+ bessere Ressourcenverwaltung
+ dynamische Res.Verteilung
+ weniger Administration
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
DATA WAREHOUSE
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
http://www.oracledwh.de
 Community
 Newsletter
 Konferenz
 Seminare
 Self study
 und mehr
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
DATA WAREHOUSE
29
30
Herunterladen