AMO の概念とオブジェクト モデル

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

この記事では、Analysis Management Objects (AMO)、Analysis Services のアーキテクチャで提供されている他のツールやライブラリと AMO がどのように関連しているか、および AMO 内のすべての主要なオブジェクトの概念的な説明について説明します。

AMO は、マネージド環境の の名前空間の下でプログラムで使用できる管理クラスの Microsoft.AnalysisServices完全なコレクションです。 クラスは AnalysisServices.dll ファイルに含まれています。これは通常、セットアップによってファイルがインストールされるフォルダー \100\SDK\Assemblies\ の下にあります。 AMO クラスを使用するには、このアセンブリへの参照をプロジェクト内に含めてください。

AMO を使用すると、キューブ、ディメンション、マイニング構造、データベースなどのオブジェクトを作成、変更、削除できます。これらのすべてのオブジェクトに対して、.NET Frameworkでアプリケーションからアクションを実行できます。 データベースに格納されている情報を処理および更新することもできます。

Analysis Services アーキテクチャの AMO

AMO はオブジェクト管理のみを用途として設計されており、データのクエリは用途外です。 ユーザーがクライアント アプリケーションのデータに対してクエリを実行する必要がある場合は、クライアント アプリケーションで ADOMD.NET を使用する必要があります。

AMO アーキテクチャ

AMO は、.NET Framework バージョン 2.0 以降のマネージド コードでクライアント アプリケーションから Analysis Services インスタンスを管理するように設計されたクラスの完全なライブラリです。

AMO クラス ライブラリの設計上、クラス間に階層関係があり、コードを記述する際、一部のクラスをインスタンス化してからその他のクラスを使用する必要があります。 また、コード内でいつでもインスタンス化できる補助クラスもあります。ただし、多くの場合、いずれかの補助クラスを使用する前に、1 つ以上の階層クラスが既にインスタンス化されています。

次の図は、主要なクラスを含む AMO 階層の概要を示しています。 この図では、各クラスがそのコンテナーとピアの間に配置されています。 は DimensionServerDatabase属し、 および と同時MiningStructureDataSourceに作成できます。 他のクラスを使用するには、特定のピア クラスをインスタンス化する必要があります。 たとえば、新しい Dimension または MiningStructureを追加する前に、 のDataSourceインスタンスを作成する必要があります。

AMO クラスの上位レベル ビュー

メジャー オブジェクトは、完全なオブジェクトをエンティティ全体として表し、別のオブジェクトの一部として表すクラスではありません。 主なオブジェクトには、、CubeDimension、および MiningStructureが含まれますServer。これらはエンティティ自体であるためです。 ただし、 Level は の構成要素 Dimensionであるため、メジャー オブジェクトではありません。 主要オブジェクトは、他のオブジェクトに関係なく、作成、削除、変更、または処理できます。 副次オブジェクトは、親である主要オブジェクトを作成する際に、その一部としてのみ作成できるオブジェクトです。 通常、副次オブジェクトは、主要オブジェクトの作成時に作成されます。 副次オブジェクトの値は作成時に定義してください。副次オブジェクトには既定値が作成されないためです。

次の図は、オブジェクトに含まれる主要なオブジェクトを Server 示しています。

強調表示された AMO の主なオブジェクト

強調表示された AMO の主なオブジェクト (2)

AMO を使用してプログラミングする場合、クラスと包含クラスの間の関連付けでは、 や DimensionなどのServerコレクション型属性が使用されます。 含まれているクラスのインスタンスを使用するには、まず、そのクラスが含まれているか、含まれている可能性のあるコレクション オブジェクトへの参照を取得します。 次に、必要とするオブジェクトをコレクション内で特定し、オブジェクトへの参照を取得すれば、これを使用できるようになります。

AMO クラス

AMO は、クライアント アプリケーションから Analysis Services のインスタンスを管理するように設計されたクラスのライブラリです。 AMO ライブラリは、特定のタスクの実行に使用される、論理的に関連したオブジェクトのグループとして考えることができます。 AMO クラスは、次のように分類できます。

クラス セット 目的
AMO 基礎クラス 他のクラスのセットを操作するために必須のクラス。
AMO OLAP クラス OLAP オブジェクトを管理できるクラス。
AMO データ マイニング クラス データ マイニング オブジェクトを管理できるクラス。
AMO セキュリティ クラス 他のオブジェクトへのアクセスを制御し、セキュリティのメンテナンスを可能にするためのクラス。
AMO のその他のクラスとメソッド OLAP またはデータ マイニングの管理者の日常的業務の遂行に役立つ、クラスおよびメソッド。

