jueves, 6 de mayo de 2010

Como procesar un Cubo de SSAS sin utilizar SSIS

El otro día necesitaba crear un Job para refrescar los datos de un Cubo y no quería crear un ETL con SSIS para hacerlo. Después de investigar un poco descubrí que hay diversas alternativas.

1. Como ya he dicho, crear un ETL con Integration Services que lo haga

http://consultingblogs.emc.com/jamiethomson/archive/2006/07/18/SSIS_2F00_SSAS_3A00_-Process-SSAS-dimensions-and-measure-groups-individually.aspx

2. Crear un VBScript con Windows Scripting Host (WSH)

http://www.ssas-info.com/analysis-services-scripts/1622-script-to-automate-ssas-partition-management-sql-ssis


3. Crear un PowerShell script

http://www.ssas-info.com/analysis-services-scripts/1238-powershell-script-to-process-all-dimensions-and-cubes-in-one-db-limiting-workload

4. Mediante un XMLA

Creardo un Job de tipo SQL Server Analisys Services Command y usar el siguiente código XMLA:


<Parallel>
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100">
<Object>
<DatabaseID>Raona</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>


Para obtener el script que adjunto se puede hacer en Visual Studio o Management Studio, haciendo process del Cubo y haciendo View Details del Command.



Tened en cuenta que los ejemplos que adjunto necesitan ser adaptados al entorno de trabajo.

Yo he utilizado la opción del Job con XMLA.