220 likes | 288 Views
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
E N D
Partitioning megvalósítása egy konkrét alkalmazásbanNagymé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
Tartomány Lista Hash Vegyes Oracle partícionálás(általános áttekintés) Hónapok szerinti felosztás Előző hónapok csak olvashatók Rendelések tábla
JAN FEB OKT NOV DEC Bp Győr Miskolc Pécs Szeged Nagyméretű adatbázisok (VLDB) támogatása vegyes partícionálással • Vegyes: tartomány és lista partícionálás
Egy konkrét feladatA 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
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ésA „varázslás” Előkonvertált állományok (heti file-ok) Partícionált tábla WEEK 1 IDX WEEK 3 WEEK 2 IDX WEEK 3 TEMP TABLE IDX WEEK 4 IDX WEEK 5 IDX 4. EXCHANGE PARTITION 2. INSERT /*APPEND+*/ WEEK 6 IDX TEMP TABLE WEEK 3 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 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 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 TEMP TABLE WEEK 3 WEEK 3 IDX WEEK 7 IDX WEEK . IDX WEEK . IDX 1.sqlldr WEEK 3 WEEK N IDX
Parallel query funkció Partícionált tábla 1 • Lekérdezések • Sebessége nagyságrendekkel nő • Futási idők csökkennek 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? • NEM! INPUT mennyiség és Forma 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ó • 1-4690000 • zsolt.szederkenyi@click-on.hu • www.click-on.hu