none
Mejor forma de trabajo con archivos de logs RRS feed

  • Pregunta

  • Hola

    Quisiera ver si me pueden orientar en la mejor forma de :

    Tengo en mi computadora el sql2012, vs2010, y por otra parte tengo un server win2008r2 con sqlserver2012,  Estoy desarrollando un Datawarehouse en el sql2012 del servidor win2008, en mi maquina he creado un proyecto en el cual estoy creando paquetes SSIS para la toma de informacion de diferentes sistemas, hasta ahi todo funciona perfecto, en uno de los paquetes quiero tener control de errores que me cree un file txt con las filas que no se puedan importar, hacer eso es facil ya q indico simplemente un path y listo, pero lo que no se como se hará es:

    • Cuando termine mis paquetes,.. y tenga que hacer el deploy al server que pasara con los paths a los files??? tendre q cambiar uno por uno?
    • Tienen algun link o lectura respecto a deploy de una solucion que tenga  paquetes SSIS, cubos, dimensions SSAS ?

    Gracias por la guia


    Salu2 Sergio T

    viernes, 12 de octubre de 2012 14:12

Respuestas

  • Hola

    Gracias por tu repuesta,... unas dudas al respecto

    en mi caso quiero guardar en la configuracion un Path a una carpeta en la cual quiero que se creen los archivos de errores q seran archivos planos donde quiero acumular las filas q no se pudieron imporar. Para eso debo crear una variable, por ejemplo "@PathErroresTabla1" y en mi archivo de configuracion entonces debo definir una variable "PathErroresTabla1" cierto??, ahora bien, en la configuracion del archivo de errores debo indicar el path donde se guardara el file de errores y me pide un path standar osea c:\midir\file.txt, en ves de eso debo colocar "@PathErroresTabla1" asi es????

    Mencionas el tema de conectionstring y expresiones,.. tienes algun link sobre eso??? para leer un poco más? para ver como se asigna el valor de la variable al elemento de configuración??? no llego a entnder esta parte

    Gracias por tu tiempo!!!


    Salu2 Sergio T

    Hola Sergio,

    Por lo que indicas la variable no debe contener el nombre del fichero sino la ruta y de forma dinámica generar el nombre para añadir la fecha en cada ejecución. De forma que en la variable PathErroresTabla1 (que será la que expongas a través de configuración de paquetes) puedes asignarle el varlor C:\midir siguiendo tu ejemplo. Para cambiar la cadena de conexión en tiempo de ejecución tienes que utilizar las 'expressions' del administrador de conexión del archivo destino (en el panel de propiedades del objeto). En el formulario de expresiones busca la propiedad ConnectionString y asignas una expresión similar a la siguiente:

    @[User::MyDir] + "\\ErroresTabla1_" + (DT_STR,50,1252) (YEAR( @[System::StartTime])*10000 +MONTH( @[System::StartTime])*100+DAY( @[System::StartTime]))

    Cuando comience la ejecución del paquete y si tiene habilitadas las configuraciones leerá los valores asignados para la propiedad o variable que se exponga desde la configuración. Date cuenta que también puedes exponer directamente la propiedad Connection String del administrador de conexión del archivo plano que sería más útil si el nombre del archivo no tuviera que variar, pero si lo haces así en este caso eliminas la posibilidad de utilizar expresiones y dinamizar así el archivo de destino.

    Por otra parte si trabajas con SQL Server 2012 debes tener en cuenta que esto puedes hacerlo en los proyectos de tipo Package deployment model (legacy), las configuraciones de paquetes dejan de existir en los proyectos de tipo Project Deployment model http://bifase.blogspot.com.es/2012/01/arquitectura-del-servidor-y-catalogo.html)


    Víctor M. Sánchez García (ES) (BI) Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky

    lunes, 29 de octubre de 2012 8:59

