14 abril 2009

Analysis Services Command Line Utility: ASCMD

Con SQL 2005 se introdujo un nuevo utilitario para ejecutar T-SQL desde la ventana de comandos llamado SQLCMD. Bajo esta misma analogía se ha publicado la versión para Analysis Services llamada ASCMD que en este caso no viene en el instalador de SQL Server sino que se debe descargar desde el lugar de ejemplos de Analysis Services en CodePlex. Existen distintas versiones del instalador como msi (x86, x64 y ia64) y como archivo comprimido (zip).

Tal como en SQLCMD, el uso de ASCMD está orientado a automatizar tareas en donde no podamos usar el SQL Management Studio o para ejecutar diversos comandos contra nuestr Analysis Services desde una aplicación externa o de terceros. ASCMD puede ejecutar 3 tipos de comandos: XMLA (comandos administrativos), MDX (consultas contra cubos) y DMX (consultas contra modelos de data mining). ASCMD acepta como servidor destino las versiones 2005 y 2008 de Analysis Services.

Luego de descargar e instalar el programa por defecto deben buscar el folder ascmd en C:\Program Files\Microsoft SQL Server\100\Samples\Analysis Services\Administrator. Les recomiendo leer el documento Readme_ascmd.docx que tiene todo el detalle de cómo usar el comando y excelentes de ejemplo de escenarios para automatizar tareas. Es importante resaltar que el gran potencial del comando radica en poder usar variables en dentro de los scripts que pueden recibir valores en el momento de su ejecución o desde variables del sistema (environment variables) de Windows.

Un ejemplo de uso del comando se muestra a continuación:

C:\>ascmd -S myserver -d "Adventure Works DW" -i query.mdx -o result.xml -v cube="[Adventure Works]"

Principales parámetros:

-S: indica el nombre del servidor
-d: indica la base de datos
-i: indica el archivo donde se tiene el query o comando que quiere ejecutar
-Q: Consulta que se quiere ejecutar (no desde un archivo sino desde el mismo comando)
-o: el nombre del archivo donde se escribirán los resultados o  mensajes de salida
-v: el nombre del cubo
-U: el nombre del usuario cuando no se está usando Windows Integrated Security
-P: el password del usuario cuando no se está usando Windows Integrated Security
-TI: imprime la duración de las consultas

Para no repetir el documento Readme_ascmd.docx los dejo con los nombres del los escenarios que de uso ejemplificados que se encuentran en el documento que nos da muchas más ideas acerca del uso de ASCMD:

  1. Consultando un cubo de Analysis Services
  2. Creando el backup de una base de datos en un servidor remoto via HTTP
  3. Procesamiento de múltiples particiones
  4. Creación de una nueva base de datos
  5. Creación de un “Cache Warmer” (para poner las consultas más usadas en cache, a manera de tener mejores tiempos de respuesta en el primer uso de nuestros reportes basados en MDX)
  6. Creando un procedimiento de validación (en base al tiempo de duración de las consultas)
  7. Automatizando la construcción y entrenamiento de un modelo de Data Mining
  8. Limpiando el Data Cache de Analysis Services (cuando estamos corriendo pruebas contra SSAS y queremos saber la duración real de las consultas sin estar en cache)
  9. Determinando quién está conectado a su servidor
  10. Averiguar cuándo fue la última vez en que se procesó un partición
  11. Grabar la metadata del servidor o “local cube” en un archivo XML
  12. Grabar la configuración del servidor
  13. Realizando una operación de Writeback
  14. Ejecutando muchas consultas en secuencia o en paralelo

Alan