Dela via


Felsöka dataflöde

gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory

Microsoft Integration Services och SSIS Designer innehåller funktioner och verktyg som du kan använda för att felsöka dataflöden i ett Integration Services-paket.

  • SSIS Designer tillhandahåller datavisningsprogram.

  • SSIS Designer- och Integration Services-transformeringar ger radantal.

  • SSIS Designer tillhandahåller förloppsrapportering vid körning.

Datavisningsprogram

Datavisningsprogram visar data mellan två komponenter i ett dataflöde. Datavisningsprogram kan visa data när data extraheras från en datakälla och först anger ett dataflöde, före och efter en transformering uppdaterar data och innan data läses in till målet.

Om du vill visa data bifogar du datavisningsprogram till sökvägen som ansluter två dataflödeskomponenter. Möjligheten att visa data mellan dataflödeskomponenter gör det enklare att identifiera oväntade datavärden, visa hur en transformering ändrar kolumnvärden och identifiera orsaken till att en transformering misslyckas. Du kan till exempel upptäcka att ett uppslag i en referenstabell misslyckas och för att korrigera detta kanske du vill lägga till en transformering som tillhandahåller standarddata för tomma kolumner.

Ett datavisningsprogram kan visa data i ett rutnät. Med hjälp av ett rutnät väljer du de kolumner som ska visas. Värdena för de valda kolumnerna visas i tabellformat.

Du kan också inkludera flera datavisningsprogram på en sökväg. Du kan visa samma data i olika format, till exempel skapa en diagramvy och en rutnätsvy av data eller skapa olika datavisningsprogram för olika datakolumner.

När du lägger till ett datavisningsprogram i en sökväg lägger SSIS Designer till en datavisningsikon på designytan på fliken Dataflöde bredvid sökvägen. Transformationer som kan ha flera utdata, till exempel Conditional Split-transformationen, kan innehålla en datagranskare på varje väg.

Vid körning öppnas ett datavisningsfönster och den information som anges i datavisningsformatet visas. Ett datavisningsprogram som använder rutnätsformatet visar till exempel data för de valda kolumnerna, antalet utdatarader som skickas till dataflödeskomponenten och antalet rader som visas. Informationen visar bufferten efter buffert och beroende på radernas bredd i dataflödet kan en buffert innehålla fler eller färre rader.

I dialogrutan Datavisningsprogram kan du kopiera data till Urklipp, rensa alla data från tabellen, konfigurera om datavisningsprogrammet, återuppta dataflödet och koppla från eller bifoga datavisningsprogrammet.

Så här lägger du till ett datavisningsprogram

Antal rader

Antalet rader som har passerat genom en sökväg visas på designytan på fliken Dataflöde i SSIS Designer bredvid sökvägen. Numret uppdateras periodiskt medan data flyttas genom nätverket.

Du kan också lägga till en radräkningstransformering i dataflödet för att samla in det sista radantalet i en variabel. För mer information, se Radräkningstransformation.

Förloppsrapportering

När du kör ett paket visar SSIS Designer förloppet på designytan på fliken Dataflöde genom att visa varje dataflödeskomponent i en färg som anger status. När varje komponent börjar utföra sitt arbete ändras den från ingen färg till gul, och när den har slutförts ändras den till grön. En röd färg anger att komponenten misslyckades.

I följande tabell beskrivs färgkodningen.

Färg Description
Ingen färg Väntar på att anropas av dataflödesmotorn.
Yellow Utföra en transformering, extrahera data eller läsa in data.
Green Kördes framgångsrikt.
röd Kördes med fel.

Analys av dataflöde

Du kan använda databasvyn catalog.execution_data_statisticsSSISDB för att analysera paketens dataflöde. Den här vyn visar en rad varje gång en dataflödeskomponent skickar data till en underordnad komponent. Informationen kan användas för att få en djupare förståelse för de rader som skickas till varje komponent.

Anmärkning

Loggningsnivån måste anges till Utförlig för att samla in information med vyn catalog.execution_data_statistics.

I följande exempel visas antalet rader som skickas mellan komponenter i ett paket.

use SSISDB  
select package_name, task_name, source_component_name, destination_component_name, rows_sent  
from catalog.execution_data_statistics  
where execution_id = 132  
order by source_component_name, destination_component_name   

