支持 SQL Server 中的 SQL Server Analysis Services - Amazon Relational Database Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

支持 SQL Server 中的 SQL Server Analysis Services

Microsoft SQL Server Analysis Services (SSAS) 属于 Microsoft Business Intelligence (MSBI) 套件。SSAS 是一个在线分析处理 (OLAP) 和数据挖掘工具,安装在 SQL Server 中。您可以使用 SSAS 分析数据来帮助制定业务决策。SSAS 不同于 SQL Server 关系数据库,因为 SSAS 针对商业智能环境中常见的查询和计算进行了优化。有关 SSAS 的更多信息,请参阅 Microsoft 分析服务文档

Amazon RDS for SQL Server 支持在表格模式下运行 SQL Server Analysis Services (SSAS)。您可以在现有或新数据库实例上启用 SSAS。它安装在与您的数据库引擎相同的数据库实例上。RDS 支持以下 SQL Server 版本:

  • SQL Server 2017:标准版和企业版,版本 14.00.3223.3.v1 及更高版本

  • SQL Server 2016:标准版和企业版,版本 13.00.5426.0.v1 及更高版本

限制

以下限制适用于在 RDS for SQL Server 上运行 SSAS:

  • SSAS 仅支持表格模式。

  • 不支持多可用区实例。

  • 实例必须为 SSAS 身份验证使用 AWS Directory Service for Microsoft Active Directory(企业版)。

  • 用户不会被授予 SSAS 服务器管理员访问权限,但可以向他们授予数据库级管理员访问权限。

  • 唯一支持访问 SSAS 的端口是 2383。

  • 您不能直接部署项目。我们提供 RDS 存储过程来执行部署。有关更多信息,请参阅 在 Amazon RDS 上部署 SSAS 项目

  • 部署期间不支持进行处理。

  • 不支持使用 .xmla 文件进行部署。

  • SSAS 项目输入文件和数据库备份输出文件只能位于数据库实例的 D:\S3 文件夹中。

启用 SSAS

使用以下过程为数据库实例启用 SSAS:

  1. 创建新的选项组或选择现有的选项组。

  2. SSAS 选项添加到该选项组。

  3. 将选项组与数据库实例相关联。

  4. 允许 SSAS 侦听器端口对 VPC 安全组的入站访问。

  5. 启用 Amazon S3 集成。

为 SSAS 创建选项组

使用 AWS 管理控制台 或 AWS CLI 创建对应于计划使用的 SQL Server 引擎和数据库实例版本的选项组。

注意

如果现有选项组针对的是正确的 SQL Server 引擎和版本,也可以使用现有选项组。

以下控制台过程创建适用于 SQL Server 标准版 2017 的选项组。

创建选项组

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择选项组

  3. 选择创建组

  4. 创建选项组窗格中,执行以下操作:

    1. 对于名称,输入选项组的名称,该名称在 AWS 账户内具有唯一性,例如 ssas-se-2017。此名称只能包含字母、数字和连字符。

    2. 对于描述,输入选项组的简要描述,例如 SSAS option group for SQL Server SE 2017。此说明用于显示说明。

    3. 对于引擎,选择 sqlserver-se

    4. 对于主引擎版本,选择 14.00

  5. 选择 Create

以下 CLI 示例为 SQL Server 标准版 2017 创建一个选项组。

创建选项组

  • 使用以下命令之一。

    对于 Linux、macOS 或 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"

    对于 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"

将 SSAS 选项添加到选项组

接下来,使用 AWS 管理控制台或 AWS CLI 将 SSAS 选项添加到选项组。

添加 SSAS 选项

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择选项组

  3. 选择刚刚创建的选项组。

  4. 选择添加选项

  5. Option details (选项详细信息) 下,为 Option name (选项名称) 选择 SSAS

  6. Option settings (选项设置) 下,为 Max memory (最大内存) 输入 10–80 之间的值。

    Max memory (最大内存) 指定上限阈值,超过该阈值后,SSAS 将开始更积极地释放内存,以便为正在运行的请求以及新的高优先级请求释放空间。该数字是占数据库实例总内存的百分比。允许的值是 10–80;默认值为 45。

    注意

    用于访问 SSAS 的端口 2383 已预先填充。

  7. 对于 Security groups (安全组),请选择要与选项关联的 VPC 安全组。

  8. 计划 (Scheduling) 下,选择是立即添加选项还是在下一个维护时段添加选项。

  9. 选择添加选项

添加 SSAS 选项

  1. 使用以下参数创建 JSON 文件 ,例如 ssas-option.json

    • OptionGroupName – 您之前创建或选择的选项组的名称(以下示例中的 ssas-se-2017)。

    • Port – 用于访问 SSAS 的端口。唯一支持的端口是 2383。

    • VpcSecurityGroupMemberships – RDS 数据库实例的 VPC 安全组成员。

    • MAX_MEMORY – 上限阈值,超过该阈值后,SSAS 将开始更积极地释放内存,以便为正在运行的请求以及新的高优先级请求释放空间。该数字是占数据库实例总内存的百分比。允许的值是 10–80;默认值为 45。

    { "OptionGroupName": "ssas-se-2017", "OptionsToInclude": [ { "OptionName": "SSAS", "Port": 2383, "VpcSecurityGroupMemberships" : ["sg-0abcdef123"], "OptionSettings": [{"Name" : "MAX_MEMORY","Value" : "60"}] }], "ApplyImmediately": true }
  2. SSAS 选项添加到该选项组。

    对于 Linux、macOS 或 Unix:

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

    对于 Windows:

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

