Showing posts with label SSIS. Show all posts
Showing posts with label SSIS. Show all posts

Monday, November 27, 2017

Data Profiling Task for Multiple Tables

I am a big fan of BIML, so when I was faced with the task of creating DataProfile Tasks for several dozens of tables in the database, I naturally turned to a quick and easy BIML solution:




There are however some other alternative solutions, like here: Using the Data Profiling Task To Profile All the Tables in a Database

Tuesday, November 21, 2017

Developing Custom SSIS Data Flow Component: helpful links

Great resource to start with. A sample source code is also available for download.
http://geekswithblogs.net/Compudicted/archive/2012/03/01/creating-a-custom-ssis-data-flow-component---an-example.aspx

How to work with Connections
https://docs.microsoft.com/en-us/sql/integration-services/extending-packages-custom-objects-data-flow-types/developing-a-custom-source-component

Debugging Custom component
https://docs.microsoft.com/en-us/sql/integration-services/extending-packages-custom-objects/building-deploying-and-debugging-custom-objects

1. Component Project in DEBUG mode
2. register .dll in GAC and copy it in the DTS\PipelineComponents
3. in SSIS project: breakpoint on Pre-Execute of the Data Flow Task. Wait till we hit breakpoint
4. in Component project - Debug - > Attach to process. Select DtsDebugHost.exe (Managed, x64)
5. in Component project - put a breakpoint in code in Validate or PreExecute or ProcessInput
6. in SSIS project: click Continue
7. you should hit the breakpoint in the Component project

Automate with Post-build event: registering .dll in GAC and copying it in the DTS\PipelineComponents
http://toddmcdermid.blogspot.ca/2009/01/custom-component-developing-post-build.html

this worked:
copy "$(TargetDir)$(TargetName).DLL" "C:\Program Files (x86)\Microsoft SQL Server\110\DTS\PipelineComponents\"
gacutil.exe -i "$(TargetDir)$(TargetName).DLL"

Supporting different SQL Server platforms:

Support multi-targeting in your custom components

Getting your SSIS custom extensions to be supported by the multi-version support of SSDT 2015 for SQL Server 2016

Using PerformUpgrade

https://www.red-gate.com/simple-talk/sql/ssis/developing-a-custom-ssis-source-component/

https://blogs.perficient.com/microsoft/2016/04/developing-custom-ssis-component-9-lessons-learned/

Friday, December 12, 2014

Inaccessible logs: Security

We are using Event Log quite a lot to log error messages from SSIS Packages, and sometimes there could be security issues when doing it.

One of the issues I encountered was the error

"The source was not found, but some or all event logs could not be searched. Inaccessible logs: Security"

In French: "Erreur : la source est introuvable mais certains ou l'ensemble des journaux des événements n'ont pas pu faire l'objet d'une recherche.
Journaux inaccessibles : sécurité"

when logging with a custom Source in the Event Log

This error is happening because in order to use this Source, system has to access Security log, and the user that is running the SSIS Package has insufficient rights to access this log.

To add the user, go to regedit (Registry Editor), HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog

add a user that is running the SSIS Package (in my case it was NT AUTHORITY\Network Service) to Permissions (right click on key, then select "Permissions…") with Full Control to both eventlog and security keys