miércoles, 30 de mayo de 2012

SSIS: Obtener metadatos de ficheros

 

Introducción

Muchas veces es necesario comprobar algún metadato de un fichero antes de procesarlo. Supongamos que tenemos un paquete ETL que recoge un fichero con un volumen de datos importante, pongamos 100 millones de filas ( si, a veces pasa :) ). El contenido del fichero se genera cada cierto tiempo, pero su nombre nunca cambia. Cabe la posibilidad de obtener todo el contenido para compararlo contra el destino de datos, pero es una tarea que podemos (y debemos) evitar.

En este caso vamos a obtener la fecha de modificación de un fichero para determinar si es necesario procesarlo.

Obteniendo el metadato

Tenemos en un directorio un fichero llamado ventas.csv y disponemos de una tabla en la que vamos registrando la última fecha de modificación de forma que vamos a comparar este dato con el que tiene actualmente el fichero.

La estructura de la tabla es la siguiente:

CREATE TABLE [dbo].[FilesToProcess](
[Id] [int] NOT NULL,
[FileFullName] [varchar](255) NOT NULL,
[LastModifiedDate] [datetime] NOT NULL,
[ProcessDate] AS (getdate())
)
 
image

Para empezar, nos creamos tres variables de SSIS: vFilesFullName, vFileModifiedDate y vLastModifiedDate


image


Para obtener última fecha de modificación, añadimos un Execute TSQL Task al Control Flow y realizamos una consulta que nos devuelva el nombre del fichero a procesar y la última fecha de modificación que registramos:

SELECT [FileFullName], [LastModifiedDate]
FROM [dbo].[FilesToProcess]

En la sección General establecemos la opción ResultSet a Single Row


En la sección Result Set, mapeamos el resultado a las variables:


image


Añadimos un Script Task y lo conectamos a la salida de la tarea anterior. Editamos su configuración y establecemos las variables que va a utilizar. Como variables de lectura añadimos vFileFullName y vLastModifiedName y como variable escribible seleccionamos vFileModifiedName:


image