将选项组与数据库实例关联

您可以使用 AWS 管理控制台 或 AWS CLI 将选项组与数据库实例关联。

将您的选项组与新的或现有的数据库实例关联:

您可将您的选项组与新的或现有的数据库实例关联。

注意

如果您使用现有实例,则该实例必须已经关联了 Active Directory 域和 IAM 角色。如果您创建新实例,请指定现有的 Active Directory 域和 IAM 角色。有关更多信息,请参阅 将 Windows 身份验证与适用于数据库实例的 Amazon RDS 结合使用

创建使用选项组的数据库实例

  • 指定创建选项组时使用的相同数据库引擎类型和主要版本。

    对于 Linux、macOS 或 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

    对于 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

修改数据库实例以关联选项组

  • 使用以下命令之一。

    对于 Linux、macOS 或 Unix:

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

    对于 Windows:

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

允许对 VPC 安全组的入站访问

在与数据库实例关联的 VPC 安全组中,为指定的 SSAS 侦听器端口创建入站规则。有关设置安全组的更多信息,请参阅通过创建安全组提供对 VPC 中的数据库实例的访问

启用 S3 集成

要将模型配置文件下载到主机进行部署,请使用 S3 集成。有关更多信息,请参阅 将 Amazon RDS for SQL Server 数据库实例与 Amazon S3 集成

在 Amazon RDS 上部署 SSAS 项目

在 RDS 上,您不能使用 SQL Server Management Studio (SSMS) 直接部署 SSAS 项目。要部署项目,请使用 RDS 存储过程。

注意

不支持使用 .xmla 文件进行部署。

在部署项目之前,请确保满足以下条件:

  • S3 集成已启用。有关更多信息,请参阅 将 Amazon RDS for SQL Server 数据库实例与 Amazon S3 集成

  • Processing Option 配置设置已设置为 Do Not Process。此设置意味着部署后不会进行任何处理。

  • 您有 myssasproject.asdatabasemyssasproject.deploymentoptions 文件。在您构建 SSAS 项目时,这些文件会自动生成。

在 RDS 上部署 SSAS 项目

  1. .asdatabase(SSAS 模型)文件从 S3 存储桶下载到数据库实例,如以下示例所示。有关下载参数的更多信息,请参阅将文件从 Amazon S3 存储桶下载到 SQL Server 数据库实例

    exec msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws-cn:s3:::bucket_name/myssasproject.asdatabase', [@rds_file_path='D:\S3\myssasproject.asdatabase'], [@overwrite_file=1];
  2. .deploymentoptions 文件从 S3 存储桶下载到数据库实例。

    exec msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws-cn:s3:::bucket_name/myssasproject.deploymentoptions', [@rds_file_path='D:\S3\myssasproject.deploymentoptions'], [@overwrite_file=1];
  3. 部署项目。

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

监控部署任务的状态

要跟踪部署(或下载)任务的状态,请调用 rds_fn_task_status 函数。它获取两个参数。第一个参数应该始终为 NULL,因为它不适用于 SSAS。第二个参数接受任务 ID。

要查看所有任务的列表,请将第一个参数设置为 NULL,将第二个参数设置为 0,如以下示例所示。

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

要获取特定任务,请将第一个参数设置为 NULL,将第二个参数设置为任务 ID,如以下示例所示。

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

rds_fn_task_status 函数将返回以下信息。

输出参数

描述

task_id

任务的 ID。

task_type

对于 SSAS,任务可以具有以下任务类型:

  • SSAS_DEPLOY_PROJECT

  • SSAS_ADD_DB_ADMIN_MEMBER

  • SSAS_BACKUP_DB

  • SSAS_RESTORE_DB

database_name

不适用于 SSAS 任务。

% complete

用百分比表示的任务进度。

duration (mins)

在任务上花费的时间 (以分钟为单位)。

lifecycle

任务的状态。有以下可能状态:

  • CREATED – 调用 SSAS 存储过程之一后,将创建一个任务并将状态设置为 CREATED

  • IN_PROGRESS – 任务开始后,状态将设置为 IN_PROGRESS。要将状态从 CREATED 更改为 IN_PROGRESS 可能需要最多 5 分钟的时间。

  • SUCCESS – 任务完成后,状态将设置为 SUCCESS

  • ERROR – 如果任务失败,状态将设置为 ERROR。有关错误的更多信息,请参阅 task_info 列。

  • CANCEL_REQUESTED – 调用 rds_cancel_task 后,任务的状态将设置为 CANCEL_REQUESTED

  • CANCELLED – 在成功取消任务后,任务的状态将设置为 CANCELLED

task_info

有关任务的其他信息。如果在处理过程中发生错误,则此列包含有关错误的信息。

