More than Just Lines on a Map: Best Practices for U.S Bike Routes
Obvladovanje podatkovne eksplozije z uporabo kompresije in particioniranja
1.
Obvladovanje
podatkovne
eksplozije
z
uporabo
kompresije
in
par5cioniranja
v
Oracle
bazi
skozi
prakso
www.tusmobil.si
Ognjen
Antonič,
Tušmobil
ognjen.antonic@tusmobil.si
hAp://www.tusmobil.si
2. Na
kratko
o
Tušmobilu
www.tusmobil.si
2
-‐
Tretji
mobilni
operater
na
slovenskem
trgu
-‐
Na
trgu
že
5
let,
od
konca
leta
2007
-‐
Več
kot
250
5soč
ak5vnih
mobilnih
uporabnikov
3. Oracle
Baza
@
Tušmobil
www.tusmobil.si
3
-‐
Oracle
10.2
Enterprise
Edi5on
Real
Applica5on
Clusters
-‐
Red
Hat
Enterprise
Linux
-‐
2
node
Intel
Xeon
based
server
cluster
-‐
>
5
TB
podatkov
4. Strežniki
www.tusmobil.si
4
2
x
IBM
x3650
2
x
Intel
Xeon
Dual
Core
3.16
GHz
48
GB
memory
Max
SGA
Size
24
GB
Automa5c
Shared
Memory
Management
Red
Hat
Enterprise
Linux
4
(Nahant
Update
8)
mul5ple
Gbit
ETH
and
4Gb
FC
Automa5c
Storage
Management
used
5. Storage
www.tusmobil.si
5
1
x
HP
XP
24000
ASM
upravljanje
64
GB
cache
za
Oracle
bazo
4
gbit
FC
bandwidth
(v
souporabi
z
ostalimi
aplikacijami
v
podjetju
)
6. Koncept
integrirane
baze
podatkov
www.tusmobil.si
6
-‐ Skupna
baza
za
obračunske
sisteme,
mediacijo,
middleware,
poročanje/DWH
-‐ Znižan
čas
in
stroški,
ki
so
potrebni
za
inves5cije
in
vzdrževanje
same
baze
podatkov
in
z
njimi
povezanih
sistemov
-‐ Centralizirana
varnost
in
sledenje
uporabnikom
-‐ Nižji
stroški
integracije
podatkov
(npr.
za
korelacijo
med
omrežnimi
in
billing
podatki,
se
samo
požene
poizvedba
znotraj
iste
baze)
7. Aplikacije,
ki
tečejo
na
Oracle
bazi
www.tusmobil.si
7
-‐
Oracle
Communica5ons
Billing
and
Revenue
Management
-‐
OLTP
-‐
Middleware
(JBoss)
-‐
OLTP
-‐
Media5on
(Media5on
Zone)
-‐
95%
batch
/
DWH
-‐
5%
OLTP
-‐ DWH
&
Repor5ng
Applica5ons
-‐
DWH
+
SAP
Business
Objects
XI
R2
9. ...
www.tusmobil.si
9
-‐
Rast
števila
ak5vnih
uporabnikov
-‐
Rast
števila
dogodkov,
ki
jih
opravi
povprečni
uporabnik
mobilnega
omrežja
-‐
Naraščajoča
uporaba
mobilnega
interneta
0,00
2,00
4,00
6,00
8,00
10,00
12,00
Tušmobil
tržni
delež
10. Rast
količine
zabeleženih
dogodkov
www.tusmobil.si
10
-‐
22%
letna
rast
števila
dogodkov
na
mesec
za
tradicionalne
storitve
(klici,
kratka
sporočila)
0
20.000.000
40.000.000
60.000.000
80.000.000
100.000.000
120.000.000
140.000.000
160.000.000
Število
dogodkov
na
mesec
(klici,
SMSi)
11. Eksplozija
uporabe
podatkovnih
storitev
www.tusmobil.si
11
-‐
128%
letna
rast
števila
dogodkov,
ki
jih
mesečno
zabeleži
omrežje
pri
uporabi
podatkovnih
storitev
0
10.000.000
20.000.000
30.000.000
40.000.000
50.000.000
60.000.000
70.000.000
80.000.000
90.000.000
100.000.000
Število
dogodkov
na
mesec
podatki
12. Rast
količine
obračunskih
podatkov
www.tusmobil.si
12
-‐
38%
letna
rast
dogodkov
in
zapisov
v
obračunskem
sistemu
(OLTP)
0
50.000.000
100.000.000
150.000.000
200.000.000
250.000.000
300.000.000
350.000.000
Zaračunani
dogodki
Zapisi
v
bazi
v
3NF
13. Zasedba
podatkov
v
bazi
www.tusmobil.si
13
Uporaba GByte Odstotek
DWH 3.609,59 69,25%
OLTP 1.603,15 30,75%
Skupaj 5.212,74 100,00%
3.609,59
1.603,15
Poraba
v
Gbyte
DWH
OLTP
14. Struktura
podatkov
po
5pu
segmenta
www.tusmobil.si
14
Segment
Type GByte Odstotek
TABLE
PARTITION 2.418,66 46,40%
INDEX
PARTITION 1.798,73 34,51%
TABLE 713,46 13,69%
INDEX 164 3,15%
OTHER 117,89 2,26%
Skupaj
5.212,74 100,00%
2.418,66
1.798,73
713,46
164
117,89
Poraba
v
GByte
TABLE
PARTITION
INDEX
PARTITION
TABLE
INDEX
OTHER
15. Obvladovanje
podatkovne
eksplozije
v
Oracle
bazi
na
Tušmobilu
www.tusmobil.si
15
-‐ Oracle
Par55oning
(par5cioniranje)
-‐ Oracle
Database
Compression
(kompresija)
16. Oracle
Par55oning
na
kratko
www.tusmobil.si
16
-‐ Omogoča
ločevanje
podatkov
v
tabelah
in/ali
indeksih
v
bazi
na
več
segmentov,
ki
so
posledično
lažje
obvladljivi
-‐ Omogoča
enostavno
upravljanje
z
življenjskim
ciklom
podatkov
-‐ Olajša
upravljanje
same
baze
podatkov,
kot
tudi
odzivnost
aplikacij,
oz.
SQL
17. Uporaba
par5cioniranja
na
Tušmobilu
www.tusmobil.si
17
-‐ Uporaba
časovnega
range
par55oning-‐a
kot
osnovnega
orodja
za
obvladovanje
velike
količine
podatkov
-‐ Podatki
so
par5cionirani
po
le5h,
četrtletjih,
mesecih
ali
pa
tudi
dnevno,
odvisno
od
količine
podatkov
v
posamični
tabeli
18. Primer
časovnega
range
par5cioniranja
www.tusmobil.si
18
partition by range (EVENT_TIME)!
(!
partition cdrs_201202 values less than (to_date('01.03.2012', 'dd.mm.yyyy')),!
partition cdrs_201203 values less than (to_date('01.04.2012', 'dd.mm.yyyy')),!
partition cdrs_201204 values less than (to_date('01.05.2012', 'dd.mm.yyyy')),!
partition cdrs_201205 values less than (to_date('01.06.2012', 'dd.mm.yyyy')),!
partition cdrs_201206 values less than (to_date('01.07.2012', 'dd.mm.yyyy')),!
partition cdrs_201207 values less than (to_date('01.08.2012', 'dd.mm.yyyy')),!
partition cdrs_201208 values less than (to_date('01.09.2012', 'dd.mm.yyyy')),!
partition cdrs_201209 values less than (to_date('01.10.2012', 'dd.mm.yyyy')),!
partition cdrs_201210 values less than (to_date('01.11.2012', 'dd.mm.yyyy')),!
partition cdrs_201211 values less than (to_date('01.12.2012', 'dd.mm.yyyy')),!
partition cdrs_201212 values less than (to_date('01.01.2013', 'dd.mm.yyyy’) ,!
partition cdrs_pmax values less than (maxvalue)!
);
19. Par5cioniranje
kot
orodje
za
upravljanje
z
življenjskim
ciklom
podatkov
www.tusmobil.si
19
-‐ Kompresiranje
in
premik
manj
ak5vnih
podatkov
na
cenejše
diskovje,
npr
RAID5
namesto
RAID10
-‐ Arhiviranje
ali
uničenje
starih
podatkov
20. Premik
na
cenejše
diskovje
s
kompresiranjem
www.tusmobil.si
20
!
ALTER TABLE mediation.records !
MOVE PARTITION RECORDS_201209 -- septemberski podatki!
TABLESPACE mediation_raid5 -- cenejše diskovje!
COMPRESS;!
!
!
!
--Če imamo indekse na tabeli, še te uredimo:!
ALTER TABLE mediation.records !
MODIFY PARTITION RECORDS_201209 !
REBUILD UNUSABLE LOCAL INDEXES;!
!
!
21. Arhiviranje,
oz.
umik
starih
podatkov
www.tusmobil.si
21
!
-- Premik podatkov v arhivsko tabelo!
ALTER TABLE mediation.records !
EXCHANGE PARTITION RECORDS_201109!
WITH TABLE mediation_archive.records;!
!
--Truncate podatkov v stari particiji!
ALTER TABLE mediation.records !
TRUNCATE PARTITION RECORDS_201109;!
!
--Drop stare particije!
ALTER TABLE mediation.records !
DROP PARTITION RECORDS_201109;!
!
22. Vzdrževanje
sta5s5k
par5cioniranih
podatkov
www.tusmobil.si
22
-‐ Pobiranje
sta5s5k
na
par5cijah,
kjer
je
ak5vnost
zaključena
-‐ Kopiranje
sta5s5k
iz
svežih
z
insert
in
update
ak5vnostjo
zaključenih
par5cij
na
katerih
smo
sta5s5ke
pobrali,
na
nove
par5cije,
ki
bodo
v
uporabi
v
prihodnos5
-‐ Občasno
pobiranje
globalnih
sta5s5k
na
celotni
par5cionirani
tabeli
24. Kopiranje
sta5s5k
na
prihodnje
par5cije
www.tusmobil.si
24
-- kopiranje statistike iz ene na drugo particijo!
SYS.DBMS_STATS.COPY_TABLE_STATS !
( ’MEDIATION', !
’RECORDS', !
'RECORDS_201209', -- iz septemberske particije!
'RECORDS_201210', -- na oktobersko particijo!
FORCE=>TRUE !
);!
!
-- Odklepanje statistik pred pobiranjem in kopiranjem!
SYS.DBMS_STATS.UNLOCK_TABLE_STATS!
(’MEDIATION',’RECORDS’);!
!
Zaklepanje statistik po pobiranju in kopiranju: !
SYS.DBMS_STATS.LOCK_TABLE_STATS!
(’MEDIATION',’RECORDS');!
26. Oracle
Table
Compression
na
kratko
www.tusmobil.si
26
-‐ Deluje
na
podlagi
eliminacije
podvojenih
vrednos5
znotraj
database
block-‐a
-‐ Omogoča
znatno
znižanje
potreb
po
diskovnem
prostoru,
prostoru
za
backup
-‐ Manj
podatkov
na
disku
omogoča
tudi
precej
višje
preformanse
aplikacij
in
SQLa,
predvsem
pri
full
table
scan-‐ih,
hitrejši
backup
baze
in
podobno
-‐ V
kombinaciji
z
hitrimi
diski,
manj
podatkov
kot
posledica
kompresije
omogoča
tudi
eliminacijo
indeksov
(npr.
za
DWH
potrebe)
27. Uporaba
podatkovne
kompresije
na
Tušmobilu
www.tusmobil.si
27
-‐ Uporaba
t.i.
table
level
/
par55on
level
(non-‐OLTP)
kompresije
-‐ Podatki
OLTP
aplikacij
se
kompresirajo
naknadno,
ko
postanejo
neak5vni
(kompresiranje
starih
par5cij)
-‐ Podatki
za
DWH
namene
se
nalagajo
direktno
kompresirano
28. Primer
kompresije
v
praksi,
tabela
z
CDR
zapisi
(klici
+
SMSi)
www.tusmobil.si
28
-‐ Par5cija
z
dogodki
za
prvih
7
dni
v
mesecu
septembru
2012
-‐ >
33
M
vrs5c
-‐ 19,2
GBytes
nekompresirano
33. Pa
še
poročila
tečejo
hitreje
www.tusmobil.si
33
Čas
brez
kompresije
Čas
s
kompresijo
Izvedba
1
155
51
Izvedba
2
121
44
Izvedba
3
161
36
Povprečje
146
44
select /*+ full(r) parallel(r 4) */!
!count(*) !
from mediation.records partition
( RECORDS_201209A ) r;!
34. ...
precej
hitreje
J
www.tusmobil.si
34
Čas
brez
kompresije
Čas
s
kompresijo
Razmerje
146
44
3,33
0
20
40
60
80
100
120
140
160
Čas
brez
kompresije
Čas
s
kompresijo
35. Nalaganje
podatkov
z
uporabo
kompresije
www.tusmobil.si
35
-‐ Tabele
morajo
bi5
kreirane
s
COMPRESS,
enako
par5cije
-‐ Preko
SQL
z
uporabo
APPEND
namiga
-‐ Preko
sqlloaderja
z
uporabo
direct
path
nalaganja
!
!
!
!--SQL insert z APPEND namigom !
!insert /*+ append */!
!into ...!
!--SQL loader z direct path nalaganjem!
!sqlldr control=events.ctl direct=true !
36. Kako
izboljša5
kompresijsko
razmerje
www.tusmobil.si
36
-‐ Skozi
ustrezno
grupiranje,
oz.
vrstni
red
nalaganja
podatkov
-‐
podobni
podatki,
oz
podatki
z
is5mi/ponavljajočimi
se
vrednostmi
naj
bodo
skupaj
-‐ Z
uporabo
večjega
db_block_size
37. Par5cioniranje
+
Kompresija
=
J
www.tusmobil.si
37
-‐ Prednos5
par5cioniranja
in
kompresije
v
Oracle
bazi
se
mul5plicirajo
-‐ Odlični
orodji
za
obvladovanje
podatkovne
eksplozije,
oz.
enormnih
količin
podatkov
-‐ Zreli
orodji,
ki
sta
del
Oracle
Enterprise
Edi5on
že
desetletje
(od
9iR2
naprej)