Blog de Amazon Web Services (AWS)
Configurando Microsoft SQL Server Analysis Services en Amazon RDS para SQL Server
Por Edgar Tellez, Sr. Solutions Architect AWS México.
Ahora puede configurar Microsoft SQL Server Analysis Services (SSAS) en modelo tabular en Amazon RDS para SQL Server. SSAS funciona en la configuración Single-AZ para las ediciones Standard y Enterprise con la versión principal de SQL Server 2016 o 2017.
Si ejecuta SSAS en Amazon EC2, puede ahorrar en costos soportando directamente SSAS en Amazon RDS para SQL Server y consolidando esas cargas de trabajo para que se ejecuten en la misma instancia de base de datos RDS que su base de datos SQL Server. Sin embargo, debe tener en cuenta un impacto en el rendimiento si decide consolidar.
Las soluciones de procesamiento analítico en línea (OLAP Online Analytical Processing) mejoran los Data Warehouses y otras bases de datos relacionales al minimizar la cantidad de procesamiento al vuelo para un análisis y generación de informes rápidos y efectivos. Esto se logra principalmente mediante el procesamiento previo y el almacenamiento de una amplia gama de combinaciones de dimensiones y jerarquías antes de realizar cualquier análisis.
SSAS es una herramienta de inteligencia empresarial de Microsoft para desarrollar soluciones OLAP de nivel empresarial. Además de las consultas y los cálculos analíticos optimizados, SSAS proporciona modelos de datos semánticos que las aplicaciones cliente requieren, como Excel, Power BI, SQL Server Reporting Services (SSRS) y otras herramientas de visualización de datos e informes. El modelo tabular admite bases de datos en memoria diseñadas para consultas eficientes basadas en columnas y ofrece una mejor compresión de datos.
Esta publicación describe cómo configurar y usar SSAS en modelo tabular en Amazon RDS para instancias de base de datos de SQL Server.
SSAS en Amazon RDS para SQL Server
Para configurar SSAS en Amazon RDS para SQL Server, debe cumplir los siguientes requisitos:
La instancia de Amazon RDS para SQL Server debe ser SQL Server 2016 Standard o Enterprise Edition (13.00.5426.0.v1 o superior) o SQL Server 2017 Standard o Enterprise Edition (14.00.3223.3.v1 o superior).
La instancia debe estar unida a AWS Managed Microsoft Active Directory para habilitar la autenticación de Windows. Para obtener instrucciones, consulte Configuración de la autenticación de Windows para instancias de base de datos de SQL Server. Debe habilitar la integración de Amazon S3 para transferir copias de seguridad y modelos SSAS entre la instancia y un bucket de S3. Debe tener un inicio de sesión válido para la instancia de Microsoft SQL Server para Amazon RDS con permisos para descargar archivos de Amazon S3. Para obtener instrucciones, consulte Integración de una instancia de base de datos de Amazon RDS para SQL Server con Amazon S3.
Creando un grupo de opciones con la opción de SSAS
Para obtener instrucciones sobre cómo crear un grupo de opciones con la opción SSAS, consulte Trabajar con grupos de opciones. Incluya los siguientes pasos
Para Option name, seleccione SSAS.
Para Max Memory, especifique el umbral de porcentaje de memoria que su SSAS ocupa en su instancia de Microsoft SQL Server para Amazon RDS. Al configurar la memoria máxima, considere la cantidad de memoria disponible en la instancia de base de datos RDS. SSAS Tabular es una aplicación que consume mucha memoria. Si elige una memoria máxima más alta a la asignada a SSAS, potencialmente afectará las operaciones de SQL Server que residen en la misma instancia.
Cada instancia de base de datos debe tener al menos un grupo de seguridad asociado. Elija de la lista de sus grupos de seguridad o cree uno nuevo. Asegúrese de que el grupo de seguridad asociado permita el tráfico entrante para el puerto SSAS.
Conectarse a SSAS
Después de agregar la opción SSAS, debería poder conectarse a SSAS en la instancia de RDS. Para conectarse a SSAS, debe iniciar sesión en una computadora unida a un dominio como usuario de dominio. Complete los siguientes pasos:
- Inicie SQL Server Management Studio (SSMS).
- En el menú File, elija Connect Object Explorer …
- En Server type, elija Analysis Services.
- En Server name, ingrese el endpoint de su instancia de RDS.
- Para Authentication, elija Windows Authentication.
- Seleccione Connect
Después de unos momentos, SSMS se conecta a SSAS en su instancia de base de datos. Si no puede conectarse a SSAS, verifique que el grupo de seguridad de la instancia permita el tráfico desde su computadora en el puerto 2383. Para obtener más información, consulte Consideraciones sobre el grupo de seguridad.
Implementar y procesar un modelo tabular
No puede implementar el proyecto directamente en una instancia de base de datos RDS. Para implementar el modelo tabular, debe mover sus archivos de modelo a la instancia de base de datos y ejecutar el procedimiento almacenado SSAS.
- Cree un nuevo proyecto tabular en SQL Server Data Tools (o abra un proyecto que haya creado anteriormente).
- Cree los roles necesarios en su proyecto y agregue los miembros del dominio a los roles.
Para que un usuario de dominio realice operaciones en el modelo implementado, el usuario debe agregarse al proyecto. Asegúrese de que el usuario del dominio pueda conectarse al SSAS en la instancia de RDS. - En la pestaña Solution Explorer, elija la solución y abra las propiedades.
- En Deployment Options, para Processing Options, elija Do Not Process.
Después de implementar el modelo, puede procesar su modelo directamente a través de SSMS.
- En la pestaña Solution Explorer, cree su proyecto.
Cuando crea el proyecto tabular, SQL Server Data Tools genera el archivo en la carpeta de salida del proyectos de Analysis Services (la carpeta de salida predeterminada es \Bin). Para la implementación, necesita los archivos <nombre del proyecto>.asdatabase y <nombre del proyecto> .deploymentoptions
- Cree un bucket de S3 (o utilice uno existente). Esta publicación usa sample-s3-bucket.
- Cargue los archivos del proyecto en ese bucket.
Asegúrese de que la Integración de Amazon S3 ya esté habilitada para la instancia.
- Abra SSMS y conéctese a su instancia de RDS SQL Server.
- Ejecute el siguiente procedimiento almacenado para descargar los archivos del proyecto desde el bucket de S3 a la carpeta local de Amazon S3 en la instancia:
EXEC msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws:s3:::sample-s3-bucket/testmodel.asdatabase', @rds_file_path='d:\S3\testmodel.asdatabase', @overwrite_file=1EXEC msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws:s3:::sample-s3-bucket/testmodel.deploymentoptions', @rds_file_path='d:\S3\testmodel.deploymentoptions', @overwrite_file=1
- Para realizar un seguimiento del estado de las tareas de integración de Amazon S3, llame a la función rds_fn_task_status hasta que su estado cambie a SUCCESS. La función toma dos parámetros. Establezca el primer parámetro en NULL y el segundo parámetro en el ID de la tarea (si pasa 0 como el ID de la tarea, muestra una lista de todas las tareas). Vea el siguiente código:
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL, 0);
- Llame al procedimiento almacenado SSAS_DEPLOY_PROJECT para implementar el modelo en SSAS. Vea el siguiente código:
EXEC msdb.dbo.rds_msbi_task @task_type='SSAS_DEPLOY_PROJECT', @file_path='d:\S3\testmodel.asdatabase';
- Después de que el estado de la tarea SSAS_DEPLOY_PROJECT cambie a SUCCESS en SSMS, conéctese a Analysis Services usando la autenticación de Windows. Luego verá su proyecto implementado en Databases como ve en la captura de pantalla a continuación.
Si no puede ver su base de datos en la sección Databases, probablemente significa que el usuario de su dominio no tiene acceso a nivel de base de datos a la Instancia. Debe agregar su nombre de usuario al modelo y volver a implementar el modelo actualizado o agregar un usuario administrador a través del procedimiento almacenado SSAS_ADD_DB_ADMIN_MEMBER.
- Para procesar los datos, abra el objeto de conexión asociado con su base de datos (clic derecho).
- Elija Properties.
- Actualice el username y el password en la cadena de conexión.
- En SSMS, abra la base de datos SSAS implementada (haga clic con el botón derecho).
- Elija Process Database.
El tiempo de procesamiento depende de la cantidad de datos importados desde la fuente de datos.
Otras Operaciones
En la siguiente sección, se analizan otras operaciones que puede realizar, como agregar un miembro administrador a un rol y hacer una copia de seguridad y restaurar una base de datos SSAS.
Agregar un usuario administrador al rol de administradores
Para otorgar acceso de administrador de nivel de base de datos a un usuario de dominio para una base de datos en particular, ingrese el siguiente código:
EXEC msdb.dbo.rds_msbi_task @task_type='SSAS_ADD_DB_ADMIN_MEMBER', @database_name='TestModel', @ssas_role_name='Sample', @ssas_role_member='domain\user';
El comando crea un rol si no existe.
Backup de una Base de Datos SSAS
Puede realizar una copia de seguridad directamente de la base de datos SSAS a través de SSMS en la carpeta Amazon S3 o ejecutar el procedimiento almacenado SSAS_BACKUP_DB. Vea el siguiente código:
EXEC msdb.dbo.rds_msbi_task @task_type='SSAS_BACKUP_DB', @database_name='TestModel', @file_path='d:\S3\test-model.abf', @ssas_overwrite_file=1;
Restaurando una Base de Datos SSAS
Para restaurar una base de datos SSAS desde un archivo de respaldo, llame al procedimiento almacenado SSAS_RESTORE_DB. Vea el siguiente código:
EXEC msdb.dbo.rds_msbi_task @task_type='SSAS_RESTORE_DB', @database_name='NewTestModel', @file_path='d:\S3\test-model.abf';
No puede restaurar una base de datos si ya existe otra base de datos con el mismo nombre.
Resumen
Esta publicación le mostró cómo configurar SSAS en el modelo tabular en Amazon RDS para SQL Server. Si ejecuta SSAS en Amazon EC2, puede ahorrar en costos al consolidar esas cargas de trabajo para que se ejecuten en la misma instancia de base de datos RDS que su base de datos SQL Server. Puede procesar fácilmente datos desde Data Warehouses y otras bases de datos relacionales (On Premises o basadas en la nube), realizar consultas analíticas y realizar copias de seguridad o restaurar sus bases de datos SSAS. Pruebe SSAS hoy en la consola de AWS, y comparta sus ideas y experiencias en los comentarios.
Sobre el autor
Edgar Tellez es Senior en Solutions Architect en AWS México. Edgar ha ayudado a múltiples empresas de sector público y privado en la adopción tecnológica de nube en los últimos 10 años. Antes de formar parte del equipo de AWS, Edgar trabajo en otros proveedores de nube, se especializo en Plataforma de Datos como es SQL Server, Business Intelligence (SSAS,SSIS,SSRS), Machine Learning, etc. ayudando a clientes en toda Latinoamerica a resolver desafíos tecnológicos y acelerando la adopción de la nube implementado soluciones de Advanced Analytics mediante la implementación de soluciones para la correcta toma de decisiones. Edgar además desarrollo diferentes metodos de revisión para toda la plataforma de datos en la cual se especializo.