AMO の使用

AMO は、繰り返しタスクの自動化に非常に役立ちます。たとえば、ファクト テーブルの新しいデータに基づいてメジャー グループに新しいパーティションを作成する場合や、新しいデータに基づいてマイニング モデルを再調整する場合などです。 新しいオブジェクトを作成するこれらのタスクは、通常、毎月、毎週、または四半期ごとに実行され、アプリケーションで新しいオブジェクトに新しいデータに基づく名前を付けることも簡単です。

Analysis Services 管理者

管理者は、AMO を使用してデータベースの処理を自動化できます。 データベースの設計と配置には、Visual Studio を使用します。

開発者向け

開発者は、AMO を使用して、指定したユーザー セット用の管理インターフェイスを開発できます。 これらのインターフェイスを使用すると、オブジェクトへのアクセスを制限し、ユーザーを特定のタスクに制限できます。 たとえば、AMO を使用して、ユーザーがすべてのデータベース オブジェクトを表示し、いずれかのデータベースを選択して、指定したデバイス セットのいずれかにバックアップできるようにするバックアップ アプリケーションを作成できます。

開発者は、アプリケーションにロジックを埋め込むこともできます。 このため、開発者は、ユーザー入力などの要因に基づいて、キューブ、ディメンション、マイニング構造、およびマイニング モデルを作成できます。

OLAP の上級ユーザー

データ アナリストや経験豊富なデータ ユーザーをはじめとする OLAP の上級ユーザーは、プログラミングに関する豊富な背景知識を持ち、データ オブジェクトをさらに緻密に使用してデータ分析を強化したいと望んでいます。 オフライン作業が必要なユーザーにとって、オフラインへの切り替え前のローカル キューブの作成を自動化するために、AMO が非常に役立ちます。

データ マイニングの上級ユーザー

データ マイニングの上級ユーザーにとって、定期的な再調整を必要とするモデル セットが大量にある場合に、AMO が非常に役立ちます。

AMO を使用した管理タスクの自動化

ほとんどの繰り返しタスクは、任意の言語でアプリケーションとして開発される場合よりも、Integration Services を使用して開発される場合に最適に設計、デプロイ、保守されます。 ただし、Integration Services を使用して自動化できない繰り返しタスクの場合は、AMO を使用できます。

自動オブジェクト管理

AMO を使用すると、ユーザー入力や新しく取得したデータに基づいて、オブジェクト (、DatabaseDimensionCube、、マイニングMiningStructureMiningModel、または など) を簡単に作成、更新、削除Roleできます。 AMO は、独立系ソフトウェア ベンダーによって開発されたソリューションを、最終的な顧客に配置するためのセットアップ アプリケーションに最適です。 セットアップ アプリケーションでは、旧バージョンが存在するかどうかを検証し、構造を更新し、不要なオブジェクトを削除し、新しいオブジェクトを作成できます。 旧バージョンが存在しない場合は、すべてを最初から作成します。

AMO は、新しいデータに基づいて新しいパーティションを作成するときに強力であり、プロジェクトのスコープを超えた古いパーティションを削除できます。 たとえば、過去 36 か月のデータを使用する財務分析ソリューションでは、新しい月のデータが入力されしだい、37 番目の月のデータが削除されるようにできます。 パフォーマンスを最適化するためには、使用率に基づく集計を新しく設計し、過去 12 か月分に適用できます。

自動オブジェクト処理

AMO を使用して、通常のフロー データや Integration Services を使用するスケジュールされたタスク以外の特定のイベントに応答することで、オブジェクト処理と更新された可用性を実現できます。

自動セキュリティ管理

セキュリティ管理を自動化して、新しいユーザーをロールや権限に含めたり、時間切れになったユーザーを削除したりできます。 新しいインターフェイスを作成して、セキュリティ管理者によるセキュリティ管理を単純化できます。 これは、Visual Studio を使用するよりも簡単です。

自動バックアップ管理

自動バックアップ管理は、Integration Services タスクを使用するか、自動的に実行される特殊な AMO アプリケーションを作成することによって行うことができます。 AMO を使用すると、オペレーターの日常業務を支援するバックアップ インターフェイスを開発できます。

タスク AMO は、データのクエリを実行するためのものではありません

データのクエリには、AMO を使用できません。 キューブやマイニング モデルなどのデータに対してクエリを実行するには、ユーザー アプリケーションの ADOMD.NET を使用します。 詳細については、「 ADOMD.NET を使用した開発」を参照してください。