Una descripción rápida de SSAS para DBA
Entonces, usted es un DBA de SQL Server y acaba de heredar algunos cubos de la nada para administrar. Un curso rápido acelerado sobre la administración de SSAS parece estar en orden.
Desde un punto de vista administrativo, SSAS es una aplicación bastante sencilla, si necesita recursos. Es mucho más simple que una plataforma DBMS, aunque es diferente en varias formas. Además, hay algunas tareas administrativas, como la optimización basada en el uso específica de SSAS, que es posible que tenga que entender.
Haga una copia de seguridad de su archivo de configuración
Todos los datos de configuración viven en un archivo llamado msdmsrv.ini
. Es un archivo XML. Si juega con la configuración a través de SSMS (Conéctese al servidor, haga clic con el botón derecho en el servidor, seleccione propiedades), puede configurar las opciones que romperán el servidor al iniciar. Tome una copia msmdsrv.ini
antes de jugar con cualquier cosa.
Parámetros importantes
Memoria: SSAS es un cerdo de la memoria bíblica. Si es posible, le gustan las compilaciones de 64 bits y mucha memoria. Los parámetros 'Memory \ LowMemoryLimit' y 'Memory \ HighMemoryLimit' controlan las políticas de uso de memoria. LowMemoryLimit no es una asignación mínima de memoria. Es un umbral donde SSAS considera que el sistema tiene poca memoria y comienza a eliminar cosas de sus cachés. HighMemoryLimit es el máximo absoluto que usará.
Tenga en cuenta que SSAS almacena sus datos en archivos (muchos archivos, no tiene ningún mecanismo equivalente a los grupos de archivos), por lo que hace mucho uso del almacenamiento en caché del sistema de archivos O / S para esos archivos. Tenga en cuenta que el valor predeterminado para estos límites es aproximadamente el 65% y el 80% de la memoria de la máquina, respectivamente, por lo que si desea que el servidor OLAP coexista con una instancia de SQL Server, deberá desactivarlos para que no pelee por la memoria con El servidor de la base de datos.
Directorios: Cinco parámetros de interés cubren esto: DataDir, AllowBrowsingFolders, BackupDir, LogDir y TempDir. DataDir y AllowBrowsingFolders son los más importantes.
AllowBrowsingFolders afecta la lista de carpetas en las que el servidor OLAP colocará sus archivos de datos. Cualquier cosa que tenga una interfaz de usuario (por ejemplo, el asistente de implementación) restringirá sus opciones a la lista en AllowBrowsingFolders. El valor es una lista delimitada por tuberías ('|') de directorios.
DataDir es la ruta predeterminada para los archivos. Si tiene la intención de particionar el cubo en varios volúmenes, deberá configurar AllowBrowsingFolders adecuadamente.
LogDir es donde el servidor coloca varios archivos de registro, incluidos el registrador de vuelo y los registros de consultas. El registro del registrador de vuelo se usa para la resolución de problemas y el registro de consultas OLAP se usa para la optimización basada en el uso (más sobre esto más adelante).
TempDir es una ubicación para archivos temporales que SSAS crea durante el procesamiento. Si está procesando grandes volúmenes de datos y tiene problemas de rendimiento, puede beneficiarse de cambiar esto a otro volumen de los datos.
BackupDir es lo que dice en la lata.
Varios:
algunos parámetros diversos también pueden ser de interés. Un par de conjuntos que puede tener que ajustar son:
DefaultMaxDrillthroughRows: esto limita el tamaño de los conjuntos de filas de obtención de detalles. Es posible que necesite tocar esto para permitir más.
Subprocesos / tiempos de espera: es posible que deba ajustarlos. Nunca he tenido que molestarme.
Esos son los conceptos básicos. Es posible que necesite modificar los otros por razones específicas, pero puede hacer su tarea al respecto.
Puede encontrar una guía de referencia para las propiedades del servidor SSAS aquí.
Operaciones
Implementación: puede compilar un proyecto en BIDS y obtener un conjunto de archivos que se pueden implementar con el asistente de implementación. Es posible que deba ajustar las rutas de archivo para particiones y algunas otras cosas.
Tareas de administración programadas y por lotes: los comandos se envían a SSAS a través de una API de servicio web llamada XML / A. Microsoft proporciona una herramienta interactiva para emitir connands MDX y XML / A. Si tiene que incrustar MDX en un comando XML / A, tenga cuidado con la necesidad de usar escapes XML como &
. Esto no es un problema con el editor MDX y la herramienta de consulta en SSMS.
Los trabajos sin conexión se pueden realizar a través de varias tareas de procesamiento de cubos SSIS, una utilidad de línea de comandos llamada ascmd.exe
o una API .Net llamada AMO. También puede obtener varias herramientas de PowerShell y similares. ascmd.exe
toma un archivo XML / A y lo publica en el servidor. Si tiene que modificar el archivo mediante programación, es mejor que trabaje con pequeñas herramientas .Net en lugar de tratar de manipular archivos XML desde un script .cmd.
La guía de operaciones entra en esto con más detalle.
Seguridad
La seguridad en SSAS es bastante simplista. Tiene una función global de 'Servidor' que tiene permisos administrativos en todo el sistema. Desafortunadamente, necesita 'Servidor' para crear bases de datos, por lo que es muy probable que deba otorgarlo a los desarrolladores en cualquier servidor OLAP de desarrollo que tenga.
Otra seguridad solo se puede aplicar a esquemas de cubo individuales. Puede otorgar permisos de lectura, proceso, obtención de detalles, reescritura y similares en elementos individuales a roles dentro de un esquema. Los roles en los esquemas OLAP se pueden definir dentro de BIDS y se implementan con el cubo. Se pueden asignar grupos o usuarios de AD a esos roles a través de SSMS.
Un ejemplo de cómo administrar programáticamente la membresía de roles se puede ver aquí.
Optimización basada en el uso.
Como DBA, es posible que te involucres en este, pero primero un poco de información sobre el almacenamiento físico. SSAS funciona mediante el cálculo y la persistencia de agregados preconstruidos junto con los datos base. Si se puede satisfacer una consulta presionando un agregado, el servidor OLAP lo usará con preferencia a los datos base, ya que el agregado implicará mucho menos E / S y, por lo tanto, será más rápido recuperar los datos.
Sin embargo, debe determinar qué agregados calcular (es decir, para qué combinaciones de atributos de dimensión generar los resúmenes). BIDS tiene una herramienta que adivinará esto y generará algo para usted. Algunas herramientas, como BIDS helper también le permitirán editar manualmente los agregados.
La optimización basada en el uso funciona al tomar un registro de las consultas reales emitidas al servidor y luego usar ese registro para elaborar un conjunto de agregados que serían óptimos para esas consultas. Como DBA, puede configurar el registro de consultas OLAP para capturar estos datos y luego ejecutar la optimización en el cubo. Aquí puede encontrar un resumen sobre cómo configurar el registro de consultas .
La herramienta para hacer esto se llama 'Asistente de optimización basada en el uso'. Esto vive en SSMS, y se puede encontrar abriendo la partición en el explorador y seleccionando 'Optimización basada en el uso' en el menú del botón derecho.
La guía de rendimiento entra en sintonía con más detalle.
MDX
MDX se parece un poco a SQL pero funciona de manera muy diferente. Un tratado sobre 'MDX para programadores SQL' es un tema completo por derecho propio. Sugiero leer algunos de los tutoriales sobre él y / o conseguir un libro sobre él. Además, la gente amigable aquí en dba.se puede ayudarlo con preguntas si tiene alguna.
MDX no tiene ningún concepto de filtrado de filas. El lenguaje tiene muchas operaciones establecidas para determinar qué mostrar en los distintos ejes de la consulta 1 , más 'SELECCIONAR'. Puede usar with
declaraciones que se parezcan un poco a los CTE para definir medidas y conjuntos.
Algunos recursos introductorios de programación MDX se pueden encontrar aquí y aquí (este es bastante antiguo y muy largo). También hay algunos buenos libros sobre el tema; Esta pregunta SO tiene un gran despliegue en los recursos SSAS.
1 Aunque tiene operadores no vacíos que restringen los resultados a combinaciones que realmente tienen datos. La mayoría de las consultas MDX consisten en definir qué sectores mostrar en los ejes, y serán necesarios operadores no vacíos para evitar que las consultas devuelvan cantidades de nivel combinatorio de celdas vacías.