Compatibilidad con SQL Server Analysis Services en Amazon RDS para SQL Server - Amazon Relational Database Service

Compatibilidad con SQL Server Analysis Services en Amazon RDS para SQL Server

Microsoft SQL Server Analysis Services (SSAS) forma parte del conjunto Microsoft Business Intelligence (MSBI). SSAS es una herramienta de procesamiento analítico en línea (OLAP) y minería de datos instalada en SQL Server. Utilice SSAS para analizar datos como ayuda para tomar decisiones empresariales. SSAS es diferente de la base de datos relacional de SQL Server porque SSAS está optimizado para consultas y cálculos comunes en un entorno de inteligencia empresarial. Para obtener más información sobre SSAS, consulte la documentación de Microsoft Analysis Services.

Amazon RDS para SQL Server da soporte a la ejecución de SQL Server Analysis Services (SSAS) en modo tabular. Puede habilitar SSAS en instancias de base de datos ya existentes o nuevas. Está instalado en la misma instancia de base de datos que su motor de base de datos.

RDS admite SSAS para las ediciones Standard y Enterprise de SQL Server en las siguientes versiones:

  • SQL Server 2019, versión 15.00.4043.16.v1 y posteriores

  • SQL Server 2017, versión 14.00.3223.3.v1 y posterior

  • SQL Server 2016, versión 13.00.5426.0.v1 y posterior

Limitations

Las siguientes limitaciones se aplican a la ejecución de SSAS en RDS para SQL Server:

  • Solo se da soporte al modo tabular para SSAS.

  • No se da soporte a las instancias Multi-AZ.

  • Las instancias deben utilizar AWS Directory Service for Microsoft Active Directory para la autenticación SSAS.

  • Los usuarios no tienen acceso de administrador del servidor SSAS, pero se les puede conceder acceso de administrador en el nivel de base de datos.

  • El único puerto con soporte para obtener acceso a SSAS es 2383.

  • No se pueden implementar proyectos directamente. Para implementarlos, proporcionamos un procedimiento almacenado de RDS. Para obtener más información, consulte Implementación de proyectos SSAS en Amazon RDS.

  • No se da soporte a los procesamientos durante la implementación.

  • No se da soporte al uso de archivos .xmla para la implementación.

  • Los archivos de entrada del proyecto SSAS y los archivos de salida de copia de seguridad de la base de datos solo pueden estar en la carpeta D:\S3 de la instancia de base de datos.

Habilitación de SSAS

Ejecute el siguiente proceso para habilitar SSAS para una instancia de base de datos:

  1. Cree un nuevo grupo de opciones o elija un grupo de opciones ya existente.

  2. Añada la opción SSAS al grupo de opciones.

  3. Asocie el grupo de opciones a la instancia de base de datos.

  4. Permita el acceso entrante al grupo de seguridad de VPC para el puerto del agente de escucha de SSAS.

  5. Habilite la integración de Amazon S3.

Creación del grupo de opciones para SSAS

Utilice la AWS Management Console o la AWS CLI para crear un grupo de opciones que corresponda al motor de SQL Server y la versión de la instancia de base de datos que planee utilizar.

nota

También puede utilizar un grupo de opciones ya existente si es para el motor y la versión correctos de SQL Server.

El siguiente procedimiento de consola crea un grupo de opciones para SQL Server Standard Edition 2017.

Para crear el grupo de opciones

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Option groups (Grupos de opciones).

  3. Elija Create group.

  4. En el panel Create option group (Crear grupo de opciones), haga lo siguiente:

    1. En Nombre, escriba un nombre para el grupo de opciones que sea exclusivo dentro de su cuenta de AWS, como ssas-se-2017. El nombre solo puede contener letras, dígitos y guiones.

    2. En Descripción, escriba una breve descripción del grupo de opciones, como SSAS option group for SQL Server SE 2017. La descripción se utiliza para fines de visualización.

    3. Para Engine (Motor), elija sqlserver-se.

    4. En Major engine version (Versión principal dle motor), elija 14.00.

  5. Seleccione Create (Crear).

En el siguiente ejemplo de CLI se crea un grupo de opciones para SQL Server Standard Edition 2017.