Lo siguiente es añadir el código al componente (personalmente prefiero C#)

public void Main()
{
// TODO: Add your code here
try
{
System.IO.FileInfo mFileInfo = new System.IO.FileInfo(Dts.Variables["vFileFullName"].Value.ToString());

if (mFileInfo != null)
{
Dts.Variables["vFileModifiedDate"].Value = mFileInfo.LastWriteTime;
Dts.TaskResult = (int)ScriptResults.Success;
}
else
{
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
catch(Exception ex)
{
Dts.Events.FireError(-1, ex.Source, ex.Message,string.Empty , 0);
}

}

Como veis, utilizamos la clase System.IO.FileInfo para obtener la fecha de modificación que actualmente tiene el fichero.


Lo siguiente, es añadir un DataFlow para procesar el fichero. Conectamos el Script Task con el Data Flow  y modificamos la restricción de precedencia (precedence constraint) para añadir la expresión:

@vFileModifiedDate!=@vLastModifiedDate

image


El aspecto final de este diseño debería ser el de la siguiente imagen:


image


Resumen


A través de la inclusión de código en Script tasks y Script Component podemos proveer a nuestros paquetes ETL de Integration Services. A través de este ejemplo hemos visto como solucionar un requisito que puede ser habitual encontrarse.


Si queréis descargaros el paquete de ejemplo dejadme un comentario, estaré encantado de compartirlo con vosotros


Guiño

lunes, 30 de abril de 2012

SolidQ Summit Madrid 2012 #SQSummit

 

Este año SolidQ celebra su VIII Summit en Madrid, los días 5,6 y 7 de Junio en el Regus Campo de las Naciones.
Se está convirtiendo en tradición dar comienzo al verano con este evento, el más relevante en España, sobre SQL Server y Microsoft Business Intelligence además de tracks de Colaboración y Búsqueda centrado en SharePoint y otro sobre tecnología Azure.

Además en esta edición contamos con la novedad del reciente lanzamiento del SQL Server 2012, lo que convierte el evento en una buena oportunidad para ponerse al día con el producto y todas las características que se han añadido en esta versión: Grupos AlwaysOn, funciones windowing en TSQL, el servicio Data Quality, el modelo tabular, BISM, Power view, integración con SharePoint 2010 etc…

Este año será la cuarta vez que asista al Summit de SolidQ, la segunda que tendré la oportunidad de participar como ponente :)

image

Es un oportunidad para conocer en persona a los ponentes, algunos de los profesionales más valorados por la industria, para dialogar y consultar temas de lo visto a lo largo del evento como casos particulares que tengamos entre manos. Es experiencia que compartiremos, no sólo a través de las sesiones sino también en la mesa mientras disfrutamos de un almuerzo o un café. Es una oportunidad para compartir dudas y trasladar problemáticas concretas.

Nos gustaría contar con tu asistencia y compartir estos días con nosotros como en años anteriores:




 

Para obtener más información visita:
SolidQ Summit Madrid 2012 donde podrás ver todos los detalles:

 

Yo estaré allí, ¿y tú?

miércoles, 18 de abril de 2012

SQL Server 2008 R2 Cumulative Updates

 

No hace mucho se publicó el CU#1 para SQL Server 2012, y entonces también se anunció que algunos KB resueltos también se aplicaban en SQL 2008 y SQL 2008 R2. Para estas versiones del producto habría que esperar para obtener el correspondiente paquete de actualizaciones….

Pues han salido del horno los CU (cumulative updates) para SQL Server 2008 R2, tanto para la versión RTM (CU#13) como para Service Pack 1 (CU#6)

RTM http://support.microsoft.com/kb/2679366 (Build 10.50.1815.0)

SP1 http://support.microsoft.com/kb/2679367 (Build 10.50.2811.0)

Como es habitual, en cada página encontrarán los problemas resueltos por cada paquete de actualización.

Happy updating Guiño

 

Enlaces

martes, 17 de abril de 2012

SQL Server 2012 Cumulative Update #1

 

SQL 2012 - landscape

Como bien sabéis todos los interesados, SQL Server 2012 está disponible de forma general desde el día 1 de Abril. 10 días después han publicado la primera actualización para el producto, que puedes descargarte desde http://support.microsoft.com/kb/2679368

Este paquete de actualizaciones también corrige problemas en versiones anteriores, pero para aplicarlas será necesario esperar algún tiempo más (unas dos semanas para el CU de 2008R2 y unas seis para el de 2008). En total, se resuelven 54 problemas conocidos de los cuales muchos se aplican en el motor de Analysis Services. Es una muy buena noticia que hayan centrado esfuerzos en mejorar esta parte del producto que cada vez gana más terreno por su implementación en soluciones de Inteligencia de Negocio.

Tras aplicar esta actualización, la build pasa de 11.0.2100 a 11.0.2316

Ya sabeis, si teneis la RTM en producción antes de aplicar esta CU mejor probar en otro entorno. Mejor prevenir…

Sonrisa

Enlaces

Windows 8: Ediciones

 

Siguiendo la línea del post anterior, en esta entrada quería compartir con ustedes que Microsoft ha anunciado las distintas ediciones de Windows 8 cliente: Windows 8, Windows 8 Pro y Windows RT (para procesadores ARM).

La entrada original la puedes encontrar en el blog de Windows 8, pero me he tomado la licencia de copiar aquí las características provistas en cada edición:

(click para mejor resolución)

image

Recuerda que puedes descargar, instalar y probar la entrega Consumer Preview de Windows 8

 

Enlaces

Windows 8 Editions (original  post)
Consumer preview of Windows 8

lunes, 12 de marzo de 2012

Windows 8 Server y SharePoint 2010

 

Últimamente me he entretenido en montar un dominio en Windows 8 Beta en mi entorno Hyper-V y por el camino me encontré algunas cosillas interesantes a tener en cuenta para la instalación de un SharePoint 2010 en server Windows 8 Beta

image

Al ejecutar el asistente de instalación de pre-requisitos aparece una advertencia sobre problemas de compatibilidad con el ejecutable, pulsamos sobre la opción Run the program without getting help para continuar.

Tras aceptar las condiciones legales del software y pulsar siguiente, nos muestra un resumen diciendo que ha habido un error:

image

Para salir del paso tenemos que hacer manualmente la configuración de requisitos de software que el sistema requiere para instalar SharePoint 2010.

Configurando Roles y Features

La instalación de pre-requisitos no funciona como debiera (más adelante veremos por qué), por lo que hay que instalar algunos componentes y configurar manualmente algunas características y roles del servidor.

Desde la consola de administración de servidor, accedemos al asistente para añadir funciones y características:

image

En la siguiente página del asistente, seleccionamos el tipo de instalación Role-based or feature-based installation:

image

Seleccionamos el servidor que queremos configurar:

image

Y en la página de Roles tenemos que marcar los siguientes:

image

Al seleccionar el rol Application Server aparecerá una nueva ventana dónde seleccionar los sus servicios:

image

Terminamos de seleccionar los roles

image

image

image

image

image

Pulsamos siguiente y marcamos las siguientes Features para instalar:

image

image

Y finalizamos el asistente instalando todo lo anterior.

Instalando componentes

Para poder instalar SharePoint todavía debemos cumplir con algunos requisitos de software más. Debemos instalar manualmente los componentes:

Si tienes dudas echa un vistazo a la página oficial de TechNet http://technet.microsoft.com/es-es/library/cc262485.aspx#section4

 

…Pero sigue fallando la instalación

Si echamos un vistazo al log que ha generado la ejecución del asistente de instalación de pre-requisitos podemos ver que el error ha ocurrido intentando ejecutar un script a través del comando c:\windows\system32\ServerManagerCMD.exe y en Windows 8 este archivo ha dejado de existir:

2012-03-12 20:28:47 - "C:\Windows\system32\ServerManagerCmd.exe" -inputpath "C:\Users\ADMINI~1\AppData\Local\Temp\2\PreD41A.tmp.XML"
2012-03-12 20:28:47 - Error: Unable to install (2)
2012-03-12 20:28:47 - Error: [In HRESULT format] (-2147024894)
2012-03-12 20:28:47 - Last return code (2)
2012-03-12 20:28:47 - Error: The tool was unable to install Application Server Role, Web Server (IIS) Role.
2012-03-12 20:28:47 - Last return code (2)

Este error es similar a uno que ocurre cuando intentamos instalar WebApps en un Windows 7, tal y como lo tiene documentado Steve en su blog.


Ha tenido el ingenio de crear un ejecutable que devuelve el mismo código de ejecución que el que espera obtener el asistente al lanzar el comando.


Podemos compilarnos un ejecutable similar o utilizar el que ha publicado Steve en su blog, y situarlo en c:\Windows\system32\


Y al final


Si todo ha ido bien, podemos lanzar el asistente de instalación de SharePoint 2010 sin tener que volver a ejecutar el asistente de instalación de pre-requisitos, que hemos instalado a manualmente.


Referencias


martes, 6 de marzo de 2012

Lanzamiento de SQL Server 2012!!!!

 

SQL 2012 - landscape

Después de un tiempo de pruebas y feedback sobre distintas entregas de la nueva versión de SQL Server (recordemos aquella CTP1 de Noviembre de 2010, la CTP3 publicada en Julio de 2011 y la Release Candicate 0 en Noviembre de 2011) hablando de novedades y más novedades

Por fin hoy ha sido publicada la release final de SQL Server 2012, que está disponible en versión de evaluación para descarga. Para más información, visita el anuncio oficial en los blogs de TechNet

Para poder comprar alguna de las ediciones disponibles tendremos que esperar hasta el 1 de Abril, mientras podemos consultar la lista de características soportadas para cada edición y buscar la que más se ajuste a las necesidades de nuestros sistemas.

Si estamos planeando una instalación o upgrade de alguna instancia no podemos olvidarnos de los cacharros: Hardware and Software Requirements for Installing SQL Server 2012 

Mañana día 7 de Marzo de 2012 Microsoft realiza el lanzamiento oficial del producto, con más de 30 sesiones impartidas por expertos técnicos y ejecutivos de la industria que nos contarán las bondades de SQL Server 2012. Regístrate si no quieres perdértelo!


Entradas populares