Megosztás:


Hibakezelés az adatokban

A következőkre vonatkozik:SQL Server SSIS integrációs futtatókörnyezet az Azure Data Factory-ban

Ha egy adatfolyam-összetevő átalakítja az oszlopadatokat, kinyeri az adatokat a forrásokból, vagy betölti az adatokat a célhelyekre, hibák léphetnek fel. A hibák gyakran előfordulnak váratlan adatértékek miatt. Az adatátalakítás például meghiúsul, mert egy oszlop sztringet tartalmaz szám helyett, az adatbázisoszlopba való beszúrás meghiúsul, mert az adatok dátumok, és az oszlop numerikus adattípussal rendelkezik, vagy egy kifejezés nem tudja kiértékelni, mert egy oszlop értéke nulla, és érvénytelen matematikai műveletet eredményez.

A hibák általában az alábbi kategóriákba sorolhatók:

  • Adatkonvertálási hibák, amelyek akkor fordulnak elő, ha az átalakítás jelentős számjegyek elvesztését, jelentéktelen számjegyek elvesztését és sztringek csonkolását eredményezi. Adatkonvertálási hibák akkor is előfordulnak, ha a kért átalakítás nem támogatott.

  • Kifejezéskiértékelési hibák, amelyek akkor fordulnak elő, ha a futtatáskor kiértékelt kifejezések érvénytelen műveleteket hajtanak végre, vagy a hiányzó vagy helytelen adatértékek miatt szintaktikailag helytelenek lesznek.

  • Keresési hibák, amelyek akkor fordulnak elő, ha egy keresési művelet nem talál egyezést a keresési táblában.

Az Integrációs szolgáltatások hibáinak, figyelmeztetéseinek és egyéb üzeneteinek listáját az Integration Services hiba- és üzenethivatkozásában találja.

Hibakimenetek használata sorszintű hibák rögzítéséhez

Számos adatfolyam-összetevő támogatja a hibakimeneteket, így szabályozhatja, hogy az összetevő hogyan kezeli a sorszintű hibákat mind a bejövő, mind a kimenő adatokban. Megadhatja, hogyan viselkedik az összetevő csonkoláskor vagy hiba esetén a bemenet vagy kimenet egyes oszlopainak beállításaival. Megadhatja például, hogy az összetevő sikertelen legyen, ha az ügyfélnév adatai csonkulnak, de figyelmen kívül hagyja a kevésbé fontos adatokat tartalmazó másik oszlop hibáit.

A hibakimenet csatlakoztatható egy másik átalakítás bemenetéhez, vagy betölthető egy másik célhelyre, mint a nem hibás kimenet. Például a hibakimenet csatlakoztatható egy Származtatott oszlop transzformációhoz, amely egy üres oszlop számára biztosít sztringet.

Az alábbi ábra egy egyszerű adatfolyamot mutat be, amely hibakimenetet is tartalmaz.

Adatfolyam hibakimenettel

További információ: Adatfolyam- és integrációs szolgáltatások elérési útjai.

Hibakimenet párbeszédpanel konfigurálása

A Hibakimenet konfigurálása párbeszédpanel használatával konfigurálhatja a hibakimenetet támogató adatfolyam-átalakítások hibakezelési beállításait.

A hibakimenetek kezelésével kapcsolatos további információkért lásd: Hibakezelés az adatokban.

Beállítások

Bemenet vagy kimenet
A kimenet nevének megtekintése.

oszlop
Az átalakítási szerkesztő párbeszédpanelen kiválasztott kimeneti oszlopok megtekintése.

Hiba
Ha lehetséges, adja meg, hogy mi történjen, ha hiba történik: hagyja figyelmen kívül a hibát, irányítsa át a sort, vagy hiúsítsa meg az összetevőt.

Kapcsolódó témakörök:Hibakezelés az adatokban

Truncálás
Ha lehetséges, adja meg, hogy mi történjen csonkítás esetén: hagyja figyelmen kívül a hibát, irányítsa át a sort, vagy meghiúsuljon az összetevő.

Kapcsolódó témakörök:Hibakezelés az adatokban

Leírás
Tekintse meg a művelet leírását.

Állítsa be ezt az értéket a kijelölt cellákra
Adja meg, hogy mi történjen az összes kijelölt cellával, ha hiba vagy csonkolás történik: hagyja figyelmen kívül a hibát, irányítsa át a sort, vagy az összetevő meghibásodjon.

alkalmazása
Alkalmazza a hibakezelési beállítást a kijelölt cellákra.

A hibák lehetnek meghibásodások vagy csonkolások

A hibák két kategóriába sorolhatók: hibák vagy csonkolások.

Hibák. A hiba egyértelmű hibát jelez, és NULL eredményt hoz létre. Ilyen hibák lehetnek adatkonvertálási hibák vagy kifejezésértékelési hibák. Ha például betűrendes karaktereket tartalmazó sztringet próbál számmá alakítani, az hibát okoz. Az adatkonvertálások, a kifejezéskiértékelések és a kifejezéseredmények változókhoz, tulajdonságokhoz és adatoszlopokhoz való hozzárendelése meghiúsulhat az illegális leadások és a nem kompatibilis adattípusok miatt. További információ: Cast (SSIS Expression), Integration Services-adattípusok kifejezésekben és Integration Services-adattípusok.

Csonkolások. A csonkolás kevésbé súlyos, mint egy hiba. A csonkolás olyan eredményeket hoz létre, amelyek felhasználhatók vagy akár kívánatosak is lehetnek. Dönthet úgy, hogy a csonkolásokat hibaként vagy elfogadható feltételként kezeli. Ha például egy 15 karakter hosszúságú karakterláncot szúr be egy olyan oszlopba, amely csak egy karakter széles, választhatja a sztring csonkolását.