Para crear el grupo de opciones

  • Utilice uno de los siguientes comandos.

    Para Linux, macOS o Unix:

    aws rds create-option-group \ --option-group-name ssas-se-2017 \ --engine-name sqlserver-se \ --major-engine-version 14.00 \ --option-group-description "SSAS option group for SQL Server SE 2017"

    Para Windows:

    aws rds create-option-group ^ --option-group-name ssas-se-2017 ^ --engine-name sqlserver-se ^ --major-engine-version 14.00 ^ --option-group-description "SSAS option group for SQL Server SE 2017"

Agregar la opción de SSAS al grupo de opciones

A continuación, utilice la AWS Management Console o la AWS CLI para agregar la opción SSAS al grupo de opciones.

Para agregar la opción de SSAS

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Option groups (Grupos de opciones).

  3. Elija el grupo de opciones que acaba de crear.

  4. Seleccione Add option (Añadir opción).

  5. En Option details (Detalles de la opción), elija SSAS para Option name (Nombre de la opción).

  6. En Option settings (Configuración de opciones), introduzca un valor comprendido entre 10 y 80 para Max memory (Memoria máxima).

    En Max memory (Memoria máxima) se especifica el umbral superior por encima del cual SSAS comienza a liberar memoria con mayor rapidez para dejar espacio a las solicitudes que se están ejecutando, así como a las nuevas solicitudes de alta prioridad. El número es un porcentaje de la memoria total de la instancia de base de datos. Se permiten los valores entre 10 y 80, y el valor predeterminado es 45.

    nota

    El puerto para obtener acceso a SSAS, 2383, se rellena previamente.

  7. En Security groups (Grupos de seguridad), elija el grupo de seguridad de VPC que desea asociar a la opción.

  8. En Scheduling (Programación), elija si desea agregar la opción inmediatamente o en el siguiente período de mantenimiento.

  9. Seleccione Add option (Añadir opción).

Para agregar la opción de SSAS

  1. Cree un archivo JSON, por ejemplo ssas-option.json, con los siguientes parámetros:

    • OptionGroupName: el nombre del grupo de opciones que ha creado o elegido anteriormente (ssas-se-2017 en el ejemplo siguiente).

    • Port: el puerto que se utiliza para obtener acceso a SSAS. Solo se da soporte al puerto 2383.

    • VpcSecurityGroupMemberships: las suscripciones del grupo de seguridad de VPC para su instancia de base de datos de RDS.

    • MAX_MEMORY: el umbral superior por encima del cual SSAS debería comenzar a liberar más memoria para dejar espacio a las solicitudes que se estén ejecutando y para nuevas solicitudes de alta prioridad. El número es un porcentaje de la memoria total de la instancia de base de datos. Se permiten los valores entre 10 y 80, y el valor predeterminado es 45.

    { "OptionGroupName": "ssas-se-2017", "OptionsToInclude": [ { "OptionName": "SSAS", "Port": 2383, "VpcSecurityGroupMemberships" : ["sg-0abcdef123"], "OptionSettings": [{"Name" : "MAX_MEMORY","Value" : "60"}] }], "ApplyImmediately": true }
  2. Añada la opción SSAS al grupo de opciones.

    Para Linux, macOS o Unix:

    aws rds add-option-to-option-group \ --cli-input-json file://ssas-option.json \ --apply-immediately

    Para Windows:

    aws rds add-option-to-option-group ^ --cli-input-json file://ssas-option.json ^ --apply-immediately

Asociación del grupo de opciones a su instancia de base de datos

Puede utilizar la AWS Management Console o la AWS CLI para asociar el grupo de opciones a su instancia de base de datos.

Asocie su grupo de opciones a una instancia de base de datos nueva o ya existente:

Puede asociar su grupo de opciones a una instancia de base de datos nueva o ya existente.

nota

Si usa una instancia que ya existe, esta debe tener ya asociados un dominio de Active Directory y un rol de IAM. Si crea una instancia nueva, especifique un rol de IAM y un dominio de Active Directory ya existentes. Para obtener más información, consulte Uso de la autenticación de Windows con una instancia de base de datos de Amazon RDS for SQL Server.

