exadata ile veri ambarı yolculuğumuz - ferhat Şengönül

29
Exadata ile Veri Ambarı Yolculuğumuz Ferhat ŞENGÖNÜL http ://ferhatsengonul.wordpress.com http://twitter.com/ferhatsengonul TROUG

Upload: gokhan-atil

Post on 09-Aug-2015

104 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Exadata ile Veri Ambarı Yolculuğumuz

Ferhat ŞENGÖNÜL

http://ferhatsengonul.wordpress.comhttp://twitter.com/ferhatsengonul

TROUG

Page 2: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Ben Kimim?

• Finans : 11 yıl / Telekom : 3 yıl

• DBA / İş Zekası Uzmanı / Yönetici

• TROUG Kurucu Üye

• Oracle ACE

• 2012 DWGL EMEA

• http://ferhatsengonul.wordpress.com

• http://twitter.com/ferhatsengonul

Page 3: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Kümeler-Grup Teorisi-Sonlu Gruplar-Morley mertebesi sonlu gruplar-…

TROUG

Page 4: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

DBA

Developer

Mimar

Analist

BI / DW

Veri Bilimci

TROUG

Page 5: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Exadata soruları

• Exadata ‘Kötü SQL’ ’i bile iyi çalıştırır mı?

• Exadata ‘Kötü tasarım’ı bile iyi çalıştırır mı?

• Bütün indexleri drop etmeli miyiz?

• Mixed workload çalışır mı. (DWH+OLTP)

• Konsolidasyon için iyi bir ortam mıdır?

• Başka, başka ….

TROUG

Page 6: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

BI Ortamı

RaporMSTR

ETLAB Initio

Oracle ODIKaynak

DBler Exadata

VERİ HACMİ• 10 Milyar CDR/gün

• 1 TB ham veri extract

• 5 TB Data on file system processed

• 2-3 TB yükleme/gün

• 160 TB HCC sıkıştırılmış veri . 1,6 PetaByte!

Page 7: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

HW Ortamı

TROUG

Page 8: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

TROUG

Page 9: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

TROUG

Page 10: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

TROUG

İletişim• Bütün dbnodelar bütün cellerle konuşur. (ASM)

• Celler asla birbiriyle konuşmaz.

Page 11: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Yazılımın Gücü

• HCC ( Sıkıştırma)

• Smart Scan (Akıllı Tarama)

• Storage Index

TROUG

Page 12: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

TROUG

Page 13: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Bildiklerimiz

• Oracle blok ile okur (8 K)

• 1 blokta ne kadar çok kayıt/o kadar hızlı

okuma.

TROUG

Page 14: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

TROUG

SQL> select rowid row_id,dbms_rowid.rowid_relative_fno(rowid, 'BIGFILE')

rel_file_no,dbms_rowid.ROWID_TO_ABSOLUTE_FNO(rowid,‘TABLE_NAME','TEST_NQ')

abs_file_no

,DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid) block_number

from TABLE_OWNER.TEST_NQ a where rownum < 2;

ROW_ID REL_FILE_NO ABS_FILE_NO BLOCK_NUMBER

------------------ ----------- ----------- ------------

AAF7w4AAAAAAACDAAA 1024 13 131

Elapsed: 00:00:00.07

Elapsed: 00:00:00.01

SQL> alter system dump datafile 13 block 131;

System altered.

Elapsed: 00:00:00.01

SQL>

Bir Blok’un içini görmek

Page 15: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Açık Blok

TROUG

data_block_dump,data header at 0x7f2c7d5e907c

===============

tsiz: 0x1f80

hsiz: 0x2a

pbl: 0x7f2c7d5e907c

76543210

flag=--------

0xe:pti[0] nrow=12 offs=0

0x12:pri[0] offs=0x1d0f

0x14:pri[1] offs=0x1acd

0x16:pri[2] offs=0x1862

0x18:pri[3] offs=0x16fb

0x1a:pri[4] offs=0x145e

0x1c:pri[5] offs=0x1211

0x1e:pri[6] offs=0xfbf

0x20:pri[7] offs=0xe54

0x22:pri[8] offs=0xbd4

0x24:pri[9] offs=0x97d

0x26:pri[10] offs=0x6fd

0x28:pri[11] offs=0x593

block_row_dump:

block_row_dump:

tab 0, row 0, @0x1d0f

tl: 625 fb: --H-F--- lb: 0x0 cc: 255

nrid: 0x00000083.1

col 0: [ 7] 78 71 06 02 09 21 1f

col 1: [ 7] 78 71 06 02 09 01 01

col 2: [ 7] 4b 4f 50 31 52 30 31

col 3: [ 5] 4b 53 41 4e 4d

col 4: [ 2] c1 10

col 5: [ 1] 31

col 6: [ 1] 31

col 7: [ 1] 31

Page 16: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

TROUG

HCC

Page 17: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Sıkıştırılmış Blok

TROUG

data_block_dump,data header at 0x7f7d9af9f27c

