Ugrás a fő tartalomra

ODI töltő MAP forrás tábla csere


 

Ha egy meglévő töltő MAP forrás tábláját egy másikkal kell helyettesítened az Oracle Data Integratorban (ODI), a következő lépéseket kell követned:

Lépések

  1. Backup készítése:

    • Mielőtt bármit módosítanál, készíts biztonsági mentést a meglévő mappingről, hogy bármikor visszaállíthasd az eredeti állapotot, ha szükséges.
  2. Új forrás tábla importálása:

    • Importáld az új forrás táblát az ODI Repository-ba. Ezt az ODI Studio Designer moduljában teheted meg.
    • Kattints a "Reverse Engineer" gombra az új tábla struktúrájának beolvasásához.
  3. Mapping megnyitása:

    • Nyisd meg az ODI Studio-ban a módosítani kívánt mappinget (Mapping, Integration Interface).
  4. Régi forrás tábla eltávolítása:

    • A mappingben keresd meg a meglévő forrás táblát.
    • Kattints a jobb gombbal a forrás táblára, majd válaszd az "Delete" vagy "Remove" opciót. Ügyelj arra, hogy ne töröld véletlenül a mapping többi részét.
  5. Új forrás tábla hozzáadása:

    • Húzd be az új forrás táblát a modellek (Models) panelből a mapping munkaterületére.
    • Állítsd be a szükséges kapcsolódási pontokat az új forrás tábla és a többi komponens között.
  6. Mezők párosítása:

    • Győződj meg róla, hogy az új forrás tábla mezői helyesen vannak párosítva a mapping célmezőivel.
    • Frissítsd a kifejezéseket és transzformációkat, hogy megfeleljenek az új forrás tábla struktúrájának.
  7. Filterek és joinok frissítése:

    • Ha a mapping filtereket vagy joinokat tartalmaz, ellenőrizd és frissítsd ezeket az új forrás tábla mezői alapján.
  8. Mapping validálása:

    • Validáld a mappinget az ODI Studio-ban, hogy megbizonyosodj róla, hogy nincsenek szintaktikai hibák vagy hiányzó elemek.
    • Ezt a "Validate" gombbal teheted meg.
  9. Mapping futtatása teszt környezetben:

    • Futtasd a mappinget egy teszt környezetben, hogy ellenőrizd az új forrás tábla adatainak betöltését.
    • Vizsgáld meg a betöltött adatokat, és győződj meg róla, hogy minden rendben működik.
  10. Deployment éles környezetben:

    • Ha a tesztelés sikeres volt, deployold a módosított mappinget az éles környezetbe.

Mire ügyelj:

  1. Adatok konzisztenciája:

    • Győződj meg róla, hogy az új forrás tábla adatstruktúrája és tartalma megfelel az eredeti forrás táblának, hogy elkerüld az adatok inkonzisztenciáját.
  2. Mapping logikája:

    • Ellenőrizd, hogy a mapping logikája (pl. transzformációk, joinok, filterek) megfelelően működik az új forrás táblával is.
  3. Teljesítmény:

    • Az új forrás tábla használata befolyásolhatja a mapping futási idejét. Vizsgáld meg a teljesítményt, és optimalizáld szükség esetén.
  4. Hibaüzenetek:

    • Figyelj a hibaüzenetekre és logokra a mapping futtatása során, hogy időben felismerd és kijavítsd a problémákat.
  5. Kommunikáció:

    • Tájékoztasd a csapatodat a változtatásokról, és dokumentáld a módosításokat, hogy mindenki tisztában legyen az új forrás tábla használatával és a lehetséges hatásokkal.

Ezek a lépések és óvintézkedések segítenek abban, hogy sikeresen helyettesítsd a forrás táblát az ODI-ban, és biztosítsd a zökkenőmentes adatbetöltést.


Az Oracle Data Integrator (ODI) Groovy script segítségével automatizálható a forrás tábla cseréje egy mappingben. Itt van egy példa Groovy scriptre, amely elvégzi ezt a feladatot:

Groovy Script Példa


