Amazon RDS for SQL Server 中对 SQL Server Analysis Services 的支持 - Amazon Relational Database Service

Amazon RDS for 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。它安装在与您的数据库引擎相同的数据库实例上。有关 SSAS 的更多信息,请参阅 Microsoft 分析服务文档

Amazon RDS 支持在 SQL Server 标准版和企业版的以下版中使用 SSAS:

  • 表格模式:

    • SQL Server 2019,版本 15.00.4043.16.v1 和更高版本

    • SQL Server 2017,版本 14.00.3223.3.v1 和更高版本

    • SQL Server 2016,版本 13.00.5426.0.v1 和更高版本

  • 多维模式:

    • SQL Server 2017,版本 14.00.3381.3.v1 和更高版本

    • SQL Server 2016,版本 13.00.5882.1.v1 和更高版本

限制

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

  • RDS for SQL Server 支持在表格模式或多维模式下运行 SSAS。有关更多信息,请参阅 Microsoft 文档中的比较表格和多维解决方案

  • 一次只能使用一个 SSAS 模式。在更改模式之前,请确保删除所有 SSAS 数据库。

    有关更多信息,请参阅更改 SSAS 模式

  • SQL Server 2019 不支持多维模式。

  • 不支持多可用区实例。

  • 实例必须使用自行管理的 Active Directory 或 AWS Directory Service for Microsoft Active Directory 才能进行 SSAS 身份验证。有关更多信息,请参阅将 Active Directory 用于 RDS for SQL Server

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

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

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

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

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

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

启用 SSAS

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

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

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

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

  4. 允许对 SSAS 侦听器端口的 Virtual Private Cloud (VPC) 安全组进行入站访问。

  5. 启用 Amazon S3 集成。

为 SSAS 创建选项组

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

注意

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

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

创建选项组
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/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. 选择创建

以下 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 Management Console或 AWS CLI 将 SSAS 选项添加到选项组。

