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

ここでは、分析管理オブジェクト (AMO) の定義、Microsoft SQL Server Analysis Services のアーキテクチャで提供されるその他のツールやライブラリと AMO との関係、および AMO のすべての主要オブジェクトに関する概念について説明します。

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

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

AMO を使用して、データに対するクエリを実行することはできません。 データのクエリを実行するには、ADOMD.NET での開発 を使用してください。

このトピックには次のセクションが含まれます。

Analysis Services アーキテクチャにおける AMO

AMO のアーキテクチャ

AMO の使用

AMO による管理タスクの自動化

Analysis Services アーキテクチャにおける AMO

AMO はオブジェクト管理のみを用途として設計されており、データのクエリは用途外です。 Analysis Services データのクエリが必要なクライアント アプリケーションには、ADOMD.NET での開発 を使用してください。

AMO のアーキテクチャ

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

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

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

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

"主要オブジェクト" は、他のオブジェクトの一部ではなく、それ自体で完結したエンティティであるオブジェクトを表すクラスです。 主要オブジェクトには、ServerCubeDimensionMiningStructure が含まれます。これらはいずれも独立したエンティティです。 しかし、LevelDimension の構成要素なので、主要オブジェクトではありません。 主要オブジェクトは、他のオブジェクトに関係なく、作成、削除、変更、または処理できます。 副次オブジェクトは、親である主要オブジェクトを作成する際に、その一部としてのみ作成できるオブジェクトです。 通常、副次オブジェクトは、主要オブジェクトの作成時に作成されます。 副次オブジェクトの値は作成時に定義してください。副次オブジェクトには既定値が作成されないためです。

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

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

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

AMO クラス

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

クラス セット

目的

AMO の基礎クラス

他のクラスのセットを操作するために必須のクラス。

AMO OLAP クラス

Analysis Services で OLAP オブジェクトを管理するためのクラス。

AMO データ マイニング クラス

Analysis Services でデータ マイニング オブジェクトの管理を可能にするためのクラス。

AMO セキュリティ クラス

他のオブジェクトへのアクセスを制御し、セキュリティのメンテナンスを可能にするためのクラス。

AMO のその他のクラスとメソッド

OLAP またはデータ マイニングの管理者の日常的業務の遂行に役立つ、クラスおよびメソッド。

AMO の使用

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

Analysis Services 管理者

Analysis Services 管理者は、AMO を使用して、Analysis Services データベースの処理を自動化できます。 Analysis Services データベースの設計および配置には、SQL Server データ ツール (SSDT) を使用してください。

開発者

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

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

OLAP の上級ユーザー

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

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

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

AMO による管理タスクの自動化

ほとんどの繰り返しタスクは、どのような言語のアプリケーションとして開発するよりも Integration Services を使用して開発した方が、設計、配置、および保守に適しています。 しかし、Integration Services を使用しても自動化できない繰り返しタスクには、AMO を使用できます。 Analysis Services を使用して、ビジネス インテリジェンス用に専門性の高いアプリケーションを開発する際にも、AMO が役立ちます。

自動オブジェクト管理

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

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

自動オブジェクト処理

Integration Services を使用する通常のフロー データや定期タスク以外の、特定のイベントに応答するように AMO を使用すると、オブジェクト処理や可用性の更新が可能です。

自動セキュリティ管理

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

自動バックアップ管理

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

AMO を使用しないタスク

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