origen y destino con script component SSIS
-
miércoles, 01 de febrero de 2012 13:59
Hola como estan, agradecería por favor cualquier colaboración al respecto. He logrado crear el paquete, transfiriendo de base a base en sql server y de archivo plano a base, incluyendo el control sql task, que para mi caso solo limpia antes de llenar. Todo lo anterior lo he logrado con código, sin embargo, avanzando en el tema sobre los script component, encuentro en estos links ejemplos para usar el script component como origen y destino
http://msdn.microsoft.com/es-es/library/ms136060%28v=SQL.90%29.aspx
http://msdn.microsoft.com/es-es/library/ms135939%28v=sql.90%29.aspxSiguiendo el ejemplo hasta el origen esta bien configurado gráficamente, intenté continuar el ejemplo colocando otro script component vinculando al anterior para que reciba la salida, luego intenté configurarlo para que grabara pero me salen errores. Alguién tiene por ahí algún ejemplo usando estos 2 componentes juntos como origen y destino.
La mayoría de ejemplos solo muestra o bien como origen o bien como destino pero no juntos. Objetivo: en el origen es obtener de base de datos el nombre de la tabla y que campos campos leer (esto se parametrizará), armar la sentencia, la cadena de conexión y obtener los datos, luego ya hay un sp que valida la información, entonces por cada registro se debe pasar al sp y este último hace lo suyo (graba en la base de datos). Entonces de acuerdo a esto no se si se necesitan dos script component o solo uno. Ahora yo sé que esto también lo podría hacer el script component pero lo que pasa es que ya exíste el sp y solo lo voy a reutilizar.
Agradezco cualquier colaboración al respecto.
Todas las respuestas
-
viernes, 03 de febrero de 2012 10:54
Si lo que necesitas es llamar a un procedimiento almacenado ya tienes la tarea "OLE DB Command", no hace falta montarte un Script Component.
Lo que no sé es hasta qué punto tiene sentido hacer lo que comentas como un paquete de SSIS, los cuales están pensados para tratamiento de grandes cantidades de datos. Sin embargo en el momento que estás llamando a un procedimiento almacenado le estás obligando a ir registro a registro, con lo que el rendimiento no será muy bueno
-
viernes, 03 de febrero de 2012 14:46
Hola como estas, gracias por tu comentario. Aclarando lo anterior la información a cargar son 12 millones de registros, y por otro lado el procedimiento es porque ya existe y lo estoy reutilizando. Lo que hace es validar a nivel de estructura los datos, por ejemplo que el nombre no supere 60 caracteres, o el tipo de documento no venga algo distinto a lo parametrizado o venga vacío etc, etc. El procedimiento además determina si no se cumple alguna de varias validaciones inserta el registro en otra tabla con un código de tipo de causal.
Estas validaciones son necesarias, ahora sé que se pueden hacer en el mismo script component, pero para evitar la fatiga reutilizo el sp.
De hecho en estos momentos he resuelto el problema, era la conexión tienen que ser de tipo ADO.NET.
Por causalidad sabes ¿Cómo por código dinámico se crea el componente "scritp component". lo que pasa es que gráficamente si lo sé hacer pero como estoy haciendo el paquete por código no sé como crear el script component y adjuntarselo al paquete.
En las siguientes direcciones me muestra como crear el scritp component como destino, origen y transformacion pero esto es gráficamente.
http://msdn.microsoft.com/en-us/library/ms135939.aspx
Cómo lo hago programáticamente asi como las conexiones u otros componentes por ejemplo.
http://msdn.microsoft.com/en-us/library/ms136093%28v=sql.90%29.aspx
Finalmente opté por hacerlo por ssis porque por código .net tiene una demora de 3 horas cargar y validar. Aspiro que con este método pueda rebajar a la mitad tal vez. ¿Tienes alguna sugerencia?
- Editado novatin viernes, 03 de febrero de 2012 14:57
-
sábado, 04 de febrero de 2012 11:43
Todo ese tipo de validaciones las puedes implementar como transformaciones dentro del DataFlow, y te aseguro que el rendimiento va a ser mucho mejor que hacerlo a través de un procedimiento almacenado.
Aplicar conceptos de la POO (Programación Orientada a Objetos) tales como la reusabilidad en base de datos no suele dar buenos resultados, así que te recomiendo que te olvides de llamar a ese procedimiento y reescribas el paquete de la forma que te comentaba en el primer párrafo. Tal vez te cueste más al principio, pero si lo que buscas es rendimiento es que no hay color...
- Marcado como respuesta qwalgrandeMVP, Moderator miércoles, 08 de febrero de 2012 10:09
-
domingo, 05 de febrero de 2012 15:39
Agradezco tus comentarios, ya que lo dices realizaré pruebas y tomaré tiempos. En estos momentos el proceso con el sp bajo a 1 hora, si es mas rápido con las transformaciones lo cambiaré.
Gracias nuevamente.