I följande exempel beräknas antalet rader per millisekund som skickas av varje komponent under en specifik körning. De beräknade värdena är:

  • total_rows – summan av alla rader som skickas av komponenten

  • wall_clock_time_ms – den totala körningstiden i millisekunder för varje komponent

  • num_rows_per_millisecond – antalet rader per millisekunder som skickas av varje komponent

HAVING-satsen används för att förhindra ett divide-by-zero-fel i beräkningarna.

use SSISDB  
select source_component_name, destination_component_name,  
    sum(rows_sent) as total_rows,  
    DATEDIFF(ms,min(created_time),max(created_time)) as wall_clock_time_ms,  
    ((0.0+sum(rows_sent)) / (datediff(ms,min(created_time),max(created_time)))) as [num_rows_per_millisecond]  
from [catalog].[execution_data_statistics]  
where execution_id = 132  
group by source_component_name, destination_component_name  
having (datediff(ms,min(created_time),max(created_time))) > 0  
order by source_component_name desc  

Konfigurera ett felutdata i en dataflödeskomponent

Många dataflödeskomponenter stöder felutdata, och beroende på komponenten tillhandahåller SSIS Designer olika sätt att konfigurera ett felutdata. Förutom att konfigurera felutmatning kan du även konfigurera dess kolumner. Detta inkluderar att konfigurera kolumnerna ErrorCode och ErrorColumn som läggs till av komponenten.

Konfigurera ett felutdataflöde

För att konfigurera en felutmatning har du två alternativ:

  • Använd dialogrutan Konfigurera felutdata. Du kan använda den här dialogrutan för att konfigurera ett felutdata på alla dataflödeskomponenter som stöder ett felutdata.

  • Använd redigeringsdialogrutan för komponenten. Med vissa komponenter kan du konfigurera felutdata direkt från redigeringsdialogrutan. Du kan dock inte konfigurera felutmatningar från redigerarens dialogruta för ADO NET-källan, Importera kolumn-transformationen, OLE DB-kommandotransformationen eller SQL Server Compact-målet.

Följande procedurer beskriver hur du använder dessa dialogrutor för att konfigurera felutdata.

Så här konfigurerar du ett felutdata med hjälp av dialogrutan Konfigurera felutdata

  1. I SQL Server Data Tools (SSDT) öppnar du projektet Integration Services som innehåller det paket du vill ha.

  2. Dubbelklicka på paketet i Solution Explorer för att öppna det.

  3. I SSIS Designer klickar du på fliken Dataflöde .

  4. Dra felutdata, som representeras av den röda pilen, från komponenten som är källan till felen till en annan komponent i dataflödet.

  5. I dialogrutan Konfigurera felutdata väljer du en åtgärd i kolumnerna Fel och Trunkering för varje kolumn i komponentindata.

  6. Spara det uppdaterade paketet genom att klicka på Spara markerade objektArkiv-menyn.

Så här lägger du till ett felutdata med hjälp av redigeringsdialogrutan för komponenten

  1. I SQL Server Data Tools (SSDT) öppnar du projektet Integration Services som innehåller det paket du vill ha.

  2. Dubbelklicka på paketet i Solution Explorer för att öppna det.

  3. I SSIS Designer klickar du på fliken Dataflöde .

  4. Dubbelklicka på de dataflödeskomponenter där du vill konfigurera ett felutdata och, beroende på komponenten, utföra något av följande steg:

    • Klicka på Konfigurera felutdata.

    • Klicka på Felutdata.

  5. Ange alternativet Fel för varje kolumn.

  6. Ange alternativet Trunkering för varje kolumn.

  7. Klicka på OK.

  8. Spara det uppdaterade paketet genom att klicka på Spara markerade objektArkiv-menyn.

Konfigurera kolumner för felutdata

Om du vill konfigurera felutdatakolumnerna måste du använda fliken Egenskaper för indata och utdata i dialogrutan Avancerad redigerare .

Så här konfigurerar du felutdatakolumner

  1. I SQL Server Data Tools (SSDT) öppnar du projektet Integration Services som innehåller det paket du vill ha.

  2. Dubbelklicka på paketet i Solution Explorer för att öppna det.

  3. I SSIS Designer klickar du på fliken Dataflöde .

  4. Högerklicka på komponenten vars fel utdatakolumner du vill konfigurera och klicka på Visa avancerad redigerare.

  5. Klicka på fliken Egenskaper för indata och utdata och expandera <komponentnamnet> Felutdata och expandera sedan Utdatakolumner.

  6. Klicka på en kolumn och uppdatera dess egenskaper.

    Anmärkning

    Listan över kolumner innehåller kolumnerna i komponentinmatningen, kolumnerna ErrorCode och ErrorColumn som lagts till av tidigare felutdata och kolumnerna ErrorCode och ErrorColumn som lagts till av den här komponenten.

  7. Klicka på OK.

  8. Spara det uppdaterade paketet genom att klicka på Spara markerade objektArkiv-menyn.

