多次元モデルの処理 (Analysis Services)
適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
"処理" とは、Analysis Services がリレーショナル データ ソースから多次元モデルにデータを読み込む 1 つまたは一連のステップです。 MOLAP ストレージを使用するオブジェクトの場合、データはディスクのデータベース ファイル フォルダーに保存されます。 ROLAP ストレージの場合、処理は要求に応じて、オブジェクトに対する MDX クエリへの応答として発生します。 ROLAP ストレージを使用するオブジェクトの場合の処理とは、クエリ結果を返す前にキャッシュを更新する操作のことを指します。
既定では、処理は、サーバーにソリューションを配置するときに発生します。 また、Management Studio や SQL Server Data Tools などのツールを使用してアドホックに、または Integration Services と SQL Server エージェント を使用してスケジュールに従って、ソリューションの全部または一部を処理することもできます。 ディメンションの削除や互換性レベルの変更など、モデルの構造を変更するときは、モデルの物理的および論理的な構造を同期するために再度処理する必要があります。
このトピックのセクションは次のとおりです。
前提条件
処理を行うには、Analysis Services のインスタンスに対する管理権限が必要です。 SQL Server Data Toolsまたは Management Studio から対話形式で処理する場合は、SQL Server Analysis Services インスタンスのサーバー管理者ロールのメンバーである必要があります。 たとえば、SQL Server エージェントでスケジュールを設定した SSIS パッケージを使用するなど、自動的に実行される処理の場合は、パッケージの実行に使用するアカウントがサーバー管理者ロールのメンバーである必要があります。 管理者権限の設定の詳細については、「 Analysis Services インスタンスにサーバー管理者権限を付与する」を参照してください。
データの取得に使用するアカウントは、データ ソース オブジェクトで指定されます。Windows 認証を使用する場合は権限借用オプションで指定され、データベース認証を使用する場合は接続文字列のユーザー名で指定されます。 このアカウントには、モデルで使用するリレーショナル データ ソースに対する読み取り権限が必要です。
オブジェクトを処理する前に、プロジェクトまたはソリューションを配置する必要があります。
最初のうち、モデル開発の早い段階では、配置と処理が一緒に発生します。 ただし、ソリューションを配置した後は、モデルを処理するオプションを設定することができます。 配置の詳細については、「 Analysis Services プロジェクトの配置 (SSDT)」を参照してください。
ツールまたは方法を選択する
SQL Server Data Toolsや Management Studio などのクライアント アプリケーション、またはSQL Server エージェント ジョブまたは SSIS パッケージとして実行されるスクリプト化された操作を使用して、オブジェクトを対話形式で処理できます。
データベースをどのように処理するかは、モデルが開発中か、実稼動しているかによって異なります。 いったんモデルが実稼動サーバーに配置されたら、多次元データの整合性や可用性を確保するために、処理は厳密に管理される必要があります。 オブジェクトどうしは、相互に依存するため、通常、処理はモデル間で連鎖的に影響を及ぼします。これは、他のオブジェクトも平行して処理されたり、処理されなかったりするためです。 いくつかのオブジェクトが未処理状態の場合、そのデータに対するクエリは解決せず、データを使用するレポートやアプリケーションは中断します。 運用データベースを処理するための戦略を開発する場合は、オペレーター エラーや見落とされた手順を回避するために、デバッグおよびテストしたスクリプトまたは SSIS パッケージを使用することを検討してください。
詳細については、「 処理のツールとアプローチ (Analysis Services)」を参照してください。
オブジェクトの処理
処理は、メジャー グループ、パーティション、ディメンション、キューブ、マイニング モデル、マイニング構造、データベースのSQL Server Analysis Services オブジェクトに影響します。 あるオブジェクトに 1 つまたは複数のオブジェクトが含まれている場合は、最上位レベルのオブジェクトを処理すると、連鎖的に下位レベルのオブジェクトがすべて処理されます。 たとえば、通常、キューブには、1 つ以上のメジャー グループ (各メジャー グループには 1 つ以上のパーティションが含まれています) とディメンションが含まれています。 キューブを処理すると、そのキューブ内のメジャー グループと、その構成要素である、現在未処理の状態にあるディメンションがすべて処理されます。 オブジェクトSQL Server Analysis Services処理の詳細については、「Analysis Services オブジェクトの処理」を参照してください。
処理ジョブが動作している間は、影響を受けるSQL Server Analysis Services オブジェクトにアクセスしてクエリを実行できます。 処理ジョブはトランザクション内で実行され、そのトランザクションはコミットまたはロールバックできます。 処理ジョブが失敗すると、トランザクションはロールバックされます。 処理ジョブが成功すると、変更がコミットされている間はオブジェクトが排他的にロックされます。つまり、このオブジェクトはクエリや処理に一時的に使用できなくなります。 トランザクションのコミット フェーズの間でも、クエリをオブジェクトに送信できますが、そのクエリはコミットが完了するまでキューに置かれます。
処理ジョブを実行するとき、オブジェクトの処理の有無およびその処理方法は、そのオブジェクトに設定されている処理オプションによって異なります。 各オブジェクトに適用できる特定の処理オプションの詳細については、「 処理オプションと設定 (Analysis Services)」を参照してください。
オブジェクトの再処理
未処理の要素を含んでいるキューブは、参照する前に再処理する必要があります。 SQL Server Analysis Servicesのキューブには、キューブのクエリを実行する前に処理する必要があるメジャー グループとパーティションが含まれています。 キューブを処理すると、SQL Server Analysis Servicesが処理されていない状態の場合、キューブの構成ディメンションが処理されます。 オブジェクトを最初に処理した後、次のような状態が発生した場合は、部分的または全体的にオブジェクトを再処理する必要があります。
オブジェクトの構造が変化した場合 (ファクト テーブル内の列を削除するなど)
オブジェクトの集計デザインが変化した場合
オブジェクト内のデータを更新する必要がある場合
SQL Server Analysis Servicesでオブジェクトを処理する場合は、処理オプションを選択するか、SQL Server Analysis Servicesを有効にして適切な処理の種類を決定できます。 使用可能な処理方法はオブジェクトごとに異なり、オブジェクトの種類に基づいています。 また、使用可能な方法は、オブジェクトの最後の処理後にオブジェクトに対して行われた変更に基づいています。 SQL Server Analysis Servicesが処理メソッドを自動的に選択できるようにする場合、オブジェクトを最短時間で完全に処理された状態に戻す メソッドが使用されます。 詳細については、「 処理オプションと設定 (Analysis Services)」を参照してください。
参照
論理アーキテクチャ (Analysis Services - 多次元データ)
データベース オブジェクト (Analysis Services - 多次元データ)