Exadata hibrid oszlopos adattömörítés automatizálása; DB 12c partition merge

Hasonló dokumentumok
Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

2011. November 8. Boscolo New York Palace Budapest. Extrém teljesítmény Oracle Exadata és Oracle Exalogic rendszerekkel

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Valós idejű megoldások: Realtime ODS és Database In-Memory tapasztalatok

Exadata, a világ leggyorsabb adatbázisgépe

Vodafone ODI ETL eszközzel töltött adattárház Disaster Recovery megoldása. Rákosi Péter és Lányi Árpád

Segítség, összementem!

Indexek, tömörítés és más állatfajták

Adatbázis használat I. 5. gyakorlat

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Hozzunk ki többet abból amink van. Fehér Lajos

Oracle TTS migrációs technológia használata

Tranzakciókezelés PL/SQL-ben

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

Adatbázis kezelés Delphiben. SQL lekérdezések

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Döbrönte Zoltán. Data Vault alapú adattárház - Fél óra alatt. DMS Consulting Kft.

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

SQLServer. Particionálás

Indexek és SQL hangolás

INDEXSTRUKTÚRÁK III.

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Adattárház tiszta alapokon Oracle Day, Budapest, november 8.

Adatbázis Rendszerek II. 8. Gyakorló környezet

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Data Integrátorok a gyakorlatban Oracle DI vs. Pentaho DI Fekszi Csaba Ügyvezető Vinnai Péter Adattárház fejlesztő február 20.

Adatbázisok* tulajdonságai

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

BEVEZETÉS Az objektum fogalma

Hogyan növelje kritikus üzleti alkalmazásainak teljesítményét?

Weblog elemzés Hadoopon 1/39

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

TABLE ACCESS FULL HASH CLUSTER BY INDEX ROWID BY USER ROWID BY GLOBAL INDEX ROWID BY LOCAL INDEX ROWID

Bevezetés: az SQL-be

Adatbázis-kezelés. Harmadik előadás

Oracle Spatial. Térbeli adatot tartalmazó tábla: Geometry table Legalább 2 oszlopa van: Elsődleges kulcs, SDO_GEOMETRY típusú oszlop.

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Mosolygó Ferenc értékesítési konzultáns

Tárolóhely csökkentés és folyamatoptimalizáció archiválással

Adatbázis rendszerek SQL nyomkövetés

Adatbázisok elmélete 9. előadás

VvAaLlÓóSs IiıDdEeJjȷŰű OoDdSs goldengate alapokon a magyar telekomban

Az Oracle rendszer komponensei

B I T M A N B I v: T M A N

Component Soft és tovább

Tenant szeparáció Exadata platformon Koncepció

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Adatbázisok elmélete. Egy kísérlet az OLTP és az analitikus jellegű adatbázishasználat kombinálására: Oracle Database12c In-Memory

Spatial a gyakorlatban

Java és web programozás

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

SQLServer. SQLServer konfigurációk

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

Készítette: Szabóné Nacsa Rozália

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Data Vault adatmodellezés.

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Adatbázisok elmélete 9. előadás

Analitikai megoldások IBM Power és FlashSystem alapokon. Mosolygó Ferenc - Avnet

Vektoros grafikát tároló adatbázisok. Katona Endre Térképi adatbázisok diasorozata alapján

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

30 MB INFORMATIKAI PROJEKTELLENŐR ADATBÁZISOK MEGVALÓSÍTÁSA (ADATBÁZISOK, ADATBÁZISKEZELŐK, ADATBÁZISOK FELÉPÍTÉSE, ADATBÁZISOK TERVEZÉSE)

Adatbázis-kezelés, információs-rendszerek

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Oracle Enterprise Manager 12c Cloud Control és 11g Grid Control összehasonlítás

Cloud computing Dr. Bakonyi Péter.

BEVEZETÉS AZ ADATTÁRHÁZ AUTOMATIZÁLÁSBA

Az SQL adatbázisnyelv: DML

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Oracle E-Business Suite üzemeltetés a Rába Járműipari Holding Nyrt.-nél

Tranzakció-kezelés, alapfogalmak. Vassányi István, 2012.

Adatbázisok (relációs, objektum relációs, NoSQL) Adatbáziskezelő rendszerek Adatbázisok felépítése Adatbázisok tervezése

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

AutoCAD MAP DWG mapobject TOPOBASE konvertáló program dokumentáció

Oracle SQL Developer Data Modeler és a DW adatmodellezés. Gollnhofer Gábor Meta Consulting Kft.

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Nem klaszterezett index. Klaszterezett index. Beágyazott oszlopok. Index kitöltési faktor. Indexek tulajdonságai