Lägga till ett datagranskare i ett dataflöde

Det här avsnittet beskriver hur du lägger till och konfigurerar ett datavisningsprogram i ett dataflöde. Ett datavisningsprogram visar data som rör sig mellan två dataflödeskomponenter. Ett datagranskare kan till exempel visa data som extraheras från en datakälla innan en transformering i dataflödet ändrar data.

En sökväg ansluter komponenter i ett dataflöde genom att ansluta utdata från en dataflödeskomponent till indata från en annan komponent.

Innan du kan lägga till datavisningsprogram i ett paket måste paketet innehålla en dataflödesaktivitet och minst två dataflödeskomponenter som är anslutna.

Lägg till ett datavisningsprogram i ett felutdata för att se beskrivningen av felet och namnet på kolumnen där felet inträffade. Som standard innehåller felutdata endast numeriska identifierare för felet och kolumnen.

Så här lägger du till ett datavisningsprogram i ett dataflöde

  1. I SQL Server Data Tools (SSDT) öppnar du projektet Integration Services som innehåller det paket du vill ha.

  2. Dubbelklicka på paketet i Solution Explorer för att öppna det.

  3. Klicka på fliken Kontrollflöde om den inte redan är aktiv.

  4. Klicka på dataflödesaktiviteten till vars dataflöde du vill koppla ett datavisningsprogram till och klicka sedan på fliken Dataflöde .

  5. Högerklicka på en sökväg mellan två dataflödeskomponenter och klicka på Redigera.

  6. På sidan Allmänt kan du visa och redigera sökvägsegenskaper. I listrutan PathAnnotation kan du till exempel välja den anteckning som visas bredvid sökvägen.

  7. På sidan Metadata kan du visa kolumnmetadata och kopiera metadata till Urklipp.

  8. På sidan Datavisning klickar du på Aktivera datavisningsprogram.

  9. I området Kolumner som ska visas väljer du de kolumner som du vill visa i datavisningsprogrammet. Som standard är alla tillgängliga kolumner markerade och listade i listan Visa kolumner . Flytta kolumner som du inte vill använda till listan oanvänd kolumn genom att välja dem och sedan klicka på vänsterpil.

    Anmärkning

    I rutnätet visas värden som representerar datatyperna DT_DATE, DT_DBTIME2, DT_FILETIME, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 och DT_DBTIMESTAMPOFFSET som ISO 8601-formaterade strängar och en blankstegsavgränsare ersätter T-avgränsaren . Värden som representerar datatyperna DT_DATE och DT_FILETIME innehåller sju siffror för bråksekunder. Eftersom DT_FILETIME datatypen bara lagrar tre siffror i bråksekunder visar rutnätet nollor för de återstående fyra siffrorna. Värden som representerar DT_DBTIMESTAMP datatyp innehåller tre siffror för bråksekunder. För värden som representerar datatyperna DT_DBTIME2, DT_DBTIMESTAMP2 och DT_DBTIMESTAMPOFFSET motsvarar antalet siffror för bråksekunder den skala som angetts för kolumnens datatyp. Mer information om ISO 8601-format finns i Datum- och tidsformat. Mer information om datatyper finns i Datatyper för Integration Services.

  10. Klicka på OK.

Tryck på dataflöde

Du kan lägga till en datatapp på en dataflödessökväg i ett paket vid körtid och dirigera utdata från datatappen till en extern fil. Om du vill använda den här funktionen måste du distribuera SSIS-projektet med hjälp av projektdistributionsmodellen till en SSIS-server. När du har distribuerat paketet till servern måste du köra T-SQL-skript i SSISDB-databasen för att lägga till datainhämtningar innan du kör paketet. Här är ett exempelscenario:

  1. Skapa en exekveringsinstans av ett paket med hjälp av den lagrade proceduren catalog.create_execution (SSISDB-databasen).

  2. Lägg till en datatap med hjälp av antingen catalog.add_data_tap eller catalog.add_data_tap_by_guid lagrade proceduren.

  3. Starta körningsinstansen av paketet med hjälp av catalog.start_execution (SSISDB Database).