===============

flag_9ir2=--R----- Archive compression: Y

fcls_9ir2[0]={ }

0x16:pti[0] nrow=1 offs=0

0x1a:pri[0] offs=0x30

block_row_dump:

tab 0, row 0, @0x30

tl: 8016 fb: --H-F--N lb: 0x0 cc: 1

nrid: 0x00364084.0

col 0: [8004]

Compression level: 03 (Archive Low)

Length of CU row: 8004

kdzhrh: ------PC CBLK: 11 Start Slot: 00

NUMP: 11

PNUM: 00 POFF: 7884 PRID: 0x00364084.0

PNUM: 01 POFF: 15900 PRID: 0x00364085.0

PNUM: 02 POFF: 23916 PRID: 0x00364086.0

PNUM: 03 POFF: 31932 PRID: 0x00364087.0

PNUM: 04 POFF: 39948 PRID: 0x00364088.0

PNUM: 05 POFF: 47964 PRID: 0x00364089.0

PNUM: 06 POFF: 55980 PRID: 0x0036408a.0

PNUM: 07 POFF: 63996 PRID: 0x0036408b.0

PNUM: 08 POFF: 72012 PRID: 0x0036408c.0

PNUM: 09 POFF: 80028 PRID: 0x0036408d.0

PNUM: 10 POFF: 88044 PRID: 0x0036408e.0

Page 18: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

TROUG

CU header:

CU version: 0 CU magic number: 0x4b445a30

CU checksum: 0x80ab70bd

CU version: 0 CU magic number: 0x4b445a30

CU checksum: 0x80ab70bd

CU total length: 92970

CU flags: NC-U-CRD-OP

ncols: 937

nrows: 97

algo: 0

START_CU:

00 00 1f 44 1f 0b 00 00 00 0b 00 00 1e cc 00 36 40 84 00 00 00 00 3e 1c 00

36 40 85 00 00 00 00 5d 6c 00 36 40 86 00 00 00 00 7c bc 00 36 40 87 00 00

00 00 9c 0c 00 36 40 88 00 00 00 00 bb 5c 00 36 40 89 00 00 00 00 da ac 00

36 40 8a 00 00 00 00 f9 fc 00 36 40 8b 00 00 00 01 19 4c 00 36 40 8c 00 00

00 01 38 9c 00 36 40 8d 00 00 00 01 57 ec 00 36 40 8e 00 00 00 4b 44 5a 30

bd 70 ab 80 00 01 6b 2a eb 06 03 a9 00 61 00 03 57 05 04 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Sıkıştırılmış Blok (DEVAM)

Page 19: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Veriyi sıralamak

TROUG

Page 20: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Ya exadatanız yoksa!

TROUG

• dbms_compression.get_compression_ratio

• Exadata olmayan bir ortamda bile sıkıştırıyor.

• DBMS_TABCOMP_TEMP_CMP adında bir tablo.

• İş bitince siliniyor.

Jonathan Lewis

http://jonathanlewis.wordpress.com/2011/10/04/hcc/

Page 21: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Bunu hatırlayan var mı?

TROUG

Yük * Yük kolu = Kuvvet * Kuvvet kolu

Page 22: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Dezavantajlar

TROUG

• CPU • Sıkıştırma yukarıda

• Açma aşağıda

• Update / Delete• Delete bitmapte

• Update rowu taşır.

• Temp/ indexler

Page 23: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Yazılımın Gücü

• HCC ( Sıkıştırma)

• Smart Scan (Akıllı Tarama)

• Storage Index

TROUG

Page 24: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Akıllı Tarama

• Exadata sorguyu disk katmanında çalıştırır ve

sadece ilgili satır ve sütunları db katmanına

gönderir. Bu da performansı devasa ölçüde

arttırır.

• Ortalamada 10x , bazı dw sorgularında 400x

performans artışı görüldü.

TROUG

Page 25: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

İşi en yakında bitirmek.

TROUG

Page 26: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Akıllı Tarama

• Sadece Full Table Scan.

• Ya mixed ortam ise? Hem OLTP – hem DWH?

• Optimizer index seçiyorsa?

• Tablonun indexlerini invisible yapmak.

• OLTP sessionları için

Optimizer_use_invisible_indexes=true

TROUG

Page 27: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Yazılımın Gücü

• HCC ( Sıkıştırma)

• Smart Scan (Akıllı Tarama)

• Storage Index

TROUG

Page 28: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

TROUG

Page 29: Exadata ile Veri Ambarı Yolculuğumuz - Ferhat Şengönül

Exadata soruları

• Exadata ‘Kötü SQL’ ’i bile iyi çalıştırır mı?

• Exadata ‘Kötü tasarım’ı bile iyi çalıştırır mı?

• Bütün indexleri drop etmeli miyiz?

• Mixed workload çalışır mı? (DWH+OLTP)

• Konsolidasyon için iyi bir ortam mıdır?

• Başka, başka ….

TROUG