適用対象:
SQL Server 2019 以前の Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Important
データ マイニングは SQL Server 2017 Analysis Services で非推奨となり、現在は SQL Server 2022 Analysis Services で廃止されました。 非推奨および廃止された機能については、ドキュメントは更新されません。 詳細については、「 Analysis Services の下位互換性」を参照してください。
データ マイニングには、SQL Server Analysis Services のインスタンスへの接続が必要です。 キューブからのデータはデータ マイニングには必要ありません。リレーショナル ソースを使用することをお勧めします。ただし、データ マイニングでは、SQL Server Analysis Services エンジンによって提供されるコンポーネントが使用されます。
このトピックでは、SQL Server SQL Server Analysis Services のインスタンスに接続して、データ マイニング モデルを作成、処理、デプロイ、またはクエリするときに知る必要がある情報を提供します。
データ マイニング サービス
Microsoft SQL Server SQL Server Analysis Services のサーバー コンポーネントは、通常は Windows サービスとして実行される msmdsrv.exe アプリケーションです。 このアプリケーションは、セキュリティ コンポーネント、XML for Analysis (XMLA) リスナー コンポーネント、クエリ プロセッサ コンポーネント、および次の機能を実行する他の多数の内部コンポーネントで構成されています。
クライアントから受信したステートメントの解析
メタデータの管理
トランザクションの処理
計算の処理
ディメンションとセルのデータの格納
集計の作成
クエリのスケジュール設定
オブジェクトのキャッシュ
サーバー リソースの管理
XMLA リスナー
XMLA リスナー コンポーネントは、SQL Server Analysis Services とそのクライアント間のすべての XMLA 通信を処理します。 msmdsrv.ini ファイルの SQL Server Analysis Services ポート 構成設定を使用して、SQL Server Analysis Services インスタンスがリッスンするポートを指定できます。 このファイルの値 0 は、SQL Server Analysis Services が既定のポートでリッスンすることを示します。 特に指定がない限り、SQL Server Analysis Services では次の既定の TCP ポートが使用されます。
| 港 / ポート | Description |
|---|---|
| 2383 | SQL Server SQL Server Analysis Services の既定のインスタンス。 |
| 2382 | SQL Server SQL Server Analysis Services の他のインスタンスのリダイレクター。 |
| サーバーの起動時に動的に割り当てられる | SQL Server SQL Server Analysis Services の名前付きインスタンス。 |
このサービスで使用されるポートの制御の詳細については、「 Analysis Services アクセスを許可するように Windows ファイアウォールを構成する」を参照してください。
データ ソースへの接続
データ マイニング構造またはモデルを作成または更新するたびに、データ ソースによって定義されたデータを使用します。 データ ソースにはデータが含まれていません。これには、Excel ブック、テキスト ファイル、SQL Server データベースが含まれる場合があります。これは接続情報のみを定義します。 データ ソース ビュー (DSV) は、ソースの上に抽象化レイヤーとして機能し、ソースから取得されたデータを変更またはマッピングします。
これらの各ソースの接続要件については、このトピックでは説明しません。 詳細については、プロバイダーのドキュメントを参照してください。 ただし、一般に、プロバイダーと対話するときは、Analysis Services の次の要件に注意する必要があります。
データ マイニングはサーバーによって提供されるサービスであるため、SQL Server Analysis Services インスタンスにデータ ソースへのアクセス権を付与する必要があります。 アクセスするには、場所と ID の 2 つの側面があります。
場所 は、コンピューターにのみ格納されているデータを使用してモデルを構築し、そのモデルをサーバーにデプロイすると、データ ソースが見つからないため、モデルの処理に失敗することを意味します。 この問題を解決するには、SQL Server Analysis Services が実行されているのと同じ SQL Server インスタンスにデータを転送するか、ファイルを共有の場所に移動することが必要になる場合があります。
ID は、SQL Server Analysis Services 上のサービスが、適切な資格情報を使用してデータ ファイルまたはデータ ソースを開くことができる必要があることを意味します。 たとえば、モデルを構築した場合、データを表示するためのアクセス許可は無制限でしたが、サーバー上のモデルを処理および更新しているユーザーは、データへのアクセスが制限されているか、アクセスできない可能性があるため、モデルの処理に失敗したり、モデルの内容に影響を与えたりする可能性があります。 少なくとも、リモート データ ソースへの接続に使用されるアカウントには、データに対する読み取りアクセス許可が必要です。
モデルを移動する場合は、同じ要件が適用されます。古いデータ ソースの場所への適切なアクセスを設定するか、データ ソースをコピーするか、新しいデータ ソースを構成する必要があります。 また、ログインとロールを転送するか、データ マイニング オブジェクトを新しい場所で処理および更新できるようにアクセス許可を設定する必要があります。
アクセス許可とサーバーのプロパティの構成
データ マイニングには、SQL Server Analysis Services データベースに対する追加のアクセス許可が必要です。 ほとんどのデータ マイニング プロパティは、[ Analysis Server プロパティ] ダイアログ ボックス (Analysis Services) を使用して設定できます。
構成できるプロパティの詳細については、「 Analysis Services のサーバー プロパティ」を参照してください。
次のサーバー プロパティは、データ マイニングに特に関連しています。
AllowAdHocOpenRowsetQueries サーバーのメモリ領域に直接読み込まれる OLE DB プロバイダーへのアドホック アクセスを制御します。
Important
セキュリティを強化するために、このプロパティを false に設定することをお勧めします。 既定値は false です。 ただし、このプロパティが false に設定されている場合でも、ユーザーは引き続きシングルトン クエリを作成でき、許可されたデータ ソースで OPENQUERY を使用できます。
AllowedProvidersInOpenRowset アドホック アクセスが有効になっている場合は、プロバイダーを指定します。 ProgID のコンマ区切りリストを入力することで、複数のプロバイダーを指定できます。
MaxConcurrentPredictionQueries 予測によって発生するサーバーの負荷を制御します。 既定値の 0 では、SQL Server Enterprise のクエリは無制限に、SQL Server Standard の場合は最大 5 つの同時実行クエリが許可されます。 制限を超えたクエリはシリアル化され、タイムアウトになる可能性があります。
サーバーには、使用可能なデータ マイニング アルゴリズムを制御する追加のプロパティが用意されています。これには、アルゴリズムの制限や、すべてのデータ マイニング サービスの既定値が含まれます。 ただし、データ マイニング ストアド プロシージャへのアクセスを特に制御できる設定はありません。 詳細については、「 データ マイニング プロパティ」を参照してください。
また、サーバーを調整し、クライアントの使用に対するセキュリティを制御できるプロパティを設定することもできます。 詳細については、「 機能プロパティ」を参照してください。
注
SQL Server の各エディションによるプラグイン アルゴリズムのサポートの詳細については、「SQL Server 2012 の各エディションでサポートされる機能 (https://go.microsoft.com/fwlink/?linkid=232473)」を参照してください。
データ マイニング オブジェクトへのプログラムによるアクセス
次のオブジェクト モデルを使用して、Analysis Services データベースへの接続を作成し、データ マイニング オブジェクトを操作できます。
Ado OLE DB を使用して Analysis Services サーバーに接続します。 ADO を使用する場合、クライアントはスキーマ行セット クエリと DMX ステートメントに制限されます。
ADO.NET は他のプロバイダーよりも SQL Server プロバイダーとよりうまく対話します。 データ アダプターを使用して動的行セットを格納します。 データセット オブジェクトを使用します。これは、XML として更新または保存できるデータ テーブルとして格納されるサーバー データのキャッシュです。
ADOMD.NET データ マイニングと OLAP の操作用に最適化されたマネージド データ プロバイダー。 ADOMD.NET は、ADO.NET よりも高速でメモリ効率が高くなります。 ADOMD.NET では、サーバー オブジェクトに関するメタデータを取得することもできます。 .NET が使用できない場合を除き、クライアント アプリケーションに推奨されます。
サーバー ADOMD サーバー上の Analysis Services オブジェクトに直接アクセスするためのオブジェクト モデル。 Analysis Services ストアド プロシージャによって使用されます。クライアント用ではありません。
Amo Decision Support Objects (DSO) を置き換える Analysis Services の管理インターフェイス。 オブジェクトの反復処理などの操作では、AMO を使用する場合、他のインターフェイスを使用する場合よりも高いアクセス許可が必要です。 これは、AMO がメタデータに直接アクセスするのに対し、ADOMD.NET やその他のインターフェイスはデータベース スキーマにのみアクセスするためです。
サーバーへの接続: ブラウズおよびクエリ
OLAP/データ マイニング モードで Analysis Services のインスタンスを使用することで、あらゆる種類の予測を実行できます。次の制限があります。
サーバー ADOMD を使用する場合は、DMX を使用して、接続せずにサーバーにアクセスできます。 その後、結果をデータ テーブルに直接コピーできます。 ただし、リモート インスタンスでサーバー ADOMD を使用することはできません。ローカル サーバーにのみクエリを実行できます。
ADO.NET では、データ マイニングの名前付きパラメーターはサポートされていません。 ADOMD.NET を使用する必要があります。
ADOMD.NET では、パラメーターとして使用するテーブル全体を渡すことができます。そのため、クライアント上のデータ、またはサーバーで使用できないデータを使用できます。 また、予測入力として整形テーブルを使用することもできます。
データ マイニング ストアド プロシージャの使用
ストアド プロシージャの一般的な用途は、再利用のためにクエリをカプセル化することです。 クライアントは CALL を使用して、SQL Server Analysis Services システム ストアド プロシージャを含むストアド プロシージャを実行できます。
プロシージャがデータセットを返す場合、クライアントは、行を含む入れ子になったテーブルを含むデータセットまたはデータテーブルを受け取ります。 たとえば、モデルコンテンツに対するクエリを作成すると、クエリはモデル全体を返します。 行が多くなりすぎないようにするには、ADOMD+ オブジェクト モデルを使用してストアド プロシージャを記述します。
サーバー ストアド プロシージャを記述するには、Microsoft.AnalysisServices.AdomdServer 名前空間を参照する必要があります。 ストアド プロシージャを作成して使用する方法の詳細については、「 ユーザー定義関数とストアド プロシージャ」を参照してください。
注
ストアド プロシージャを使用して、データ サーバー オブジェクトのセキュリティを変更することはできません。 ストアド プロシージャを実行すると、ユーザーの現在のコンテキストを使用して、すべてのサーバー オブジェクトへのアクセスが決定されます。 そのため、ユーザーは、アクセスするすべてのデータベース オブジェクトに対する適切なアクセス許可を持っている必要があります。
こちらもご覧ください
物理アーキテクチャ (Analysis Services - 多次元データ)
物理アーキテクチャ (Analysis Services - データ マイニング)
データ マイニング ソリューションとオブジェクトの管理