catalog.add_data_tap
Se aplica a: SQL Server SSIS Integration Runtime en Azure Data Factory
Se aplica a: SQL Server
Agrega una derivación de datos en el resultado de un componente de un flujo de datos de paquete, para una instancia de la ejecución.
Sintaxis
catalog.add_data_tap [ @execution_id = ] execution_id
, [ @task_package_path = ] task_package_path
, [ @dataflow_path_id_string = ] dataflow_path_id_string
, [ @data_filename = ] data_filename
, [ @max_rows = ] max_rows
, [ @data_tap_id = ] data_tap_id OUTPUT
Argumentos
[ @execution_id = ] execution_id
Identificador de ejecución correspondiente a la ejecución que contiene el paquete. El parámetro execution_id es de tipo bigint.
[ @task_package_path = ] task_package_path
Ruta de acceso del paquete para la tarea Flujo de datos. La propiedad PackagePath para la tarea de flujo de datos especifica la ruta de acceso. La ruta de acceso distingue mayúsculas de minúsculas. Para buscar la ruta de acceso del paquete, en SQL Server Data Tools, haga clic con el botón derecho en la tarea Flujo de datos y, a continuación, haga clic en Propiedades. La propiedad PackagePath aparece en la ventana Propiedades.
El parámetro task_package_path es de tipo nvarchar(max) .
[ @dataflow_path_id_string = ] dataflow_path_id_string
Cadena de identificación de la ruta de flujo de datos. Una ruta de acceso conecta dos componentes de flujo de datos. La propiedad IdentificationString de la ruta de acceso especifica la cadena.
Para buscar la cadena de identificación, en SQL Server Data Tools, haga clic con el botón derecho en la ruta de acceso entre dos componentes de flujo de datos y, a continuación, haga clic en Propiedades. La propiedad IdentificationString aparece en la ventana Propiedades.
El parámetro dataflow_path_id_string es de tipo nvarchar(4000) .
[ @data_filename = ] data_filename
Nombre del archivo que almacena los datos derivados. Si la tarea Flujo de datos se ejecuta en un bucle Foreach o en un contenedor de bucles For, los datos derivados se almacenan en archivos diferentes para cada iteración del bucle. Cada archivo tiene como prefijo un número que corresponde a una iteración.
De forma predeterminada, el archivo se almacena en la carpeta <unidad>:\Archivos de programa\Microsoft SQL Server\130\DTS\DataDumps.
El parámetro data_filename es de tipo nvarchar(4000) .
[ @max_rows = ] max_rows
Número de filas que se capturan durante la derivación de datos. Si no se especifica este valor, se capturan todas las filas. El parámetro max_rows es de tipo int.
[ @data_tap_id = ] data_tap_id
Devuelve el identificador de la derivación de datos. El parámetro data_tap_id es de tipo bigint.
Ejemplo
En el ejemplo siguiente, se crea una derivación de datos en la ruta de flujo de datos, 'Paths[OLE DB Source.OLE DB Source Output]
, en la tarea de flujo de datos, \Package\Data Flow Task
. Los datos derivados se almacenan en el archivo output0.txt
en la carpeta DataDumps (<unidad>:\Archivos de programa\Microsoft SQL Server\130\DTS\DataDumps).
Declare @execution_id bigint
Exec SSISDB.Catalog.create_execution @folder_name='Packages',@project_name='SSISPackages', @package_name='Package.dtsx',@reference_id=Null, @use32bitruntime=False, @execution_id=@execution_id OUTPUT
Exec SSISDB.Catalog.set_execution_parameter_value @execution_id,50, 'LOGGING_LEVEL', 0
Exec SSISDB.Catalog.add_data_tap @execution_id, @task_package_path='\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[OLE DB Source.OLE DB Source Output]', @data_filename = 'output0.txt'
Exec SSISDB.Catalog.start_execution @execution_id
Comentarios
Para agregar pulsaciones de datos, la instancia de la ejecución debe estar en estado creado (un valor de 1 en la columna de estado de la vista catalog.operations (base de datos de SSISDB) . El valor de estado cambia cuando se ejecuta la ejecución. Puede crear una ejecución mediante una llamada a catalog.create_execution (SSISDB Database).
A continuación se indican algunas consideraciones sobre el procedimiento almacenado add_data_tap.
Si una ejecución contiene un paquete primario y uno o varios paquetes secundarios, necesita agregar una derivación de datos para cada paquete para el que desee derivar datos.
Si un paquete contiene más de una tarea Flujo de datos con el mismo nombre, task_package_path identifica de forma única la tarea Flujo de datos que contiene la salida del componente derivado.
Al agregar una derivación de datos, esta no se valida antes de que se ejecute el paquete.
Se recomienda que limite el número de filas que se capturan durante la derivación de datos para evitar que se generen archivos de datos grandes. Si el equipo en el que se ejecuta el procedimiento almacenado se queda sin espacio de almacenamiento para los archivos de datos, el paquete deja de ejecutarse y se escribe un mensaje de error en el registro.
La ejecución del procedimiento almacenado add_data_tap afecta al rendimiento del paquete. Se recomienda que ejecute el procedimiento almacenado solo para solucionar problemas de datos.
Para tener acceso al archivo que almacena los datos derivados, debe ser administrador en el equipo en el que se ejecuta el procedimiento almacenado. También debe ser el usuario que inició la ejecución que contiene el paquete con la derivación de datos.
Códigos de retorno
0 (correcto)
Cuando se produce un error en el procedimiento almacenado, se genera un error.
Tipo de cursor
None
Permisos
Este procedimiento almacenado necesita uno de los permisos siguientes:
Permisos MODIFY en la instancia de ejecución
Pertenencia al rol de base de datos de ssis_admin
Pertenencia al rol de servidor de sysadmin
Errores y advertencias
En la lista siguiente se describen las condiciones que hacen que el procedimiento almacenado genere un error.
El usuario no tiene permisos MODIFY.
La derivación de datos para el componente especificado, en el paquete indicado, ya se ha agregado.
El valor especificado para el número de filas para capturar no es válido.
Requisitos
Recursos externos
Entrada de blog, SSIS 2012: A Peek to Data Taps (SSIS 2012: información general sobre las derivaciones de datos), en rafael-salas.com.