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 ビジネスインテリジェンス (MSBI) スイートの一部です。SSAS は、SQL Server 内にインストールされているオンライン分析処理 (OLAP) およびデータマイニングツールです。SSAS を使用してデータを分析し、ビジネス上の意思決定に役立てます。SSAS は、ビジネスインテリジェンス環境の一般的なクエリや計算用に最適化されているという点で、SQL Server リレーショナルデータベースとは異なります。

SSAS は、既存または新規の DB インスタンスに対してオンにすることができます。データベースエンジンと同じ DB インスタンスにインストールされます。SSAS の詳細については、Microsoft の Analysis Services のドキュメントを参照してください。

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 モードは 1 つだけです。モードを変更する前に、すべての SSAS データベースを必ず削除してください。

    詳細については、「SSAS モードの変更」を参照してください。

  • SQL Server 2019 では、多次元モードはサポートされていません。

  • マルチ AZ インスタンスはサポートされていません。

  • インスタンスは自己管理型の Active Directory または AWS Directory Service for Microsoft Active Directory for SSAS 認証を使用する必要があります。詳細については、「RDS for SQL Server による Active Directory の操作」を参照してください。

  • ユーザーには、SSAS サーバーの管理者アクセス権は付与されませんが、データベースレベルの管理者アクセス権が付与されます。

  • SSAS へのアクセスにサポートされているポートは 2383 のみです。

  • プロジェクトを直接デプロイすることはできません。これを行うには、用意されている RDS ストアドプロシージャを使用できます。詳細については、「Amazon RDS への SSAS プロジェクトのデプロイ」を参照してください。

  • デプロイ中の処理はサポートされていません。

  • デプロイでの .xmla ファイルの使用はサポートされていません。

  • SSAS のプロジェクト入力ファイルとデータベースバックアップ出力ファイルは、DB インスタンスの D:\S3 フォルダにのみ配置できます。

SSAS をオンにする

DB インスタンスの SSAS をオンにするには、次のプロセスを使用します。

  1. 新しいオプショングループを作成するか、既存のオプショングループを選択します。

  2. オプショングループに [SSAS] オプションを追加します。

  3. オプショングループを DB インスタンスに関連付けます。

  4. SSAS リスナーポートの仮想プライベートクラウド (VPC) セキュリティグループへのインバウンドアクセスを許可します。

  5. Amazon S3 統合をオンにします。

SSAS のオプショングループの作成

AWS Management Console または AWS CLI を使用して、使用する DB インスタンスの SQL Server エンジンおよびバージョンに対応するオプショングループを作成します。

注記

既存のオプショングループが正しい SQL Server エンジンおよびバージョンに対応している場合は、それを使用することもできます。

次の手順では、コンソールを使用して SQL Server Standard Edition 2017 のオプショングループを作成します。

オプショングループを作成するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[オプショングループ] を選択します。

  3. [Create group] (グループの作成) を選択します。

  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 Standard Edition 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. [オプションの詳細] で、[オプション名] として SSAS を選択します。

  6. [オプション設定] で、次の操作を行います。

    1. [Max memory] (最大メモリ) に、10~80 の範囲の値を入力します。

      [最大メモリ] は、メモリの上限しきい値を指定します。この値を超えると、実行中のリクエスト用と新しい優先順位の高いリクエスト用のスペースを確保するために、SSAS がメモリの解放を積極的にスタートします。この値は、DB インスタンスの合計メモリに対する割合 (%) です。指定できる値は 10〜80 で、デフォルトは 45 です。

    2. [Mode] (モード) で、SSAS サーバーモードとして [Tabular] (表形式) または [Multidimensional] (多次元) を選択します。

      [Mode] (モード) オプション設定が表示されない場合は、自身の AWS リージョンで多次元モードがサポートされていないことを意味します。詳細については、「制約事項」を参照してください。

      [Tabular] (表形式) はデフォルトです。

    3. [セキュリティグループ] で、オプションに関連付ける VPC セキュリティグループを選択します。

    注記

    SSAS にアクセスするためのポート 2383 は事前に設定されています。

  7. [スケジュール] で、オプションをすぐに追加するか、次のメンテナンスウィンドウで追加するかを選択します。

  8. [オプションを追加] を選択します。