Para crear una instancia de base de datos que utilice el grupo de opciones

  • Especifique el mismo tipo de motor de base de datos y la misma versión principal que ha utilizado al crear el grupo de opciones.

    Para Linux, macOS o Unix:

    aws rds create-db-instance \ --db-instance-identifier myssasinstance \ --db-instance-class db.m5.2xlarge \ --engine sqlserver-se \ --engine-version 14.00.3223.3.v1 \ --allocated-storage 100 \ --master-user-password secret123 \ --master-username admin \ --storage-type gp2 \ --license-model li \ --domain-iam-role-name my-directory-iam-role \ --domain my-domain-id \ --option-group-name ssas-se-2017

    Para Windows:

    aws rds create-db-instance ^ --db-instance-identifier myssasinstance ^ --db-instance-class db.m5.2xlarge ^ --engine sqlserver-se ^ --engine-version 14.00.3223.3.v1 ^ --allocated-storage 100 ^ --master-user-password secret123 ^ --master-username admin ^ --storage-type gp2 ^ --license-model li ^ --domain-iam-role-name my-directory-iam-role ^ --domain my-domain-id ^ --option-group-name ssas-se-2017

Para modificar una instancia de base de datos para asociar el grupo de opciones

  • Utilice uno de los siguientes comandos.

    Para Linux, macOS o Unix:

    aws rds modify-db-instance \ --db-instance-identifier myssasinstance \ --option-group-name ssas-se-2017 \ --apply-immediately

    Para Windows:

    aws rds modify-db-instance ^ --db-instance-identifier myssasinstance ^ --option-group-name ssas-se-2017 ^ --apply-immediately

Permitir el acceso de entrada a su grupo de seguridad de VPC

Cree una regla de entrada para el puerto del agente de escucha de SSAS especificado en el grupo de seguridad de VPC asociado a su instancia de base de datos. Para obtener más información acerca de la configuración de grupos de seguridad, consulte Proporcionar acceso a la instancia de base de datos en la VPC mediante la creación de un grupo de seguridad.

Habilitación de la integración de S3

Para descargar archivos de configuración del modelo en el host para implementarlos, utilice la integración de S3. Para obtener más información, consulte Integración de Amazon RDS para una instancia de base de datos de SQL Server con Amazon S3.

Implementación de proyectos SSAS en Amazon RDS

En RDS, no puede implementar directamente proyectos SSAS mediante SQL Server Management Studio (SSMS). Para implementar proyectos, utilice un procedimiento almacenado de RDS.

nota

No se da soporte al uso de archivos .xmla para la implementación.

Antes de implementar proyectos, asegúrese de lo siguiente:

  • La integración de S3 tiene que estar habilitada. Para obtener más información, consulte Integración de Amazon RDS para una instancia de base de datos de SQL Server con Amazon S3.

  • El valor de configuración de Processing Option tiene que estar establecido en Do Not Process. Esta configuración significa que no se ejecutará ningún procesamiento después de la implementación.

  • Tiene los archivos myssasproject.asdatabase y myssasproject.deploymentoptions. Se generan automáticamente cuando se crea el proyecto SSAS.

Para implementar un proyecto SSAS en RDS

  1. Descargue el archivo .asdatabase (modelo SSAS) desde su bucket S3 a su instancia de base de datos, tal y como se muestra en el siguiente ejemplo. Para obtener más información sobre los parámetros de descarga, consulte Descarga de archivos desde un bucket de Amazon S3 a una instancia de base de datos de SQL Server.

    exec msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws:s3:::bucket_name/myssasproject.asdatabase', [@rds_file_path='D:\S3\myssasproject.asdatabase'], [@overwrite_file=1];
  2. Descargue el archivo .deploymentoptions desde su bucket S3 hasta la instancia de base de datos.

    exec msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws:s3:::bucket_name/myssasproject.deploymentoptions', [@rds_file_path='D:\S3\myssasproject.deploymentoptions'], [@overwrite_file=1];
  3. Implemente el proyecto.

    exec msdb.dbo.rds_msbi_task @task_type='SSAS_DEPLOY_PROJECT', @file_path='D:\S3\myssasproject.asdatabase';

Monitoreo del estado de una tarea de implementación

Para realizar un seguimiento del estado de la tarea de implementación (o descarga), llame a la función rds_fn_task_status. Tiene dos parámetros. El primer parámetro tiene que ser siempre NULL porque no se aplica a SSAS. El segundo parámetro acepta un ID de tarea.

Para obtener una lista de todas las tareas, establezca el primer parámetro en NULL y el segundo en 0, como se muestra en el siguiente ejemplo.

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);

Para obtener una tarea específica, establezca el primer parámetro en NULL y el segundo en el ID de la tarea, como se muestra en el siguiente ejemplo.

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);

La función rds_fn_task_status devuelve la siguiente información.

Parámetro de salida

Descripción

task_id

El ID de la tarea.