Adattárház és BigData Szimbiózisa. Baranyi Szabolcs IM Technical Sales

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Mérésadatgyűjtő rendszer Oracle Database Appliance alapon. Szabad Miklós vezérigazgató-helyettes XperTeam ZRt. Budapest, Róbert Károly krt. 59.

<Insert Picture Here> Cloud, Oracle tervezett célrendszerek, Exadata Database Machine adatbázisgép Fekete Zoltán, Principal sales consultant

Adatbázisok elmélete 10. előadás

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

Virtuális Obszervatórium. Gombos Gergő

SELECT DISTINCT deptno FROM emp; (distinct) SELECT STATEMENT HASH UNIQUE TABLE ACCESS FULL EMP

Üzemeltetési kihívások 2015

Adatbázisok webalkalmazásokban

Java és web programozás

Adattárház kialakítása a Szövetkezet Integrációban, UML eszközökkel. Németh Rajmund Vezető BI Szakértő március 28.

Elemi alkalmazások fejlesztése IV.

Átírás:

Exadata hibrid oszlopos adattömörítés automatizálása; DB 12c partition merge HOUG Konferencia 2017. március 28. Németh Márk Principal Programmer Analyst National Instruments

Tömörítési módok OLTP Exadata Hybrid Columnar Compression Elérhetőség 11gR1 11gR2 + Exadata A tömörítés egysége Adatbázis blokk (8k) compression unit (több blokk: 32-64k) Szervezési elv Sor Hibrid (sor és oszlop) Milyen műveletek esetén használható Hagyományos INSERT Tömörítési arány 2x - 4x 4x - 12x Update Ritkán vagy soha Soha EHCC-vel jelentősen magasabb tömörítési arány érhető el, de használatához direkt utas betöltés szükséges. Csak direkt utas betöltés (APPEND, CTAS) 2

A háttértörténet 2012 Adattárház migrációja Exadatára Alkalmanként használtunk EHCC-t Karbantartás jelleggel Egyedi SQL scriptek Felügyelet mellett Állásidő Megoldandó problémák Felügyeletet nem igénylő módon automatizálni Rendszeres időközönként futtatni (a táblatér soha ne hízzon túl nagyra) 3

Miért lett hirtelen ilyen fontos? Éles rendszer X2-2 Quarter Rack Fejlesztői és teszt X2-2 Half Rack 3 fejlesztői és 2 teszt rendszer A fejlesztői rendszereken kezdtünk kifutni a tárhelyből Két E-Business Suite (forrásrendszer) integrációja jelentős tárhelyigénnyel járt az adattárházon X6 csak később volt esedékes 4

Tömörítési arány és tárhelyigény 1,000 GB 800 GB Tömörítési arányok az NI-nál Tárhelyigény 1 TB tömörítetlen adatra vetítve 1,024 GB 13.0 X 14.0 X 12.0 X 10.0 X 600 GB 8.0 X 400 GB 200 GB 0 GB 2.7 X 1.0 X 384 MB 79 MB Uncompressed OLTP EHCC QH 6.0 X 4.0 X 2.0 X.0 X 5

Mit tömörítettünk? ETL Source systems Staging Area EDW Data Marts Landing layer Cleansed Layer Normalized Dimension al Perzisztens staging réteg A forrásrendszerrel megegyező táblaszerkezet + sorszíntű meta-adat Rekordok változásának követése időbélyeggel Csak INSERT műveletek Jelentős adatmennyiség Tökéletes jelölt a tömörítésre 6

Az eredeti particionálási stratégia Exadata migrációt megelőző megoldás Napi partíciók Az ETL nagymértékben kihasználja Az utolsó partíciót írja Az utolsó partíciót olvassa Ad-hoc lekérdezések a teljes táblára Problémák Tárhely: szerény tömörítési arány csak OLTP-vel o Kis batch-ekben töltjük o Hagyományos INSERT-ekkel Gyakran túl kicsi partíciók o Elpocsékolt tárhely ( initial 8k?) o Teher a data dictionary-nek is o SMART SCAN gyilkos 7

12c ALTER MERGE partitions 8

Az automatizált tömörítés 9

Partíciók összevonása egy táblában Range / interval partíciók Az interval particionálás a range particionálás kiterjesztése Legalább egy range partíció A legutolsó range partíció: transition point ALTER TABLE m_test MERGE PARTITIONS p_start TO p_end INTO PARTITION p_new; ALTER TABLE m_test MERGE PARTITIONS p1, p2, px INTO PARTITION p_new; 10

Range-interval átmenet (transition point) CREATE TABLE m_test( dt DATE,id NUMBER ) PARTITION BY RANGE(dt) INTERVAL(NUMTODSINTERVAL(1,'DAY')) (PARTITION p_init VALUES LESS THAN (DATE '2017-03-20') ); 11