last_updated

上次更新任务状态的日期和时间。

created_at

任务的创建日期和时间。

S3_object_arn

不适用于 SSAS 任务。

overwrite_S3_backup_file

不适用于 SSAS 任务。

KMS_master_key_arn

不适用于 SSAS 任务。

filepath

不适用于 SSAS 任务。

overwrite_file

不适用于 SSAS 任务。

task_metadata

与 SSAS 任务关联的元数据。

在 Amazon RDS 上使用 SSAS

部署 SSAS 项目后,您可以直接在 SSMS 上处理 OLAP 数据库。

在 RDS 上使用 SSAS

  1. 在 SSMS 中,使用 Active Directory 域的用户名和密码连接到 SSAS。

  2. 展开 Databases (数据库)。此时将显示新部署的 SSAS 数据库。

  3. 展开 Connections (连接),打开连接对象的上下文(右键单击)菜单,然后选择 Properties (属性)

  4. 在连接字符串中,将用户名和密码更新为源 SQL 数据库的用户名和密码。处理表必须要执行此操作。

  5. 打开您创建的 SSAS 数据库的上下文(右键单击)菜单,然后选择 Process Database (处理数据库)

    根据输入数据的大小,处理操作可能需要几分钟时间才能完成。

添加域用户作为数据库管理员

您可以通过以下方式,将域用户添加为 SSAS 数据库管理员:

  • 数据库管理员可以使用 SSMS 创建具有 admin 权限的角色,然后将用户添加到该角色。

  • 您可以使用以下存储过程。

    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';

    以下参数为必需参数:

    • @task_type – MSBI 任务的类型,在此例中为 SSAS_ADD_DB_ADMIN_MEMBER

    • @database_name – 要向其授予管理员特权的 SSAS 数据库的名称。

    • @ssas_role_name – SSAS 数据库管理员角色名称。如果角色尚不存在,则会创建它。

    • @ssas_role_member – 要添加到管理员角色的 SSAS 数据库用户。

备份 SSAS 数据库

您只能在数据库实例的 D:\S3 文件夹中创建 SSAS 数据库备份文件。要将备份文件移动到 S3 存储桶,请使用 Amazon S3。

您可以如下所示备份 SSAS 数据库:

  • 特定数据库具有 admin 角色的域用户可以使用 SSMS 将数据库备份到 D:\S3 文件夹。

    有关更多信息,请参阅 添加域用户作为数据库管理员

  • 您可以使用以下存储过程。

    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];

    以下参数为必需参数:

    • @task_type – MSBI 任务的类型,在此例中为 SSAS_BACKUP_DB

    • @database_name – 要备份的 SSAS 数据库的名称。

    • @file_path – SSAS 备份文件的路径。.abf 扩展名必需。

    以下参数为可选参数:

    • @ssas_apply_compression – 是否应用 SSAS 备份压缩。有效值为 1(是)和 0(否)。

    • @ssas_overwrite_file – 是否覆盖 SSAS 备份文件。有效值为 1(是)和 0(否)。

    注意

    用于备份的存储过程不支持加密。

还原 SSAS 数据库

使用以下存储过程从备份还原 SSAS 数据库。

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

以下参数为必需参数:

  • @task_type – MSBI 任务的类型,在此例中为 SSAS_RESTORE_DB

  • @database_name – 您要还原到的新 SSAS 数据库的名称。

  • @file_path – SSAS 备份文件的路径。

注意

如果存在同名的现有 SSAS 数据库,则无法还原数据库。用于还原的存储过程不支持加密的备份文件。

将数据库实例还原至指定时间

时间点恢复 (PITR) 不适用于 SSAS 数据库。如果您执行 PITR,则在还原的实例上,只有在请求时间之前的最后一个快照中的 SSAS 数据可用。

在还原的数据库实例上拥有最新的 SSAS 数据库

  1. 将您的 SSAS 数据库备份到源实例上的 D:\S3 文件夹。

  2. 将备份文件传输到 S3 存储桶。

  3. 将备份文件从 S3 存储桶传输到还原后的实例上的 D:\S3 文件夹。

  4. 运行存储过程,将 SSAS 数据库还原到还原后的实例上。

注意

您还可以重新处理 SSAS 项目以还原数据库。

禁用 SSAS

要禁用 SSAS,请从其选项组中删除 SSAS 选项。删除 SSAS 选项之前,请先删除您的 SSAS 数据库。

重要

我们强烈建议您先备份 SSAS 数据库,然后再删除这些数据库并删除 SSAS 选项。

从其选项组中删除 SSAS 选项

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择选项组

  3. 选择具有 SSAS 选项的选项组(在前面的示例中为 ssas-se-2017)。

  4. 选择 Delete option (删除选项)

  5. Delete option (删除选项) 下,为 Options to delete (要删除的选项) 选择 SSAS

  6. Apply immediately (立即应用) 下,选择 Yes (是) 可立即删除选项,选择 No (否) 可在下次维护时段时删除。

  7. 选择 Delete

从其选项组中删除 SSAS 选项

  • 使用以下命令之一。

    对于 Linux、macOS 或 Unix:

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

    对于 Windows:

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