Hibakezelési beállítás kiválasztása

Beállíthatja, hogy a források, átalakítások és célhelyek hogyan kezeljék a hibákat és a csonkolásokat. Az alábbi táblázat a beállításokat ismerteti.

Lehetőség Leírás
Hibás összetevő Az adatfolyam-feladat hiba vagy csonkolás esetén meghiúsul. Kudarc az alapértelmezett lehetőség a hibára és a csonkolásra.
Hiba figyelmen kívül hagyása A rendszer figyelmen kívül hagyja a hibát vagy a csonkolást, és az adatsor az átalakítás vagy forrás kimenetére lesz irányítva.
Átirányítási sor A hiba vagy a csonkítási adatsor a forrás, az átalakítás vagy a cél hibakimenetére lesz irányítva.

További információ a hibáról

Az adatoszlopok mellett a hibakimenet tartalmazza az ErrorCode és az ErrorColumn oszlopokat is. Az ErrorCode oszlop azonosítja a hibát, és az ErrorColumn tartalmazza a hibaoszlop sorazonosítóját.

Bizonyos körülmények között az ErrorColumn oszlop értéke nulla. Ez akkor fordul elő, ha a hibafeltétel egyetlen oszlop helyett a teljes sort érinti. Ilyen például, ha egy keresés meghiúsul a Keresés átalakítás során.

Ez a két numerikus érték korlátozottan használható a megfelelő hibaleírás és oszlopnév nélkül. Az alábbiakban néhány módszert talál a hiba leírásának és az oszlop nevének lekérésére.

  • A hibaleírásokat és az oszlopneveket is láthatja, ha egy Adatmegjelenítőt csatol a hibakimenethez. Az SSIS Designerben kattintson a jobb gombbal a hibakimenethez vezető piros nyílra, és válassza az Adatmegjelenítő engedélyezése lehetőséget.

  • Az oszlopneveket a naplózás engedélyezésével és a DiagnosticEx-esemény kiválasztásával találhatja meg. Ez az esemény egy adatfolyam-oszloptérképet ír a naplóba. Ezután megkeresheti az oszlop nevét az oszloptérkép azonosítójából. Vegye figyelembe, hogy a DiagnosticEx esemény nem őrzi meg a szabad térközt az XML-kimenetében a napló méretének csökkentése érdekében. Az olvashatóság javítása érdekében másolja a naplót egy XML-szerkesztőbe – például a Visual Studióban –, amely támogatja az XML-formázást és a szintaxiskiemelést. További információkért a naplózásról lásd az Integration Services (SSIS) naplózását.

    Íme egy példa egy adatfolyam-oszloptérképre.

    
    \<DTS:PipelineColumnMap xmlns:DTS="www.microsoft.com/SqlServer/Dts">  
        \<DTS:Pipeline DTS:Path="\Package\Data Flow Task">  
            \<DTS:Column DTS:ID="11" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Customer]"/>  
            \<DTS:Column DTS:ID="12" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Product]"/>  
            \<DTS:Column DTS:ID="13" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Price]"/>  
            \<DTS:Column DTS:ID="14" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Output].Columns[Timestamp]"/>  
            \<DTS:Column DTS:ID="20" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Customer]"/>  
            \<DTS:Column DTS:ID="21" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Product]"/>  
            \<DTS:Column DTS:ID="22" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Price]"/>  
            \<DTS:Column DTS:ID="23" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[Timestamp]"/>  
            \<DTS:Column DTS:ID="24" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[ErrorCode]"/>  
            \<DTS:Column DTS:ID="25" DTS:IdentificationString="ADO NET Source.Outputs[ADO NET Source Error Output].Columns[ErrorColumn]"/>  
            \<DTS:Column DTS:ID="31" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Customer]"/>  
            \<DTS:Column DTS:ID="32" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Product]"/>  
            \<DTS:Column DTS:ID="33" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Price]"/>  
            \<DTS:Column DTS:ID="34" DTS:IdentificationString="Flat File Destination.Inputs[Flat File Destination Input].Columns[Timestamp]"/>  
        \</DTS:Pipeline>  
    \</DTS:PipelineColumnMap>  
    
    
  • A Szkript összetevővel a hibaleírást és az oszlopnevet is belefoglalhatja a hibakimenet további oszlopaiba. Példa: Hibakimenet javítása a szkriptösszetevővel.

    • Adja meg a hiba leírását egy további oszlopban, azáltal hogy meghív egyetlen szkriptsor segítségével a GetErrorDescription felület IDTSComponentMetaData100 metódusát.

    • Adja meg az oszlop nevét egy további oszlopban egyetlen szkriptsor használatával a felület [Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100.GetIdentificationStringByID*] metódusának (/previous-versions/sql/sql-server-2016/mt657629(v=sql.130)) meghívásához IDTSComponentMetaData100 .

    A Szkript összetevőt hozzáadhatja az adatfolyam hibaszegmenséhez az adatfolyam azon összetevőitől kezdve, amelyek hibáit rögzíteni szeretné. A szkript összetevőt általában közvetlenül a hibasorok célhelyre történő írása előtt helyezi el. Így a szkript csak az írott hibasorok leírásait keresi meg. Az adatfolyam hibaszegmense kijavíthat néhány hibát, és nem írhatja ezeket a sorokat egy hibahelyre.

Lásd még:

Adatfolyam
Adatok átalakítása átalakításokkal
Összetevők csatlakoztatása elérési utakkal
Adatfolyam-tevékenység
Adatfolyam