Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
SSIS Integration Runtime in Azure Data Factory
Microsoft Integration Services en de SSIS Designer bevatten functies en hulpprogramma's die u kunt gebruiken om problemen met de gegevensstromen in een Integration Services-pakket op te lossen.
SSIS Designer biedt gegevensviewers.
SSIS Designer- en Integration Services-transformaties bieden rijaantallen.
SSIS Designer biedt voortgangsrapportage tijdens runtime.
Gegevensviewers
Gegevensviewers geven gegevens weer tussen twee onderdelen in een gegevensstroom. Gegevensviewers kunnen gegevens weergeven wanneer de gegevens uit een gegevensbron worden geëxtraheerd en de gegevensstroom binnenkomen, zowel voor als nadat een transformatie de gegevens bijwerkt, en voordat de gegevens in de bestemming worden geladen.
Als u de gegevens wilt weergeven, koppelt u gegevensviewers aan het pad dat twee gegevensstroomonderdelen verbindt. De mogelijkheid om gegevens tussen gegevensstroomonderdelen weer te geven, maakt het gemakkelijker om onverwachte gegevenswaarden te identificeren, de manier te bekijken waarop een transformatie kolomwaarden wijzigt en de reden te ontdekken waarom een transformatie mislukt. U kunt bijvoorbeeld merken dat een zoekactie in een verwijzingstabel mislukt en dat u dit wilt corrigeren door een transformatie toe te voegen die standaardgegevens voor lege kolommen biedt.
Een gegevensviewer kan gegevens in een raster weergeven. Met behulp van een raster selecteert u de kolommen die u wilt weergeven. De waarden voor de geselecteerde kolommen worden weergegeven in tabelvorm.
U kunt ook meerdere gegevenscontrolepanelen invoegen op een pad. U kunt dezelfde gegevens in verschillende indelingen weergeven, bijvoorbeeld een grafiekweergave en een rasterweergave van de gegevens maken of verschillende gegevensviewers maken voor verschillende kolommen met gegevens.
Wanneer u een gegevensviewer aan een pad toevoegt, voegt SSIS Designer een pictogram voor gegevensviewer toe aan het ontwerpoppervlak van het tabblad Gegevensstroom , naast het pad. Transformaties die meerdere uitvoer kunnen hebben, zoals de transformatie voorwaardelijk splitsen, kunnen een gegevensviewer voor elk pad bevatten.
Tijdens runtime wordt een Gegevensviewer-venster geopend en worden de gegevens weergegeven die door het gegevensviewerformaat zijn opgegeven. Een gegevensviewer die gebruikmaakt van de rasterindeling toont bijvoorbeeld gegevens voor de geselecteerde kolommen, het aantal uitvoerrijen dat wordt doorgegeven aan het gegevensstroomonderdeel en het aantal weergegeven rijen. De informatie geeft buffer per buffer weer en, afhankelijk van de breedte van de rijen in de gegevensstroom, kan een buffer meer of minder rijen bevatten.
In het dialoogvenster Gegevensviewer kunt u de gegevens naar het Klembord kopiëren, alle gegevens uit de tabel wissen, de gegevensviewer opnieuw configureren, de gegevensstroom hervatten en de gegevensviewer loskoppelen of koppelen.
Een gegevensviewer toevoegen
Aantal rijen
Het aantal rijen dat via een pad is doorgegeven, wordt weergegeven op het ontwerpoppervlak van het tabblad Gegevensstroom in SSIS Designer naast het pad. Het aantal wordt regelmatig bijgewerkt zolang de gegevens door het traject bewegen.
U kunt ook een transformatie van het aantal rijen toevoegen aan de gegevensstroom om het uiteindelijke aantal rijen in een variabele vast te leggen. Zie Transformatie van het aantal rijenvoor meer informatie.
Voortgangsrapportage
Wanneer u een pakket uitvoert, geeft SSIS Designer de voortgang weer op het ontwerpoppervlak van het tabblad Gegevensstroom door elk gegevensstroomonderdeel weer te geven in een kleur die de status aangeeft. Wanneer elk onderdeel zijn werk begint uit te voeren, verandert deze van geen kleur in geel en verandert het in groen wanneer het is voltooid. Een rode kleur geeft aan dat het onderdeel is mislukt.
In de volgende tabel wordt de kleurcodering beschreven.
| Kleur | Description |
|---|---|
| Geen kleur | Wacht totdat deze wordt aangeroepen door de gegevensstroomengine. |
| Yellow | Een transformatie uitvoeren, gegevens extraheren of gegevens laden. |
| Green | Succesvol uitgevoerd. |
| rood | Uitgevoerd met fouten. |
Analyse van gegevensstroom
U kunt de catalog.execution_data_statisticsSSISDB-databaseweergave gebruiken om de gegevensstroom van pakketten te analyseren. In deze weergave wordt telkens wanneer een gegevensstroomonderdeel gegevens naar een downstreamonderdeel verzendt een rij weergegeven. De informatie kan worden gebruikt om meer inzicht te krijgen in de rijen die naar elk onderdeel worden verzonden.
Opmerking
Het logboekregistratieniveau moet worden ingesteld op Uitgebreid om informatie vast te leggen met de catalog.execution_data_statistics weergave.
In het volgende voorbeeld wordt het aantal rijen weergegeven dat wordt verzonden tussen onderdelen van een pakket.
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
In het volgende voorbeeld wordt het aantal rijen per milliseconden berekend dat door elk onderdeel wordt verzonden voor een specifieke uitvoering. De berekende waarden zijn:
total_rows : de som van alle rijen die door het onderdeel zijn verzonden
wall_clock_time_ms : de totale verstreken uitvoeringstijd, in milliseconden, voor elk onderdeel
num_rows_per_millisecond : het aantal rijen per milliseconde dat door elk onderdeel wordt verzonden
De HAVING clausule wordt gebruikt om een delen door nul fout in de berekeningen te voorkomen.
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
Een foutuitvoer configureren in een gegevensstroomonderdeel
Veel gegevensstroomonderdelen ondersteunen foutuitvoer en afhankelijk van het onderdeel biedt SSIS Designer verschillende manieren om een foutuitvoer te configureren. Naast het configureren van een foutuitvoer kunt u ook de kolommen van een foutuitvoer configureren. Dit omvat het configureren van de kolommen ErrorCode en ErrorColumn die door het onderdeel worden toegevoegd.
Foutuitvoer configureren
Als u een foutuitvoer wilt configureren, hebt u twee opties:
Gebruik het dialoogvenster Foutuitvoer configureren . U kunt dit dialoogvenster gebruiken om een foutuitvoer te configureren voor elk gegevensstroomonderdeel dat ondersteuning biedt voor een foutuitvoer.
Gebruik het dialoogvenster Editor voor het onderdeel. Met sommige onderdelen kunt u foutuitvoer rechtstreeks vanuit hun editordialoogvenster configureren. U kunt echter geen foutuitvoer configureren vanuit het editordialoogvenster voor de ADO NET-bron, de Importkolomtransformatie, de OLE DB-opdrachttransformatie of de SQL Server Compact-bestemming.
In de volgende procedures wordt beschreven hoe u deze dialoogvensters gebruikt om foutuitvoer te configureren.
Een foutuitvoer configureren met het dialoogvenster Foutuitvoer configureren
Open in SQL Server Data Tools (SSDT) het Integration Services-project dat het gewenste pakket bevat.
Dubbelklik in Solution Explorer op het pakket om het te openen.
Klik in SSIS Designer op het tabblad Gegevensstroom .
Sleep de foutuitvoer, vertegenwoordigd door de rode pijl, van het onderdeel dat de bron van de fouten is naar een ander onderdeel in de gegevensstroom.
Selecteer in het dialoogvenster Foutuitvoer configureren een actie in de kolommen Fout en Afkapping voor elke kolom in de componentinvoer.
Als u het bijgewerkte pakket wilt opslaan, klikt u in het menu Bestand op Geselecteerde items opslaan.
Een foutuitvoer toevoegen met behulp van het dialoogvenster van de editor voor de component
Open in SQL Server Data Tools (SSDT) het Integration Services-project dat het gewenste pakket bevat.
Dubbelklik in Solution Explorer op het pakket om het te openen.
Klik in SSIS Designer op het tabblad Gegevensstroom .
Dubbelklik op de onderdelen van de gegevensstroom waarin u een foutuitvoer wilt configureren en voer, afhankelijk van het onderdeel, een van de volgende stappen uit:
Klik op Foutuitvoer configureren.
Klik op Foutuitvoer.
Stel de optie Fout in voor elke kolom.
Stel de optie Afkapping voor elke kolom in.
Klik op OK.
Als u het bijgewerkte pakket wilt opslaan, klikt u in het menu Bestand op Geselecteerde items opslaan.
Kolommen voor foutuitvoer configureren
Als u de kolommen voor foutuitvoer wilt configureren, moet u het tabblad Invoer- en uitvoereigenschappen van het dialoogvenster Geavanceerde editor gebruiken.
Uitvoerkolommen voor fouten configureren
Open in SQL Server Data Tools (SSDT) het Integration Services-project dat het gewenste pakket bevat.
Dubbelklik in Solution Explorer op het pakket om het te openen.
Klik in SSIS Designer op het tabblad Gegevensstroom .
Klik met de rechtermuisknop op het onderdeel waarvan u de kolommen voor foutuitvoer wilt configureren en klik op Geavanceerde editor weergeven.
Klik op het tabblad Invoer- en uitvoereigenschappen en vouw <componentnaam> Foutuitvoer uit en vouw vervolgens Uitvoerkolommen uit.
Klik op een kolom en werk de eigenschappen ervan bij.
Opmerking
De lijst met kolommen bevat de kolommen in de onderdeelinvoer, de kolommen ErrorCode en ErrorColumn die zijn toegevoegd door eerdere foutuitvoer en de kolommen ErrorCode en ErrorColumn die door dit onderdeel zijn toegevoegd.
Klik op OK.
Als u het bijgewerkte pakket wilt opslaan, klikt u in het menu Bestand op Geselecteerde items opslaan.
Een gegevensviewer toevoegen aan een gegevensstroom
In dit onderwerp wordt beschreven hoe u een gegevensviewer toevoegt en configureert in een gegevensstroom. In een gegevensviewer worden gegevens weergegeven die worden verplaatst tussen twee onderdelen van de gegevensstroom. Een gegevensviewer kan bijvoorbeeld de gegevens weergeven die zijn geëxtraheerd uit een gegevensbron voordat een transformatie in de gegevensstroom de gegevens wijzigt.
Een pad verbindt onderdelen in een gegevensstroom door de uitvoer van het ene gegevensstroomonderdeel te verbinden met de invoer van een ander onderdeel.
Voordat u gegevensviewers aan een pakket kunt toevoegen, moet het pakket een gegevensstroomtaak en ten minste twee gegevensstroomonderdelen bevatten die zijn verbonden.
Voeg een gegevensviewer toe aan een foutuitvoer om de beschrijving van de fout en de naam van de kolom waarin de fout is opgetreden te zien. Standaard bevat de foutuitvoer alleen numerieke id's voor de fout en de kolom.
Een gegevensviewer toevoegen aan een gegevensstroom
Open in SQL Server Data Tools (SSDT) het Integration Services-project dat het gewenste pakket bevat.
Dubbelklik in Solution Explorer op het pakket om het te openen.
Klik op het tabblad Controlestroom als deze nog niet actief is.
Klik op de gegevensstroomtaak waaraan u een gegevensviewer wilt koppelen en klik vervolgens op het tabblad Gegevensstroom .
Klik met de rechtermuisknop op een pad tussen twee gegevensstroomonderdelen en klik op Bewerken.
Op de pagina Algemeen kunt u padeigenschappen weergeven en bewerken. In de vervolgkeuzelijst PathAnnotation kunt u bijvoorbeeld de aantekening selecteren die naast het pad wordt weergegeven.
Op de pagina Metagegevens kunt u de kolommetagegevens bekijken en de metagegevens naar het Klembord kopiëren.
Klik op de pagina Gegevensviewer op Gegevensviewer inschakelen.
Selecteer in het gebied Kolommen die u wilt weergeven, de kolommen die u in de gegevensviewer wilt weergeven. Standaard worden alle beschikbare kolommen geselecteerd en weergegeven in de lijst Weergegeven kolommen . Verplaats kolommen die u niet wilt gebruiken naar de lijst Ongebruikte Kolommen door ze te selecteren en vervolgens op de linkerpijl te klikken.
Opmerking
In het raster worden waarden die de DT_DATE, DT_DBTIME2, DT_FILETIME, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 en DT_DBTIMESTAMPOFFSET gegevenstypen weergeven als met ISO 8601 opgemaakte tekenreeksen en vervangt een spatiescheidingsteken het T-scheidingsteken . Waarden die de DT_DATE en DT_FILETIME gegevenstypen vertegenwoordigen, bevatten zeven cijfers gedurende fractionele seconden. Omdat in het DT_FILETIME gegevenstype slechts drie cijfers van fractionele seconden worden opgeslagen, worden in het raster nullen weergegeven voor de resterende vier cijfers. Waarden die het DT_DBTIMESTAMP gegevenstype vertegenwoordigen, bevatten drie cijfers voor fractionele seconden. Voor waarden die de DT_DBTIME2, DT_DBTIMESTAMP2 en DT_DBTIMESTAMPOFFSET gegevenstypen vertegenwoordigen, komt het aantal cijfers voor fractionele seconden overeen met de schaal die is opgegeven voor het gegevenstype van de kolom. Zie Datum- en tijdnotaties voor meer informatie over ISO 8601-indelingen. Zie Integration Services-gegevenstypen voor meer informatie over gegevenstypen.
Klik op OK.
Gegevensstroomaftappunten
U kunt tijdens runtime een datatap toevoegen op een gegevensstroompad van een pakket en de uitvoer van de datatap naar een extern bestand leiden. Als u deze functie wilt gebruiken, moet u uw SSIS-project implementeren met behulp van het projectimplementatiemodel op een SSIS-server. Nadat u het pakket op de server hebt geïmplementeerd, moet u T-SQL-scripts uitvoeren op de SSISDB-database om taps voor gegevens toe te voegen voordat u het pakket uitvoert. Hier volgt een voorbeeldscenario:
Maak een uitvoeringsexemplaar van een pakket met behulp van de stored procedure catalog.create_execution (SSISDB Database).
Voeg een datatap toe met behulp van de catalog.add_data_tap of catalog.add_data_tap_by_guid stored procedure.
Start het uitvoeringsexemplaar van het pakket met behulp van catalog.start_execution (SSISDB-database).
Hier volgt een voorbeeld van een SQL-script waarmee de stappen worden uitgevoerd die in het bovenstaande scenario worden beschreven:
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
De mapnaam, projectnaam en pakketnaamparameters van de create_execution opgeslagen procedure komen overeen met de map-, project- en pakketnamen in de Integration Services-catalogus. U kunt de map-, project- en pakketnamen ophalen die moeten worden gebruikt in de create_execution-aanroep van SQL Server Management Studio, zoals wordt weergegeven in de volgende afbeelding. Als u het SSIS-project hier niet ziet, hebt u het project mogelijk nog niet geïmplementeerd op de SSIS-server. Klik met de rechtermuisknop op het SSIS-project in Visual Studio en klik op Implementeren om het project te implementeren op de verwachte SSIS-server.
In plaats van de SQL-instructies te typen, kunt u het script voor het uitvoeren van het pakket genereren door de volgende stappen uit te voeren:
Klik met de rechtermuisknop op Package.dtsx en klik op Uitvoeren.
Klik op de knop Scriptwerkbalk om het script te genereren.
Voeg nu de add_data_tap-instructie toe vóór de start_execution aanroep.
De task_package_path-parameter van de stored procedure add_data_tap komt overeen met de PackagePath-eigenschap van de dataflow-taak in Visual Studio. Klik in Visual Studio met de rechtermuisknop op de gegevensstroomtaak en klik op Eigenschappen om het venster Eigenschappen te openen. Noteer de waarde van de eigenschap PackagePath om deze te gebruiken als waarde voor de parameter task_package_path bij de aanroep van de opgeslagen procedure add_data_tap.
De parameter dataflow_path_id_string van de stored procedure add_data_tap komt overeen met de eigenschap IdentificationString van het gegevensstroompad waaraan u een gegevenstik wilt toevoegen. Als u de dataflow_path_id_string wilt ophalen, klikt u op het gegevensstroompad (pijl tussen taken in de gegevensstroom) en noteert u de waarde van de eigenschap IdentificationString in het venster Eigenschappen.
Wanneer u het script uitvoert, wordt het uitvoerbestand opgeslagen in <Program Files>\Microsoft SQL Server\110\DTS\DataDumps. Als er al een bestand met de naam bestaat, wordt er een nieuw bestand met een achtervoegsel (bijvoorbeeld: output[1].txt) gemaakt.
Zoals eerder vermeld, kunt u ook de catalog.add_data_tap_by_guid stored procedure gebruiken in plaats van de add_data_tap stored procedure te gebruiken. Deze opgeslagen procedure gebruikt de id van de gegevensstroomtaak als een parameter in plaats van task_package_path. U kunt de id van de gegevensstroomtaak ophalen uit het eigenschappenvenster in Visual Studio.
Een gegevenstik verwijderen
U kunt een datatap verwijderen voordat u de uitvoering start, door gebruik te maken van de catalog.remove_data_tap stored procedure. Deze opgeslagen procedure neemt de ID van de datatap op als een parameter, die u kunt verkrijgen als resultaat van de add_data_tap opgeslagen procedure.
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
Alle tikken op gegevens weergeven
U kunt ook alle gegevens aftap weergeven met behulp van de weergave catalog.execution_data_taps. In het volgende voorbeeld worden gegevens taps opgehaald voor een specificatie-uitvoeringsinstantie (ID: 54).
select * from [SSISDB].[catalog].execution_data_taps where execution_id=@execid
Prestatieoverwegingen
Als u het uitgebreide logniveau inschakelt en datataps toevoegt, verhoogt u de I/O-bewerkingen die worden uitgevoerd door uw oplossing voor gegevensintegratie. Daarom raden we u aan om alleen datataps toe te voegen voor probleemoplossingsdoeleinden.
Video
In deze video op TechNet ziet u hoe u gegevenstikingen toevoegt/gebruikt in de SSISDB-catalogus van SQL Server 2012 die u helpt bij het programmatisch opsporen van fouten in pakketten en het vastleggen van de gedeeltelijke resultaten tijdens de runtime. Het bespreekt ook hoe u deze datataps kunt weergeven of verwijderen en de aanbevolen procedures voor het gebruik van datataps in SSIS-pakketten.