バッチ処理 (Analysis Services)
適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
SQL Server Analysis Servicesでは、Batch コマンドを使用して、1 つの要求で複数の処理コマンドをサーバーに送信できます。 バッチ処理では、どのオブジェクトがどの順序で処理されるのかを制御できます。 また、バッチは、一連のスタンドアロン ジョブとして実行するか、1 つのプロセスが失敗したときにバッチ全体をロールバックするトランザクションとして実行することもできます。
バッチ処理では、変更をコミットするのに必要な時間をまとめることで短縮し、データの可用性を最大にします。 ディメンションを完全に処理すると、そのディメンションを使用するパーティションには未処理のマークが付きます。 その結果、未処理のパーティションを含むキューブは参照できなくなります。 この問題は、バッチ処理ジョブを使用し、影響を受けるパーティションと共にディメンションを処理することで対処できます。 バッチ処理ジョブをトランザクションとして実行すると、すべての処理が完了するまで、そのトランザクションに含まれるすべてのオブジェクトをクエリ用に使用できます。 トランザクションが変更をコミットするときに、影響を受けるオブジェクトはロックされるため、オブジェクトは一時的に使用できなくなります。ただし、変更をコミットするために必要な全体の時間は、オブジェクトを個々に処理した場合よりも短縮されます。
このトピックでは、ディメンションおよびパーティションを完全に処理する手順を示します。 バッチ処理には、増分処理などの他の処理オプションを含めることもできます。 これらの手順を正しく機能させるには、少なくとも 2 つのディメンションと 1 つのパーティションを含む既存のSQL Server Analysis Services データベースを使用する必要があります。
このトピックのセクションは次のとおりです。
Management Studio での XMLA を使用したバッチ処理
SQL Server データ ツールでのバッチ処理
SQL Server Data Toolsでオブジェクトを処理するには、そのオブジェクトを含むプロジェクトを配置する必要があります。 詳細については、「 Analysis Services プロジェクトの配置 (SSDT)」を参照してください。
SQL Server Data Tools を開きます。
配置されているプロジェクトを開きます。
ソリューション エクスプローラーで、配置されたプロジェクトの [ディメンション] フォルダーを展開します。
Ctrl キーを押しながら、 [ディメンション] フォルダーに一覧表示されている各ディメンションをクリックします。
選択したディメンションを右クリックし、 [処理]をクリックします。
Ctrl キーを押しながら、 [オブジェクト一覧]に表示されている各ディメンションをクリックします。
選択したディメンションを右クリックし、 [完全処理]を選択します。
バッチ処理ジョブをカスタマイズするには、 [設定の変更]をクリックします。
[処理オプション]で、以下の設定を行います。
[処理順序] を [シーケンシャル]に、 [トランザクション モード] を [1 つのトランザクション]に設定します。
[書き戻しテーブル オプション] を [既存のデータを使用する]に設定します。
[影響を受けたオブジェクト]の [影響を受けたオブジェクトを処理する] チェック ボックスをオンにします。
[ ディメンション キーエラー ] タブをクリックします。 [既定のエラー構成を使用する ] が選択されていることを確認します。
[OK] をクリックし、 [設定の変更] 画面を閉じます。
[ディメンションの処理] 画面で [実行] をクリックし、処理ジョブを開始します。
[状態] ボックスに "処理が成功しました"と表示されたら、 [閉じる]をクリックします。
[ディメンションの処理] 画面で [閉じる] をクリックします。
Management Studio での XMLA を使用したバッチ処理
バッチ処理を実行する XMLA スクリプトを作成することができます。 まず、Management Studio でオブジェクトごとに XMLA スクリプトを生成し、対話形式またはスケジュールされたタスク内で実行する 1 つの XMLA クエリに組み合わせます。
詳細な手順については、「SQL Server エージェントを使用して SSAS 管理タスクをスケジュールする」の例 2 を参照してください。