SSAS オプションを追加するには
  1. 次のパラメータを使用して JSON ファイル (ssas-option.json など) を作成します。

    • OptionGroupName - 以前に作成または選択したオプショングループの名前 (次の例では ssas-se-2017)。

    • Port - SSAS にアクセスするために使用するポート。サポートされているポートは 2383 のみです。

    • VpcSecurityGroupMemberships – RDS DB インスタンスの VPC セキュリティグループのメンバーシップ。

    • MAX_MEMORY - メモリの上限しきい値。この値を超えると、実行中のリクエスト用および新しい優先順位の高いリクエスト用のスペースを確保するために、SSAS がメモリの解放を積極的にスタートします。この値は、DB インスタンスの合計メモリに対する割合 (%) です。指定できる値は 10〜80 で、デフォルトは 45 です。

    • MODE – SSAS サーバモード。Tabular または MultidimensionalTabular がデフォルトです。

      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

オプショングループを DB インスタンスに関連付ける

コンソールまたは CLI を使用して、オプショングループを DB インスタンスに関連付けることができます。

オプショングループを新規または既存の DB インスタンスに関連付けます。

  • 新規の DB インスタンスの場合は、DB インスタンスの起動時にオプショングループを DB インスタンスと関連付けます。詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。

  • 既存の DB インスタンスの場合は、DB インスタンスを変更してから、新しいオプショングループと関連付けます。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。

    注記

    既存のインスタンスを使用する場合は、このインスタンスに Active Directory ドメインと AWS Identity and Access Management (IAM) ロールが既に関連付けられている必要があります。新しいインスタンスを作成する場合は、既存の Active Directory ドメインと IAM ロールを指定します。詳細については、「RDS for SQL Server による Active Directory の操作」を参照してください。

オプショングループを新規または既存の DB インスタンスに関連付けることができます。

注記

既存のインスタンスを使用する場合は、このインスタンスに Active Directory ドメインと IAM ロールが既に関連付けられている必要があります。新しいインスタンスを作成する場合は、既存の Active Directory ドメインと IAM ロールを指定します。詳細については、「RDS for SQL Server による Active Directory の操作」を参照してください。

オプショングループを使用する DB インスタンスを作成するには
  • オプショングループの作成時に使用したのと同じ DB エンジンのタイプとメジャーバージョンを指定します。

    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
DB インスタンスを変更してオプショングループを関連付けるには
  • 以下のいずれかのコマンドを使用します。

    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 セキュリティグループへのインバウンドアクセスの許可

DB インスタンスに関連付けられた VPC セキュリティグループで、指定した SSAS リスナーポートのインバウンドルールを作成します。セキュリティグループの設定の詳細については、「セキュリティグループを作成して VPC 内の DB インスタンスへのアクセスを提供する」を参照してください。

Amazon S3 統合の有効化

モデル設定ファイルをホストにダウンロードしてデプロイするには、Amazon S3 統合を使用します。詳細については、「Amazon RDS for SQL Server DB インスタンスと Amazon S3 の統合」を参照してください。

Amazon RDS への SSAS プロジェクトのデプロイ

RDS では、SQL Server Management Studio (SSMS) を使用して SSAS プロジェクトを直接デプロイすることはできません。プロジェクトをデプロイするには、RDS ストアドプロシージャを使用します。

注記

デプロイでの .xmla ファイルの使用はサポートされていません。

プロジェクトをデプロイする前に、以下を確認してください。

  • Amazon S3 統合がオンになっている。詳細については、「Amazon RDS for SQL Server DB インスタンスと Amazon S3 の統合」を参照してください。

  • Processing Option 構成設定が Do Not Process に設定されている。この設定は、デプロイ後に処理が実行されないことを意味します。

  • myssasproject.asdatabase ファイルと myssasproject.deploymentoptions ファイルの両方がある。これらは、SSAS プロジェクトの構築時に自動的に生成されます。

SSAS プロジェクトを RDS にデプロイするには
  1. 次の例に示すように、.asdatabase (SSAS モデル) を S3 バケットから DB インスタンスにダウンロードします。ダウンロードパラメータの詳細については、「Amazon S3 バケットから SQL Server DB インスタンスにファイルをダウンロードする」を参照してください。

    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 バケットから DB インスタンスにダウンロードします。

    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 関数を呼び出します。2 つのパラメータを使用します。1 つめのパラメータは、SSAS に適用されないため、常に NULL を設定してください。2 つめのパラメータは、タスク ID を受け入れます。

