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 の詳細については、Microsoft の Analysis Services のドキュメントを参照してください。

Amazon RDS for SQL Server は、表形式モードでの SQL Server Analysis Services (SSAS) の実行をサポートしています。SSAS は、既存または新規の DB インスタンスで有効にすることができます。データベースエンジンと同じ DB インスタンスにインストールされます。

RDS は、次のバージョンで SQL Server 標準エディションおよびエンタープライズエディションの SSAS をサポートします。

  • SQL Server 2017、バージョン 14.00.3223.3.v1 以降

  • SQL Server 2016、バージョン 13.00.5426.0.v1 以降

制約事項

RDS for SQL Server で SSAS を実行する場合は、次の制限が適用されます。

  • SSAS でサポートされているモードは、表形式モードのみです。

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

  • インスタンスは、SSAS 認証に Microsoft Active Directory (Enterprise Edition) 用の AWS Directory Service を使用する必要があります。

  • ユーザーには、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 マネジメントコンソール または AWS CLI を使用して、使用する DB インスタンスの SQL Server エンジンおよびバージョンに対応するオプショングループを作成します。

注記

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

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

オプショングループを作成するには

  1. AWS マネジメントコンソールにサインインし、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 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 マネジメントコンソール または AWS CLI を使用して SSAS オプションをオプショングループに追加します。

SSAS オプションを追加するには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

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

  3. 先ほど作成したオプショングループを選択します。

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

  5. [オプションの詳細] で、[オプション名] として SSAS を選択します。

  6. [オプション設定] で、[最大メモリ] として 10~80 の値を入力します。

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

    注記

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

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

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

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

SSAS オプションを追加するには

  1. 次のパラメータを使用して JSON ファイル (ssas-option.json など) を作成します。

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

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

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

    • MAX_MEMORY – メモリの上限しきい値。この値を超えると、実行中のリクエスト用および新しい優先順位の高いリクエスト用のスペースを確保するために、SSAS がメモリの解放を積極的に開始します。この値は、DB インスタンスの合計メモリに対する割合 (%) です。指定できる値は 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

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

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

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

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

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

    注記

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

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

注記

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

オプショングループを使用する 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 \ --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

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 インスタンスへのアクセスを提供する」を参照してください。

S3 統合を有効にする

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

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

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

注記

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

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

  • 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_REQUESTEDrds_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. [データベース] を展開します。新しくデプロイした SSAS データベースが表示されます。

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

  4. 接続文字列で、ユーザー名とパスワードを、ソース SQL データベースのユーザー名とパスワードに更新します。この操作は、テーブルを処理するために必要です。

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

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

データベース管理者としてのドメインユーザーの追加

次の方法で、ドメインユーザーを 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 データベースのバックアップファイルは、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 データベースをバックアップから復元するには、次のストアドプロシージャを使用します。

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 データベースがある場合は、データベースを復元できません。復元用のストアドプロシージャは、暗号化されたバックアップファイルをサポートしていません。

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

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

復元された DB インスタンスで最新の SSAS データベースを使用するには

  1. SSAS データベースをソースインスタンスの D:\S3 フォルダにバックアップします。

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

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

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

注記

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

SSAS の無効化

SSAS を無効にするには、オプショングループから SSAS オプションを削除します。SSAS オプションを削除する前に、SSAS データベースを削除します。

重要

SSAS データベースを削除して SSAS オプションを削除する前に、SSAS データベースをバックアップすることを強くお勧めします。

SSAS オプションをオプショングループから削除するには

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

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

  3. SSAS オプション (前の例では ssas-se-2017) が含まれているオプショングループを選択します。

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

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

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

  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