Här är ett SQL-exempelskript som utför stegen som beskrivs i scenariot ovan:

Declare @execid bigint  
EXEC [SSISDB].[catalog].[create_execution] @folder_name=N'ETL Folder', @project_name=N'ETL Project', @package_name=N'Package.dtsx', @execution_id=@execid OUTPUT  
EXEC [SSISDB].[catalog].add_data_tap @execution_id = @execid, @task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt'  
EXEC [SSISDB].[catalog].[start_execution] @execid  

Parametrarna mappnamn, projektnamn och paketnamn för den create_execution lagrade proceduren motsvarar mapp-, projekt- och paketnamnen i Integration Services-katalogen. Du kan hämta mapp-, projekt- och paketnamnen som ska användas i create_execution-anropet från SQL Server Management Studio enligt följande bild. Om du inte ser ditt SSIS-projekt här kanske du inte har distribuerat projektet till SSIS-servern än. Högerklicka på SSIS-projektet i Visual Studio och klicka på Distribuera för att distribuera projektet till den förväntade SSIS-servern.

I stället för att skriva SQL-uttrycken kan du generera körningspaketskriptet genom att utföra följande steg:

  1. Högerklicka på Package.dtsx och klicka på Kör.

  2. Klicka på verktygsfältsknappen Skript för att generera skriptet.

  3. Lägg nu till add_data_tap-instruktionen före start_execution-anropet.

Parametern task_package_path för den lagrade proceduren add_data_tap motsvarar egenskapen PackagePath för dataflödesuppgiften i Visual Studio. Högerklicka på dataflödesaktiviteten i Visual Studio och klicka på Egenskaper för att starta fönstret Egenskaper. Observera värdet för egenskapen PackagePath för att använda det som ett värde för parametern task_package_path för den lagrade proceduren 'add_data_tap'.

Parametern dataflow_path_id_string för add_data_tap lagrad procedur motsvarar egenskapen IdentificationString för dataflödessökvägen som du vill lägga till ett datatryck i. Om du vill hämta dataflow_path_id_string klickar du på dataflödessökvägen (pilen mellan aktiviteter i dataflödet) och noterar värdet för egenskapen IdentificationString i fönstret Egenskaper.

När du kör skriptet lagras utdatafilen i <Program Files>\Microsoft SQL Server\110\DTS\DataDumps. Om det redan finns en fil med namnet skapas en ny fil med ett suffix (till exempel utdata[1].txt).

Som tidigare nämnts kan du också använda catalog.add_data_tap_by_guid lagrad procedur i stället för att använda add_data_tap lagrad procedur. Den här lagrade proceduren tar ID:t för dataflödesaktiviteten som en parameter i stället för task_package_path. Du kan hämta ID:t för dataflödesaktiviteten från egenskapsfönstret i Visual Studio.

Ta bort ett datatryck

Du kan ta bort en dataflik innan körningen startas med hjälp av catalog.remove_data_tap lagrade proceduren. Den här lagrade proceduren tar ID:t för datatappen som en parameter, som du kan få som utdata från den lagrade proceduren add_data_tap.

DECLARE @tap_id bigint  
EXEC [SSISDB].[catalog].add_data_tap @execution_id = @execid, @task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt' @data_tap_id=@tap_id OUTPUT  
EXEC [SSISDB].[catalog].remove_data_tap @tap_id  

Visa en lista över alla datatryckningar

Du kan också visa alla datakrantar med hjälp av vyn catalog.execution_data_taps. I följande exempel extraheras datapunkter för en specifikationskörningsinstans (ID: 54).

select * from [SSISDB].[catalog].execution_data_taps where execution_id=@execid  

Beaktanden av prestanda

Om du aktiverar utförlig loggningsnivå och lägger till datatryck ökar I/O-åtgärderna som utförs av din dataintegreringslösning. Därför rekommenderar vi att du endast lägger till datapunkter i felsökningssyfte

Videofilm

Den här videon på TechNet visar hur du lägger till/använder datatappar i SQL Server 2012 SSISDB-katalogen som hjälper dig att felsöka paket programmatiskt och samla in de partiella resultaten under körning. Den beskriver också hur du listar/tar bort dessa datakrannar och bästa praxis för att använda datakrannar i SSIS-paket.

Se även

Felhantering i data