task_type

Para SSAS, las tareas pueden tener los siguientes tipos de tareas:

  • SSAS_DEPLOY_PROJECT

  • SSAS_ADD_DB_ADMIN_MEMBER

  • SSAS_BACKUP_DB

  • SSAS_RESTORE_DB

database_name

No aplicable a tareas de SSAS.

% complete

El porcentaje de progreso de la tarea.

duration (mins)

El tiempo empleado en la tarea, en minutos.

lifecycle

El estado de la tarea. Los posibles estados son los siguientes:

  • CREATED – después de llamar a uno de los procedimientos almacenados de SSAS, se crea una tarea y el estado se establece en CREATED.

  • IN_PROGRESS – cuando una tarea comienza, el estado se establece en IN_PROGRESS. Pueden pasar hasta cinco minutos hasta que el estado cambie de CREATED a IN_PROGRESS.

  • SUCCESS – cuando una tarea se completa, el estado se establece en SUCCESS.

  • ERROR – si se produce un error con una tarea, el estado se establece en ERROR. Para obtener más información acerca del error, consulte la columna task_info.

  • CANCEL_REQUESTED: después de llamar a rds_cancel_task, el estado de la tarea se establece en CANCEL_REQUESTED.

  • CANCELLED – después de que se cancela una tarea correctamente, se establece su estado en CANCELLED.

task_info

Información adicional acerca de la tarea. Si se produce un error durante el procesamiento, esta columna contiene información acerca del error.

last_updated

La fecha y hora en que se actualizó por última vez el estado de la tarea.

created_at

La fecha y hora en que se creó la tarea.

S3_object_arn

No aplicable a tareas de SSAS.

overwrite_S3_backup_file

No aplicable a tareas de SSAS.

KMS_master_key_arn

No aplicable a tareas de SSAS.

filepath

No aplicable a tareas de SSAS.

overwrite_file

No aplicable a tareas de SSAS.

task_metadata

Metadatos asociados a la tarea de SSAS.

Uso de SSAS en Amazon RDS

Después de implementar el proyecto SSAS, puede procesar directamente la base de datos OLAP en SSMS.

Para utilizar SSAS en RDS

  1. En SSMS, conéctese a SSAS mediante el nombre de usuario y la contraseña del dominio de Active Directory.

  2. Expanda Databases (Bases de datos). Aparece la base de datos SSAS recién implementada.

  3. Expanda Connections (Conexiones), abra el menú contextual (haga clic con el botón derecho) del objeto de conexión y, a continuación, elija Properties (Propiedades).

  4. En la cadena de conexión, actualice el nombre de usuario y la contraseña a los de la base de datos SQL de origen. Esta operación es necesaria para procesar tablas.

  5. Abra el menú contextual (haga clic con el botón derecho) de la base de datos SSAS que ha creado y elija Process Database (Procesar base de datos).

    Según el tamaño de los datos de entrada, la operación de procesamiento puede tardar varios minutos en completarse.

Agregar un usuario de dominio como administrador de bases de datos

Puede agregar un usuario de dominio como administrador de base de datos SSAS de las siguientes maneras:

  • Un administrador de base de datos puede usar SSMS para crear un rol con privilegios de admin y, a continuación, agregar usuarios a dicho rol.

  • Puede utilizar el siguiente procedimiento almacenado.

    exec msdb.dbo.rds_msbi_task @task_type='SSAS_ADD_DB_ADMIN_MEMBER', @database_name='myssasdb', @ssas_role_name='exampleRole', @ssas_role_member='domain_name\domain_user_name';

    Se requieren los siguientes parámetros:

    • @task_type – el tipo de la tarea MSBI; en este caso SSAS_ADD_DB_ADMIN_MEMBER.

    • @database_name: el nombre de la base de datos SSAS a la que concede privilegios de administrador.

    • @ssas_role_name: el nombre del rol de administrador de base de datos SSAS. Si el rol no existe, se crea.

    • @ssas_role_member: el usuario de la base de datos SSAS que va a agregar al rol de administrador.

Copia de seguridad de una base de datos SSAS

Puede crear archivos de copia de seguridad de base de datos SSAS solo en la carpeta D:\S3 de la instancia de base de datos. Para mover los archivos de copia de seguridad al bucket de S3, utilice Amazon S3.