Todas las respuestas

  • Hola,

    ,

    Hay ciertas configuraciones que deben realizarse por medios de parámetros de configuración y expresiones.

    Para conocer un poco de expression lee el siguiente link: SSIS Expressions Basics

    Luego que conoces un poco de las expresiones, te recomiendo utilizar archivo de configuración o tabla de configuración, para ello mira los siguientes link: XML Configuration files in SQL Server Integration Services,  Using Configuration Tables in SSIS 2008/2005

    como recomendación, utiliza tablas de configuración y procura parametrizar aquellos valores que sean importante porque puedan cambiar en ambiente de productivo, en este caso las rutas de los directorios de proceso, son candidatos para esta configuración parametrizada.


    Ahias Portillo

    sábado, 13 de octubre de 2012 2:15
  • Hola

    gracias por loso links, los he leido y opté por la opcion de guardar la configuracion enel SQL, me parece excelente, lo que hice fue crear una variable de tipo String en la cual colocare el path completo ahora la pregunta,.. donde coloco esa variable y como? uso @??? como la referencio ? como la cargo desde la tabla de configuracion ? como la coloco en el campo en el cual debo colocar el path al archivo de logs?

    muchas gracias estimado Ahias, por tu tiempo


    Salu2 Sergio T

    martes, 16 de octubre de 2012 16:25
  • Tienes que crear variables con el mismo nombre para cada variable que tienes en el archivo de configuracion, al comenzar la ejecucion del paquete se cargaran automaticamente en las variables que definiste.

    Si por ejemplo tienes una variable de conectionstring entonces tienes que configurar tambien tu coneccion string usando expresiones, ahi en esa expresion asignas el valor de tu variable a un elemento de configuracion de tu conectionstring

    jueves, 25 de octubre de 2012 0:55
  • Hola

    Gracias por tu repuesta,... unas dudas al respecto

    en mi caso quiero guardar en la configuracion un Path a una carpeta en la cual quiero que se creen los archivos de errores q seran archivos planos donde quiero acumular las filas q no se pudieron imporar. Para eso debo crear una variable, por ejemplo "@PathErroresTabla1" y en mi archivo de configuracion entonces debo definir una variable "PathErroresTabla1" cierto??, ahora bien, en la configuracion del archivo de errores debo indicar el path donde se guardara el file de errores y me pide un path standar osea c:\midir\file.txt, en ves de eso debo colocar "@PathErroresTabla1" asi es????

    Mencionas el tema de conectionstring y expresiones,.. tienes algun link sobre eso??? para leer un poco más? para ver como se asigna el valor de la variable al elemento de configuración??? no llego a entnder esta parte

    Gracias por tu tiempo!!!


    Salu2 Sergio T

    jueves, 25 de octubre de 2012 12:26
  • Hola,

    Te recomiendo leer un poco estos link para configurar el connectionstring.

    OJO en este link : http://simonlv.blogspot.com/2012/05/ssis-step-by-step-002-output-data-to.html

    Puedes ver todo el articulo o puedes ir especificamente a la siguiente seccion "12. Edit FFD_AddressByCity and new a connection manager"

    http://www.ssistalk.com/how-tos/using-sql-server-configurations-to-configure-flat-file-connection-manager/

    Pido disculpas por no contestar muy rapido, pero he estado un poco ocupado, haciendo mi ante proyecto de tesis.

    Saludos cordiales


    Ahias Portillo


    jueves, 25 de octubre de 2012 15:12
  • Hola

    Gracias por tu repuesta,... unas dudas al respecto

    en mi caso quiero guardar en la configuracion un Path a una carpeta en la cual quiero que se creen los archivos de errores q seran archivos planos donde quiero acumular las filas q no se pudieron imporar. Para eso debo crear una variable, por ejemplo "@PathErroresTabla1" y en mi archivo de configuracion entonces debo definir una variable "PathErroresTabla1" cierto??, ahora bien, en la configuracion del archivo de errores debo indicar el path donde se guardara el file de errores y me pide un path standar osea c:\midir\file.txt, en ves de eso debo colocar "@PathErroresTabla1" asi es????

    Mencionas el tema de conectionstring y expresiones,.. tienes algun link sobre eso??? para leer un poco más? para ver como se asigna el valor de la variable al elemento de configuración??? no llego a entnder esta parte

    Gracias por tu tiempo!!!


    Salu2 Sergio T

    Hola Sergio,

    Por lo que indicas la variable no debe contener el nombre del fichero sino la ruta y de forma dinámica generar el nombre para añadir la fecha en cada ejecución. De forma que en la variable PathErroresTabla1 (que será la que expongas a través de configuración de paquetes) puedes asignarle el varlor C:\midir siguiendo tu ejemplo. Para cambiar la cadena de conexión en tiempo de ejecución tienes que utilizar las 'expressions' del administrador de conexión del archivo destino (en el panel de propiedades del objeto). En el formulario de expresiones busca la propiedad ConnectionString y asignas una expresión similar a la siguiente:

    @[User::MyDir] + "\\ErroresTabla1_" + (DT_STR,50,1252) (YEAR( @[System::StartTime])*10000 +MONTH( @[System::StartTime])*100+DAY( @[System::StartTime]))

    Cuando comience la ejecución del paquete y si tiene habilitadas las configuraciones leerá los valores asignados para la propiedad o variable que se exponga desde la configuración. Date cuenta que también puedes exponer directamente la propiedad Connection String del administrador de conexión del archivo plano que sería más útil si el nombre del archivo no tuviera que variar, pero si lo haces así en este caso eliminas la posibilidad de utilizar expresiones y dinamizar así el archivo de destino.

    Por otra parte si trabajas con SQL Server 2012 debes tener en cuenta que esto puedes hacerlo en los proyectos de tipo Package deployment model (legacy), las configuraciones de paquetes dejan de existir en los proyectos de tipo Project Deployment model http://bifase.blogspot.com.es/2012/01/arquitectura-del-servidor-y-catalogo.html)


    Víctor M. Sánchez García (ES) (BI) Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky

    lunes, 29 de octubre de 2012 8:59
  • voy a intentar hacer lo q dices,.. leeré un poco mas del tema

    gracias


    Salu2 Sergio T

    martes, 30 de octubre de 2012 22:08