Merge partition - példa ALTER TABLE m_test MERGE PARTITIONS FOR(DATE '2017-03-20') TO FOR(DATE '2017-03-23') INTO PARTITION p_1; 12

A hiányzó interval partíció okozta problémák ALTER TABLE m_test MERGE PARTITIONS FOR(DATE '2017-03-20') TO FOR(DATE '2017-03-23') INTO PARTITION p_1; ORA-02149: Specified partition does not exist ALTER TABLE m_test MERGE PARTITIONS FOR(DATE '2017-03-20'),FOR(DATE '2017-03-22'),FOR(DATE '2017-03-23') INTO PARTITION p_1; ORA-14274: partitions being merged are not adjacent 13

A range-interval átmenet áthelyezése ALTER TABLE m_test SET INTERVAL(); ALTER TABLE m_test SET INTERVAL(NUMTODSINTERVAL(1,'DAY')); 14

Mi történik, ha a tömörítés és a betöltés egymásra futnak? Tömörítés ALTER TABLE SET INTERVAL() Betöltés ALTER TABLE SET INTERVAL(1 Day) Resource busy INSERT INTO INSERT INTO (next day) Partition key does not map to any partition 15

DML error logging Hiányzó partíció esetén a rekordok az error táblába kerülnek Nehéz visszaállítani 16

Hogyan tegyük a két ALTER utasítást atomi műveletté? 1. ALTER TABLE m_test READ ONLY 2. ALTER TABLE m_test SET INTERVAL() 3. ALTER TABLE m_test SET INTERVAL(NUMTODSINTERVAL(1, DAY ) 4. ALTER TABLE m_test READ WRITE Így a betöltés hibával megáll (az error tábla használata helyett): ORA-12081: update operation not allowed on table "M_TEST"."M_TEST" A következő futásnál már működni fog, nincs teendő vele A tábla nem marad range particionált 17

Mi történik, ha a tömörítés és a betöltés egymásra futnak? Tömörítés Betöltés ALTER TABLE SET INTERVAL() Resource busy INSERT INTO ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired Megoldás: ALTER SESSION SET DDL_LOCK_TIMEOUT=300 18

Spatial adattípus SDO_GEOMETRY Az interval particionálás nem támogatja http://docs.oracle.com/database/121/sqlrf/statements_7002.ht m#sqlrf54559 Restrictions on Interval Partitioning... This clause is not supported for tables containing nested table columns, varray columns, or XMLType columns.... A CREATE TABLE mégis működik De az ALTER már nem 19

Spatial adattípus vs. Interval particionálás SQL> CREATE TABLE p_test ( SQL> SQL> SQL> SQL> ) rld DATE,id NUMBER,geometry mdsys.sdo_geometry SQL> TABLESPACE m_test SQL> PARTITION BY RANGE (rld) SQL> INTERVAL(NUMTODSINTERVAL(1,'DAY')) SQL> ( SQL> PARTITION p_init VALUES LESS THAN (DATE '2017-03-01') SQL> ); Table created. SQL> ALTER TABLE p_test SET INTERVAL(); Table altered. SQL> ALTER TABLE p_test SET INTERVAL(NUMTODSINTERVAL(1,'DAY')); ALTER TABLE p_test SET INTERVAL(NUMTODSINTERVAL(1,'DAY')) * ERROR at line 1: ORA-14769: cannot interval partition nested table or XMLType with object-relational storage SQL> 20

Egyéb megfontolások A táblatéren és a disk groupon lévő szabad hely nem ugyanaz CPU-intenzív művelet 2 TB ~ 6 óra 21

Eredmények Egyszeri tömörítés 2015-ben Automatizált megoldás 2016-ban 2,5 TB tárhely szabadult fel egyetlen rendszeren 2016 közepe óta Ez az összesen 6 (1 éles + 3 dev + 2 test) rendszer esetében már 15 TB Havonta fut Statisztikák: ~ 1300 tábla tömörítve ~ 650 esetében az adatbetöltések a mai napig futnak 20-30 perc futásidő havonta Teljesen automatikus Log táblákon is használjuk a módszert 22

Összegzés Az INSERT-only táblák a legalkalmasabb jelöltek a tömörítésre Interval particionálás 12c Partition merge OLTP és EHCC tömörítési módok vegyes használata DBMS_SCHEDULER (figyelembe véve, hogy CPU-intenzív) 3X (OLTP) -12X (EHCC) tömörítési arányok Komplikációk az interval partíciók összevonásával (Alter set interval) DDL lock vs. DML 23

Kérdések? 24