Puede realizar una copia de seguridad de una base de datos SSAS de la siguiente manera:

  • Un usuario de dominio con el rol admin de una base de datos determinada puede utilizar SSMS para realizar una copia de seguridad de la base de datos en la carpeta D:\S3.

    Para obtener más información, consulte Agregar un usuario de dominio como administrador de bases de datos.

  • Puede utilizar el siguiente procedimiento almacenado.

    exec msdb.dbo.rds_msbi_task @task_type='SSAS_BACKUP_DB', @database_name='myssasdb', @file_path='D:\S3\ssas_db_backup.abf', [@ssas_apply_compression=1], [@ssas_overwrite_file=1];

    Se requieren los siguientes parámetros:

    • @task_type – el tipo de la tarea MSBI; en este caso SSAS_BACKUP_DB.

    • @database_name: el nombre de la base de datos SSAS cuya copia de seguridad está realizando.

    • @file_path: la ruta de acceso del archivo de copia de seguridad de SSAS. La extensión .abf es necesaria.

    Los siguientes parámetros son opcionales:

    • @ssas_apply_compression: indica si se aplicará la compresión de copia de seguridad de SSAS. Los valores válidos son 1 (Sí) y 0 (No).

    • @ssas_overwrite_file: indica si se sobrescribe el archivo de copia de seguridad de SSAS. Los valores válidos son 1 (Sí) y 0 (No).

    nota

    El procedimiento almacenado para la copia de seguridad no da soporte al cifrado.

Restauración de una base de datos SSAS

Utilice el siguiente procedimiento almacenado para restaurar una base de datos SSAS a partir de una copia de seguridad.

exec msdb.dbo.rds_msbi_task @task_type='SSAS_RESTORE_DB', @database_name='mynewssasdb', @file_path='D:\S3\ssas_db_backup.abf';

Se requieren los siguientes parámetros:

  • @task_type – el tipo de la tarea MSBI; en este caso SSAS_RESTORE_DB.

  • @database_name: el nombre de la nueva base de datos SSAS en la que está realizando la restauración.

  • @file_path: la ruta de acceso al archivo de copia de seguridad de SSAS.

nota

No puede restaurar una base de datos si ya existe una base de datos SSAS con el mismo nombre. El procedimiento almacenado para restaurar no da soporte a archivos de copia de seguridad cifrados.

Restauración de una instancia de base de datos a un momento especificado

La recuperación a un momento dado (PITR) no se aplica a las bases de datos SSAS. Si ejecuta una PITR, solo los datos SSAS de la última instantánea antes de la hora solicitada estarán disponibles en la instancia restaurada.

Para tener bases de datos SSAS actualizadas en una instancia de base de datos restaurada

  1. Haga una copia de seguridad de las bases de datos SSAS en la carpeta D:\S3 de la instancia de origen.

  2. Transfiera los archivos de copia de seguridad al bucket S3.

  3. Transfiera los archivos de copia de seguridad del bucket S3 a la carpeta D:\S3 de la instancia restaurada.

  4. Ejecute el procedimiento almacenado para restaurar las bases de datos SSAS en la instancia restaurada.

nota

También puede volver a procesar el proyecto SSAS para restaurar las bases de datos.

Deshabilitación de SSAS

Para deshabilitar SSAS, quite la opción SSAS de su grupo de opciones. Antes de quitar la opción SSAS, elimine las bases de datos SSAS.

importante

Es muy recomendable que realice una copia de seguridad de las bases de datos SSAS antes de eliminarlas y quitar la opción SSAS.

Para quitar la opción SSAS de su grupo de opciones

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Option groups (Grupos de opciones).

  3. Elija el grupo de opciones con la opción SSAS (ssas-se-2017 en los ejemplos anteriores).

  4. Elija Delete option (Eliminar opción).

  5. En Deletion options (Opciones de eliminación), elija SSAS para Options to delete (Opciones para eliminar).

  6. En Apply immediately (Aplicar inmediatamente), seleccione Yes (Sí) para eliminar la opción inmediatamente o No para eliminarla en el siguiente período de mantenimiento.

  7. Elija Eliminar.

Para quitar la opción SSAS de su grupo de opciones

  • Utilice uno de los siguientes comandos.

    Para Linux, macOS o Unix:

    aws rds remove-option-from-option-group \ --option-group-name ssas-se-2017 \ --options SSAS \ --apply-immediately

    Para Windows:

    aws rds remove-option-from-option-group ^ --option-group-name ssas-se-2017 ^ --options SSAS ^ --apply-immediately