添加 SSAS 选项
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

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

  4. 选择添加选项

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

  6. 选项设置下,执行以下操作:

    1. Max memory(最大内存)中,输入 10–80 这个范围内的一个值。

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

    2. Mode(模式)中选择 SSAS 服务器模式:Tabular(表格)或 Multidimensional(多维)。

      如果没有看到 Mode(模式)选项设置,则表示 AWS 区域不支持多维模式。有关更多信息,请参阅限制

      默认为 Tabular(表格)模式。

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

    注意

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

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

  8. 选择添加选项

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

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

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

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

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

    • MODE:SSAS 服务器模式,即 TabularMultidimensional,默认为 Tabular

      如果收到的错误消息显示 MODE 选项设置无效,则表示 AWS 区域不支持多维模式。有关更多信息,请参阅限制

    以下是具有 SSAS 选项设置的 JSON 文件示例。

    { "OptionGroupName": "ssas-se-2017", "OptionsToInclude": [ { "OptionName": "SSAS", "Port": 2383, "VpcSecurityGroupMemberships": ["sg-0abcdef123"], "OptionSettings": [{"Name":"MAX_MEMORY","Value":"60"},{"Name":"MODE","Value":"Multidimensional"}] }], "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

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

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

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

  • 对于新数据库实例,请在启动实例时将选项组与数据库实例关联。有关更多信息,请参阅“创建 Amazon RDS 数据库实例”。

  • 对于现有数据库实例,请修改实例并将新选项组与其关联。有关更多信息,请参阅修改 Amazon RDS 数据库实例

    注意

    如果您使用现有实例,则该实例必须已关联 Active Directory 域和 AWS Identity and Access Management (IAM) 角色。如果您创建新实例,请指定现有的 Active Directory 域和 IAM 角色。有关更多信息,请参阅将 Active Directory 用于 RDS for SQL Server

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

注意

如果您使用现有实例,则该实例必须已经关联了 Active Directory 域和 IAM 角色。如果您创建新实例,请指定现有的 Active Directory 域和 IAM 角色。有关更多信息,请参阅将 Active Directory 用于 RDS for SQL Server

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

    对于 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 \ --manage-master-user-password \ --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 ^ --manage-master-user-password ^ --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 中的数据库实例的访问

启用 Amazon S3 集成

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

在 Amazon RDS 上部署 SSAS 项目

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

注意

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

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

  • Amazon 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: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: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

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

有关更多信息,请参阅解决 SSAS 问题

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. 找到连接字符串,再更新用户名和密码,以便有权访问源 SQL 数据库。处理 SSAS 对象必须要执行此操作。

    1. 针对表格模式执行以下操作:

      1. 展开 Connections(连接)选项卡。

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

      3. 更新连接字符串中的用户名和密码。

    2. 针对多维模式执行以下操作:

      1. 展开 Data Sources(数据源)选项卡。

      2. 打开数据源对象的上下文(右键单击)菜单,然后选择 Properties(属性)。

      3. 更新连接字符串中的用户名和密码。

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

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

为 SSAS 设置经 Windows 身份验证的用户

主管理员用户(有时也被称为主用户)可以使用以下代码示例设置经 Windows 身份验证的登录并授予所需的过程权限。执行此操作可向域用户授予权限以运行 SSAS 客户任务、使用 S3 文件传输过程、创建凭证以及使用 SQL Server Agent 代理。有关更多信息,请参阅 Microsoft 文档中的凭证(数据库引擎)创建 SQL Server Agent 代理

您可以根据需要向经 Windows 身份验证的用户授予以下部分或所有权限。

-- Create a server-level domain user login, if it doesn't already exist USE [master] GO CREATE LOGIN [mydomain\user_name] FROM WINDOWS GO -- Create domain user, if it doesn't already exist USE [msdb] GO CREATE USER [mydomain\user_name] FOR LOGIN [mydomain\user_name] GO -- Grant necessary privileges to the domain user USE [master] GO GRANT ALTER ANY CREDENTIAL TO [mydomain\user_name] GO USE [msdb] GO GRANT EXEC ON msdb.dbo.rds_msbi_task TO [mydomain\user_name] with grant option GRANT SELECT ON msdb.dbo.rds_fn_task_status TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_task_status TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_cancel_task TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_download_from_s3 TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_upload_to_s3 TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_delete_from_filesystem TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_gather_file_details TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_add_proxy TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_update_proxy TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_grant_login_to_proxy TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_revoke_login_from_proxy TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_delete_proxy TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_enum_login_for_proxy to [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_enum_proxy_for_subsystem TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_sqlagent_proxy TO [mydomain\user_name] with grant option ALTER ROLE [SQLAgentUserRole] ADD MEMBER [mydomain\user_name] GO

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

您可以通过以下方式,将域用户添加为 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 代理

要先创建 SSAS 凭证和 SSAS 代理,才能使用 SQL Server Agent 来安排 SSAS 数据库处理。以经 Windows 身份验证的用户身份运行这些过程。

创建 SSAS 凭证
  • 为代理创建凭证。为此,您可以使用 SSMS 或以下 SQL 语句。

    USE [master] GO CREATE CREDENTIAL [SSAS_Credential] WITH IDENTITY = N'mydomain\user_name', SECRET = N'mysecret' GO
    注意

    IDENTITY 必须是经域身份验证的登录名。将 mysecret 替换为经域身份验证的登录的密码。

创建 SSAS 代理
  1. 使用以下 SQL 语句创建代理。

    USE [msdb] GO EXEC msdb.dbo.sp_add_proxy @proxy_name=N'SSAS_Proxy',@credential_name=N'SSAS_Credential',@description=N'' GO
  2. 使用以下 SQL 语句向其他用户授予对代理的访问权限。

    USE [msdb] GO EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'SSAS_Proxy',@login_name=N'mydomain\user_name' GO
  3. 使用以下 SQL 语句向代理授予 SSAS 子系统访问权限。

    USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='GRANT_SUBSYSTEM_ACCESS',@proxy_name='SSAS_Proxy',@proxy_subsystem='SSAS' GO
查看代理和代理上的授权
  1. 使用以下 SQL 语句查看代理的被授权者。

    USE [msdb] GO EXEC sp_help_proxy GO
  2. 使用以下 SQL 语句查看子系统授权。

    USE [msdb] GO EXEC msdb.dbo.sp_enum_proxy_for_subsystem GO

使用 SQL Server Agent 安排 SSAS 数据库处理

创建凭证和代理并向 SSAS 授予对代理的访问权限后,您可以创建 SQL Server Agent 任务来安排 SSAS 数据库处理。

安排 SSAS 数据库处理
  • 使用 SSMS 或 T-SQL 创建 SQL Server Agent 任务。以下示例使用 T-SQL。您可以通过 SSMS 或 T-SQL 进一步配置其任务计划。

    • @command 参数概述了将由 SQL Server Agent 任务运行的 XML for Analysis (XMLA) 命令。此示例配置了 SSAS 多维数据库处理。

    • @server 参数概述了 SQL Server Agent 任务的目标 SSAS 服务器名称。

      要在 SQL Server Agent 任务所在的同一 RDS 数据库实例中调用 SSAS 服务,请使用 localhost:2383

      要从 RDS 数据库实例外部调用 SSAS 服务,请使用 RDS 端点。如果 RDS 数据库实例是由同一个域联接,则还可以使用 Kerberos Active Directory (AD) 端点 (your-DB-instance-name.your-AD-domain-name)。对于外部数据库实例,请确保正确配置与 RDS 数据库实例关联的 VPC 安全组,以便实现安全连接。

    您可以进一步编辑查询来支持各种 XMLA 操作。可以直接修改 T-SQL 查询进行编辑,也可以在创建 SQL Server Agent 任务后使用 SSMS UI 进行编辑。

    USE [msdb] GO DECLARE @jobId BINARY(16) EXEC msdb.dbo.sp_add_job @job_name=N'SSAS_Job', @enabled=1, @notify_level_eventlog=0, @notify_level_email=0, @notify_level_netsend=0, @notify_level_page=0, @delete_level=0, @category_name=N'[Uncategorized (Local)]', @job_id = @jobId OUTPUT GO EXEC msdb.dbo.sp_add_jobserver @job_name=N'SSAS_Job', @server_name = N'(local)' GO EXEC msdb.dbo.sp_add_jobstep @job_name=N'SSAS_Job', @step_name=N'Process_SSAS_Object', @step_id=1, @cmdexec_success_code=0, @on_success_action=1, @on_success_step_id=0, @on_fail_action=2, @on_fail_step_id=0, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'ANALYSISCOMMAND', @command=N'<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Parallel> <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500"> <Object> <DatabaseID>Your_SSAS_Database_ID</DatabaseID> </Object> <Type>ProcessFull</Type> <WriteBackTableCreation>UseExisting</WriteBackTableCreation> </Process> </Parallel> </Batch>', @server=N'localhost:2383', @database_name=N'master', @flags=0, @proxy_name=N'SSAS_Proxy' GO

从代理撤消 SSAS 访问权限

您可以使用以下存储过程撤消对 SSAS 子系统的访问权限并删除 SSAS 代理。

撤消访问权限并删除代理
  1. 撤消子系统访问权限。

    USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='REVOKE_SUBSYSTEM_ACCESS',@proxy_name='SSAS_Proxy',@proxy_subsystem='SSAS' GO
  2. 撤消代理上的授权。

    USE [msdb] GO EXEC msdb.dbo.sp_revoke_login_from_proxy @proxy_name=N'SSAS_Proxy',@name=N'mydomain\user_name' GO
  3. 删除代理。

    USE [msdb] GO EXEC dbo.sp_delete_proxy @proxy_name = N'SSAS_Proxy' GO

备份 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 数据库。

如果存在同名的现有 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 备份文件的路径。

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

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

在还原的数据库实例上拥有最新的 SSAS 数据库
  1. 将您的 SSAS 数据库备份到源实例上的 D:\S3 文件夹。

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

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

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

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

更改 SSAS 模式

您可以更改 SSAS 的运行模式,无论其采用的是表格模式还是多维模式。若要更改模式,请使用 AWS Management Console 或 AWS CLI 修改 SSAS 选项中的选项设置。

重要

一次只能使用一个 SSAS 模式。更改模式之前,请务必删除所有 SSAS 数据库,否则会收到错误消息。

以下 Amazon RDS 控制台程序可将 SSAS 模式更改为表格模式,然后将 MAX_MEMORY 参数设置为 70%。

修改 SSAS 选项
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

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

  4. 选择 Modify option(修改选项)。

  5. 更改选项设置:

    1. Max memory(最大内存)中输入 70

    2. Mode(模式)中选择 Tabular(表格)。

  6. 选择 Modify option(修改选项)。

以下 AWS CLI 示例会将 SSAS 模式更改为表格模式,然后将 MAX_MEMORY 参数设置为 70%。

为了使 CLI 命令正常运行,请确保命令中包含所有必要参数,即使未对其进行修改。

修改 SSAS 选项
  • 使用以下命令之一。

    对于 Linux、macOS 或 Unix:

    aws rds add-option-to-option-group \ --option-group-name ssas-se-2017 \ --options "OptionName=SSAS,VpcSecurityGroupMemberships=sg-12345e67,OptionSettings=[{Name=MAX_MEMORY,Value=70},{Name=MODE,Value=Tabular}]" \ --apply-immediately

    对于 Windows:

    aws rds add-option-to-option-group ^ --option-group-name ssas-se-2017 ^ --options OptionName=SSAS,VpcSecurityGroupMemberships=sg-12345e67,OptionSettings=[{Name=MAX_MEMORY,Value=70},{Name=MODE,Value=Tabular}] ^ --apply-immediately

禁用 SSAS

若要禁用 SSAS,请从选项组中删除 SSAS 选项。

重要

删除 SSAS 选项之前,请先删除您的 SSAS 数据库。

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

从其选项组中删除 SSAS 选项
  1. 登录AWS Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

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

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

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

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

  7. 选择删除

从其选项组中删除 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

解决 SSAS 问题

您可能会在使用 SSAS 时遇到以下问题。

问题 类型 故障排除建议
无法配置 SSAS 选项。请求的 SSAS 模式是 new_mode,但当前数据库实例有 numbercurrent_mode 数据库。在切换到 new_mode 模式之前,请删除现有数据库。要重新获得数据库删除 current_mode 模式的访问权限,可以更新当前数据库选项组,也可以附加新选项组(将 %s 作为 SSAS 选项的模式选项设置值)。 RDS 事件 如果仍有 SSAS 数据库使用当前模式,则无法更改 SSAS 模式。请删除 SSAS 数据库,然后重试。
无法删除 SSAS 选项,因为存在 number 个现有 mode 数据库。删除所有 SSAS 数据库后,才能删除 SSAS 选项。再次添加 SSAS 选项,删除所有 SSAS 数据库,然后重试。 RDS 事件 如果仍然有 SSAS 数据库,则无法禁用 SSAS。请删除 SSAS 数据库,然后重试。
SSAS 选项未启用或处于启用过程中。请稍后重试。 RDS 存储过程 选项被禁用或正在启用时,您无法运行 SSAS 存储过程。
SSAS 选项配置不正确。确保选项组成员资格状态为“同步中”,然后查看 RDS 事件日志以获取相关 SSAS 配置错误消息。在完成这些调查后重试一次。如果仍会出现错误,请联系 AWS Support。 RDS 存储过程

如果选项组成员资格不是 in-sync 状态,则无法运行 SSAS 存储过程。这会让 SSAS 选项处于不正确的配置状态。

如果选项组成员资格状态因 SSAS 选项修改而变为 failed,则有两个可能原因:

  1. 已删除 SSAS 选项,但未删除 SSAS 数据库。

  2. SSAS 模式已从表格模式更新为多维模式或从多维模式更新为表格模式,但未删除现有的 SSAS 数据库。

重新配置 SSAS 选项,因为 RDS 一次只允许一个 SSAS 模式,并且不支持在存在 SSAS 数据库的情况下删除 SSAS 选项。

检查 RDS 事件日志中 SSAS 实例的配置错误,再相应地解决问题。

部署失败。只能在以 deployment_file_mode 模式运行的服务器上部署更改。当前服务器模式为 current_mode RDS 存储过程

无法将表格数据库部署到多维服务器,也无法将多维数据库部署到表格服务器。

确保使用的是具有正确模式的文件,然后验证 MODE 选项设置是否设置为合适的值。

还原失败。只能在以 restore_file_mode 模式运行的服务器上恢复备份文件。当前服务器模式为 current_mode RDS 存储过程

无法将表格数据库还原到多维服务器,也无法将多维数据库还原到表格服务器。

确保使用的是具有正确模式的文件,然后验证 MODE 选项设置是否设置为合适的值。

还原失败。备份文件与 RDS 数据库实例版本不兼容。 RDS 存储过程

无法使用与 SQL Server 实例版本不兼容的版本还原 SSAS 数据库。

有关更多信息,请参阅 Microsoft 文档中的表格模型的兼容性级别多维数据库的兼容性级别

还原失败。还原操作中指定的备份文件已损坏或不是 SSAS 备份文件。确保 @rds_file_path 格式正确。 RDS 存储过程

无法使用受损文件还原 SSAS 数据库。

确保文件未遭破坏或损坏。

此错误也会在 @rds_file_path 格式不正确时发生。(例如 D:\S3\\incorrect_format.abf 中存在两条反斜杠)。

还原失败。还原的数据库名称不能包含任何保留字或无效字符(. , ; ' ` : / \\ * | ? \" & % $ ! + = ( ) [ ] { } <>),长度不能超过 100 个字符。 RDS 存储过程

还原的数据库名称不能包含任何保留字或无效字符,长度不能超过 100 个字符。

有关 SSAS 对象命名惯例,请参阅 Microsoft 文档中的对象命名规则

提供的角色名称无效。角色名称不能包含任何保留字符串。 RDS 存储过程

角色名称不能包含任何保留字符串。

有关 SSAS 对象命名惯例,请参阅 Microsoft 文档中的对象命名规则

提供的角色名称无效。角色名称不能包含以下任何保留字符:. , ; ' ` : / \\ * | ? \" & % $ ! + = ( ) [ ] { } <> RDS 存储过程

角色名称不能包含任何保留字符。

有关 SSAS 对象命名惯例,请参阅 Microsoft 文档中的对象命名规则