全タスクのリストを見るには、以下の例にあるように、初期のパラメータを NULL に設定し、2 つめのパラメータを 0 に設定します。

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

特定のタスクを受け取るには、以下の例にあるように、初期のパラメータを NULL に設定し、2 つめのパラメータをタスク 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. [データベース] を展開します。新しくデプロイした SSAS データベースが表示されます。

  3. 接続文字列を見つけて、ユーザー名とパスワードを、ソース SQL データベースにアクセスできるように更新します。この操作は、SSAS オブジェクトを処理するために必要です。

    1. 表形式モードの場合、次の操作を行います。

      1. [Connections] (接続) タブを展開します。

      2. 右クリックで接続オブジェクトのメニューを開き、[Properties] (プロパティ) を選択します。

      3. 接続文字列のユーザー名とパスワードを更新します。

    2. 多次元モードの場合、次の操作を行います。

      1. [Data Sources] (データソース) タブを展開します。

      2. 右クリックでデータソースオブジェクトのメニューを開き、[Properties] (プロパティ) を選択します。

      3. 接続文字列のユーザー名とパスワードを更新します。

  4. 作成した SSAS データベースのコンテキスト (右クリック) メニューを開き、[データベースの処理] を選択します。

    入力データのサイズによっては、処理オペレーションが完了するまでに数分かかる場合があります。

SSAS 用の Windows 認証ユーザーの設定

メイン管理者ユーザー (マスターユーザーと呼ばれることもあります) は、以下のコード例を使用して、Windows 認証ログインを設定し、必要な手順に対するアクセス許可を付与できます。これにより、ドメインユーザーに SSAS カスタマータスクの実行、S3 ファイル転送手順の使用、認証情報の作成、および SQL Server エージェントプロキシの操作を行うアクセス許可が付与されます。詳細については、Microsoft ドキュメントの「Credentials (Database Engine)」および「Create a SQL Server Agent Proxy」を参照してください。

必要に応じて、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 プロキシの作成

SQL Server エージェントを使用して SSAS データベース処理をスケジュールできるようにするには、SSAS 認証情報と 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 エージェントを使用した SSAS データベース処理のスケジュール

認証情報とプロキシを作成し、SSAS にプロキシへのアクセスを許可したら、SQL Server エージェントジョブを作成して SSAS データベース処理をスケジュールできます。

SSAS データベース処理をスケジュールするには
  • SSMS または T-SQL を使用して、SQL Server エージェントジョブを作成します。以下の例では T-SQL を使用しています。SSMS または T-SQL を使用して、ジョブスケジュールをさらに設定できます。

    • @command パラメータは、SQL Server エージェントジョブによって実行される XML for Analysis (XMLA) コマンドの概要を示します。この例では、SSAS 多次元データベース処理を設定します。

    • @server パラメータは、SQL Server エージェントジョブのターゲット SSAS サーバー名の概要を示しています。

      SQL Server エージェントジョブが存在する同じ RDS DB インスタンス内で SSAS サービスを呼び出すには、localhost:2383 を使用します。

      RDS DB インスタンスの外部から SSAS サービスを呼び出すには、RDS エンドポイントを使用します。RDS DB インスタンスが同じドメインで参加している場合、Kerberos Active Directory (AD) エンドポイント (your-DB-instance-name.your-AD-domain-name) も使用できます。外部 DB インスタンスの場合は、RDS DB インスタンスに関連付けられた VPC セキュリティグループをセキュアな接続用に適切に設定してください。

    クエリをさらに編集して、さまざまな XMLA オペレーションをサポートできます。T-SQL クエリを直接変更するか、SQL Server エージェントジョブの作成後に 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 データベースのバックアップ

SSAS データベースのバックアップファイルは、DB インスタンスの D:\S3 フォルダにのみ作成できます。バックアップファイルを 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 バックアップファイルへのパス。

特定の時点への DB インスタンスの復元

ポイントインタイムリカバリ (PITR) は SSAS データベースには適用されません。PITR を実行すると、復元されたインスタンスでは、リクエストした時刻より前の最後のスナップショットの SSAS データのみを使用できます。

復元された DB インスタンスで最新の SSAS データベースを使用するには
  1. SSAS データベースを出典インスタンスの D:\S3 フォルダにバックアップします。

  2. バックアップファイルを S3 バケットに転送します。

  3. S3 バケットから復元されたインスタンスの D:\S3 フォルダにバックアップファイルを転送します。

  4. 復元されたインスタンスに SSAS データベースを復元するためのストアドプロシージャを実行します。

    SSAS プロジェクトを再処理してデータベースを復元することもできます。