// ODI SDK importálása
import oracle.odi.domain.mapping.Mapping
import oracle.odi.domain.mapping.physical.PhysicalDesign
import oracle.odi.domain.mapping.physical.PhysicalNode
import oracle.odi.domain.model.OdiModel
import oracle.odi.domain.model.OdiDataStore
import oracle.odi.domain.project.OdiProject
import oracle.odi.domain.project.finder.IOdiProjectFinder
import oracle.odi.domain.mapping.finder.IMappingFinder
import oracle.odi.core.persistence.transaction.support.DefaultTransactionDefinition
import oracle.odi.core.persistence.transaction.ITransactionManager
// ODI Session és Transaction Manager beszerzése
def odiInstance = odiInstance
def txnManager = odiInstance.getTransactionManager()
def txnDef = new DefaultTransactionDefinition()
def transaction = txnManager.getTransaction(txnDef)
try {
    // Mapping neve
    def mappingName = "MappingName" // A cserélendő mapping neve
    def projectCode = "ProjectCode" // A projekt kódja, amelyben a mapping található
    
    // Régi és új forrás tábla nevek
    def oldSourceTableName = "OldSourceTable"
    def newSourceTableName = "NewSourceTable"
    def modelCode = "ModelCode" // A modell kódja, amelyben a táblák találhatók
    
    // OdiProject és OdiModel keresése
    def odiProject = ((IOdiProjectFinder) odiInstance.getTransactionalEntityManager().getFinder(OdiProject.class)).findByCode(projectCode)
    def odiModel = ((oracle.odi.domain.model.finder.IOdiModelFinder) odiInstance.getTransactionalEntityManager().getFinder(OdiModel.class)).findByCode(modelCode)
    
    // Mapping keresése
    def mapping = ((IMappingFinder) odiInstance.getTransactionalEntityManager().getFinder(Mapping.class)).findByProjectAndName(odiProject, mappingName)
    
    // PhysicalDesign beszerzése
    def physicalDesign = mapping.getPhysicalDesign(0)
    
    // Régi forrás tábla keresése és eltávolítása
    def oldSourceTableNode = physicalDesign.getPhysicalNodes().find { it.getComponent().getName().equalsIgnoreCase(oldSourceTableName) }
    if (oldSourceTableNode) {
        physicalDesign.removePhysicalNode(oldSourceTableNode)
    }
    
    // Új forrás tábla beszerzése
    def newSourceTable = ((oracle.odi.domain.model.finder.IOdiDataStoreFinder) odiInstance.getTransactionalEntityManager().getFinder(OdiDataStore.class)).findByName(newSourceTableName, odiModel)
    
    // Új forrás tábla hozzáadása a PhysicalDesign-hoz
    def newSourceTableNode = new PhysicalNode(physicalDesign, newSourceTable)
    physicalDesign.addPhysicalNode(newSourceTableNode)
    
    // Mapping mentése
    odiInstance.getTransactionalEntityManager().persist(mapping)
    
    // Transaction commit
    txnManager.commit(transaction)
    println "Forrás tábla cseréje sikeresen megtörtént a mappingben: ${mappingName}"
} catch (Exception e) {
    txnManager.rollback(transaction)
    e.printStackTrace()
    println "Hiba történt a forrás tábla cseréje során: ${e.message}"
}


Lépések a script használatához:

  1. ODI Studio előkészítése: Győződj meg róla, hogy az ODI Studio-ban létre van hozva a szükséges projekt, modellek és mappingek.

  2. Script beállítása: Azonosítsd a mappingName, projectCode, oldSourceTableName, newSourceTableName és modelCode változókat a saját környezetednek megfelelően. Ezeket a script elején kell beállítanod.

  3. Script futtatása: Futtasd a scriptet az ODI Studio-ban. Ezt megteheted az ODI Studio Groovy Console ablakában vagy egy testreszabott ODI Package-ben.


Mire ügyelj a használat során:

  • Biztonsági mentés: Mindig készíts biztonsági mentést a mappingekről és az adatokról a script futtatása előtt.
  • Validálás: Futtasd a scriptet először egy teszt környezetben, hogy ellenőrizd a működését, mielőtt éles környezetben használnád.
  • Logika és összefüggések: Ügyelj arra, hogy a script megfelelően kezelje az esetleges összefüggéseket és transzformációkat az új forrás tábla alapján.

Ez a script segít automatizálni a forrás tábla cseréjét egy ODI mappingben, csökkentve a manuális beavatkozás szükségességét és a hibalehetőségeket.


Megjegyzések