Partitioning megvalósítása egy konkrét alkalmazásban Nagyméretű adattáblák szelídítése partícionálással
Bemutatkozás Szederkényi Zsolt Click On Informatikai Kft. Ügyvezető 1-4690000 zsolt.szederkenyi@click-on.hu
Miről lesz szó? Minimális infó Click On-ról Minimális infó magáról a partícionálásról Esettanulmány Egy konkrét példán keresztül, de általános megközelítésben Nem lesznek konkrét rekordszámok, futási idők, hardware paraméterek, csak nagyságrendek
-ról CLICK ON Kft. kizárólag magyar tulajdonú, független technológiai vállalkozás Meghatározó tevékenység Alkalmazás és rendszerfejlesztés Tanácsadás Kompetencia területek CRM Portál megoldások Ügyfélszolgálati megoldások Dokumentum menedzsment Ügyviteli rendszerek Néhány fontosabb referencia ISM Középületépítő Rt. Lattmann Kft. (St Gobain Co.) MATÁV MTA és intézményei Strabag Kft. TVK UPC Magyarország Kft. Vertesz Elektrronikai Kft (Group Schneider Co.) MOL A BBJ Book Of Lists kiadványa (2003): Click On-t a 49. helyre sorolta a magyarországi fejlesztőcégek között
Oracle partícionálás (általános áttekintés) Tartomány Lista Hash Vegyes Hónapok szerinti felosztás Előző hónapok csak olvashatók Rendelések tábla
Nagyméretű adatbázisok (VLDB) támogatása vegyes partícionálással Vegyes: tartomány és lista partícionálás JAN FEB OKT NOV DEC Bp Győr Miskolc Pécs Szeged
Egy konkrét feladat A kihívás Egy távközlési cég hívásadatainak elemzése Limitált hardware erőforrások 7*24 adatszolgáltatás 7*24 adatbetöltés
Kezelendő adatok Hívásadatok legalább 1 évnyi on-line (milliárdos nagyságrend) Hívásadatok különböző forrásból Központok felől Billing rendszerekből Előfeldolgozó rendszerekből Ügyféladatok (milliós nagyságrend)
Feladat Különböző forrásból származó (elméletileg azonos tartalmú) hívásadatok összevetése Különböző szempontok szerinti standardizálható lekérdezések Az egész adatmennyiség folyamatos elemzése Csalásfelderítés (fraud) Adatszolgáltatási kötelezettségek … (egyszerre OLTP és Datawarehouse jellegű elemzések, lekérdezések)
Tervezés „1.0” (Partitioning nélkül) Táblák Hívásadatok (A, B, C), indexekkel Ügyféladatok Betöltés Batch jelleggel érkezik az input (TXT), SQLLDER Lekérdezés SQL-ekkel
Eredmény 1.0 : csőd! Import Egy napi adat betöltése 3 napig tart !!! Export (Backup) Megoldhatatlan Tuning Oracle varázsparaméterek Oprendszer Diszkek Memória
Na még 1*! (Tervezés 2.0) Import Szedjük le az indexeket különben lehetetlen insert-álni ennyi rekordot Az egész tábláról? Csak az aktuális idősávról Export (Backup) Bontsuk időszeletekre hisz mindig csak az újabb időszakot kell menteni Régebbi adatok törlése Bontsuk szeletekre az adatbázist, a régebbi szeletet mindig „irtsuk ki”
Megoldási lehetőségek Időszeletek Heti blokk a hívásrekordoknak Havi blokk az ügyféladatoknak Verzió A Legyen annyi tábla ahány időszak, majd a lekérdezések eldöntik melyik táblából keressenek Verzió B Funkciónként egy tábla, Oracle partíciókkal
Előkonvertált állományok Import előkészítés Partícionált tábla INPUT állományok WEEK 1 IDX WEEK 2 IDX WEEK 3 IDX WEEK 4 IDX WEEK 5 IDX WEEK 6 IDX Előkonvertált állományok (heti file-ok)
Betöltés A „varázslás” Előkonvertált állományok (heti file-ok) Partícionált tábla WEEK 1 IDX WEEK 3 WEEK 2 IDX TEMP TABLE WEEK 3 IDX WEEK 4 IDX WEEK 5 IDX 4. EXCHANGE PARTITION 2. INSERT /*APPEND+*/ WEEK 6 IDX WEEK 3 TEMP TABLE IDX 1.sqlldr 3. CREATE INDEX
Nagyságrendi méretek Partició adatok ~ 4GB adat / hét ~ 4GB index / hét 1 adatforrás Heti adatmennyiség: ~4 GB Heti indexméret: ~4 GB Hét: ~8 GB Év: 416 GB Partícionált tábla 1 WEEK 1 IDX WEEK 2 IDX WEEK 3 IDX WEEK 4 IDX WEEK 5 IDX WEEK 6 IDX
Backup WEEK 1 OLDEST WEEK OLDEST WEEK IDX WEEK 2 WEEK 2 IDX WEEK 2 Truncate partition, drop index WEEK 1 Partícionált tábla 1 Export partition OLDEST WEEK OLDEST WEEK IDX WEEK 2 WEEK 2 IDX WEEK 2 WEEK 3 IDX WEEK 4 IDX WEEK 5 IDX WEEK 6 IDX WEEK 7 IDX WEEK . IDX WEEK . IDX WEEK N IDX
Restore WEEK 1 IDX WEEK 2 IDX WEEK 3 WEEK 3 IDX IDX WEEK 4 IDX WEEK 5 Partícionált tábla 1 WEEK 1 IDX WEEK 2 IDX 3. EXCHANGE PARTITION WEEK 3 WEEK 3 IDX IDX WEEK 4 IDX 2. CREATE INDEX WEEK 5 IDX WEEK 6 IDX WEEK 3 TEMP TABLE WEEK 3 IDX WEEK 7 IDX WEEK . IDX WEEK . IDX 1.sqlldr WEEK 3 WEEK N IDX
Parallel query funkció Lekérdezések Sebessége nagyságrendekkel nő Futási idők csökkennek Partícionált tábla 1 2000 1. week IDX 2000 2. week IDX 2000 3. week IDX 2000 4. week IDX 2000 5. week IDX 2000 6. week IDX 2000 7. week IDX SELECT * FROM TABLE WHERE DATE BETWEEN 15-JAN-2000 and 20-FEB-2000 2000 8. week IDX WEEK . IDX WEEK N IDX
Másképp? INPUT mennyiség és Forma NEM! Funkcionalitás HW
START Nincs kérdés Köszönöm a figyelmüket Van kérdés? Tudom a választ? Kérdés meghallgatása Kérdés megválaszolása Megígérem, hogy utánanézek
További információ www.click-on.hu 1-4690000 zsolt.szederkenyi@click-on.hu