SSAS モードの変更

SSAS の実行モードは、表形式または多次元に変更できます。モードを変更するには、AWS Management Console または AWS CLI を使用して、SSAS オプションのオプション設定を変更します。

重要

一度に使用できる SSAS モードは 1 つだけです。モードを変更する前に、必ずすべての 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 データベースをバックアップすることを強くお勧めします。

SSAS オプションをオプショングループから削除するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[オプショングループ] を選択します。

  3. SSAS オプションで、削除するオプショングループ (前の例では ssas-se-2017) を選択します。

  4. [オプションを削除] を選択します。

  5. [オプションの削除] で、[削除するオプション] として [SSAS] を選択します。

  6. [すぐに適用] で、オプションをすぐに削除する場合は [はい] を選択し、次のメンテナンスウィンドウで削除する場合は [いいえ] を選択します。

  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 ですが、現在の DB インスタンスには number 個の current_mode データベースがあります。new_mode モードに切り替える前に既存のデータベースを削除します。データベースを削除するために current_mode モードへのアクセスを取り戻すには、現在の DB オプショングループを更新するか、SSAS オプションの MODE オプション設定値として %s を使用して新しいオプショングループをアタッチします。 RDS イベント 現在のモードを使用する SSAS データベースがまだある場合は、SSAS モードを変更できません。SSAS データベースを削除してから、もう一度試してください。
number 個の既存 mode のデータベースがあるため、SSAS オプションを削除できません。SSAS オプションは、すべての SSAS データベースが削除されるまで削除できません。SSAS オプションを再度追加し、すべての SSAS データベースを削除して、もう一度試してください。 RDS イベント SSAS データベースがまだある場合は、SSAS をオフにすることはできません。SSAS データベースを削除してから、もう一度試してください。
SSAS オプションが有効になっていないか、有効化中です。後ほどもう一度試してください。 RDS ストアドプロシージャ SSAS ストアドプロシージャは、このオプションがオフになっているときやオンになる途中のときには実行できません。
SSAS オプションが正しく設定されていません。オプショングループのメンバーシップステータスが「in-sync」であることを確認し、RDS イベントログで関連する SSAS 設定エラーメッセージを確認します。これらを調べてから、もう一度試してください。エラーが引き続き発生する場合は、AWS サポートにお問い合わせください。 RDS ストアドプロシージャ

オプショングループのメンバーシップが in-sync ステータスでないときは、SSAS ストアドプロシージャを実行できません。これにより、SSAS オプションは誤った設定状態になります。

SSAS オプションの変更により、オプショングループのメンバーシップステータスが failed に変更された場合、次の 2 つの理由が考えられます。

  1. SSAS オプションが、SSAS データベースを削除せずに削除された。

  2. SSAS モードが、既存の SSAS データベースを削除せずに、表形式から多次元、または多次元から表形式に更新された。

RDS では、一度に 1 つの SSAS モードのみが可能で、SSAS データベースが存在する場合の SSAS オプションの削除がサポートされていないので、SSAS オプションを再構成します。

RDS イベントログで SSAS インスタンスの設定エラーを確認し、それに応じて問題を解決します。

デプロイに失敗しました。変更は、deployment_file_mode モードで実行されているサーバーにのみデプロイできます。現在のサーバーモードは current_mode です。 RDS ストアドプロシージャ

表形式データベースを多次元サーバーにデプロイしたり、多次元データベースを表形式サーバーにデプロイしたりすることはできません。

正しいモードのファイルを使用していることを確認し、MODE オプション設定が適切な値に設定されていることを確認します。

復元に失敗しました。バックアップファイルは、restore_file_mode モードで実行されているサーバー上でのみ復元できます。現在のサーバーモードは current_mode です。 RDS ストアドプロシージャ

表形式データベースを多次元サーバーに復元したり、多次元データベースを表形式サーバーに復元することはできません。

正しいモードのファイルを使用していることを確認し、MODE オプション設定が適切な値に設定されていることを確認します。

復元に失敗しました。バックアップファイルと RDS DB インスタンスのバージョンに互換性がありません。 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 のドキュメントの「オブジェクトの名前付け規則」を参照してください。