INSERT INTO (DMX)

適用対象: はい SQL Server Analysis Services

指定したデータ マイニング オブジェクトを処理します。 マイニング モデルとマイニング構造の処理の詳細については、「データ マイニング モデルの処理要件と考慮事項(を参照)。

マイニング構造が指定されている場合、 ステートメントは、マイニング構造と、関連付けられているすべてのマイニング モデルを処理します。 マイニング モデルが指定されている場合、ステートメントはマイニング モデルを処理します。

構文

  
INSERT INTO [MINING MODEL]|[MINING STRUCTURE] <model>|<structure> (<mapped model columns>) <source data query>  
INSERT INTO [MINING MODEL]|[MINING STRUCTURE] <model>|<structure>.COLUMN_VALUES (<mapped model columns>) <source data query>  

引数

model
モデル識別子。

structure
構造体識別子。

マップされたモデル列
列の識別子と入れ子になった識別子のコンマ区切りのリストです。

source data query
プロバイダー定義形式のソース クエリ。

解説

MINING MODEL または MINING STRUCTURE を指定しない場合は、名前に基づいてオブジェクトの種類を検索し、正 Analysis Services しいオブジェクトを処理します。 サーバーに同じ名前のマイニング構造とマイニング モデルが含まれている場合は、エラーが返されます。

2 番目の構文形式である INSERT INTO を使用します <object> 。COLUMN_VALUES、モデルをトレーニングせずにモデル列にデータを直接挿入できます。 このメソッドは、階層または順序付けされた列を含むデータセットを使用する場合に役立つ、簡潔で順序付けされた方法でモデルに列データを提供します。

INSERT INTO をマイニング モデルまたはマイニング構造と一緒に使用し、 引数と 引数を省略した場合、ステートメントは、既に存在するバインディングを使用して <mapped model columns> <source data query> ProcessDefault のように動作します。 バインドが存在しない場合、ステートメントはエラーを返します。 ProcessDefault の詳細については、「処理 オプションと処理オプション 」を参照設定 (Analysis Services)。 構文の例を次に示します。

INSERT INTO [MINING MODEL] <model>  

MINING MODEL を指定し、マップされた列とソース データ クエリを指定すると、モデルと関連する構造が処理されます。

次の表は、オブジェクトの状態に依存する、異なる形式のステートメントの結果について示しています。

ステートメント オブジェクトの状態 結果
マイニング モデルへの挿入 <model> マイニング構造が処理されます。 マイニング モデルは処理されます。
マイニング構造は未処理です。 マイニング モデルとマイニング構造は処理されます。
マイニング構造には、追加のマイニング モデルが含まれている。 プロセスが失敗します。 構造と、関連付けられているマイニング モデルを再処理する必要があります。
マイニング構造に挿入する <structure> マイニング構造は処理または未処理です。 マイニング構造と関連するマイニング モデルが処理されます。
ソース クエリを含む INSERT INTO MINING <model> MODEL

または

ソース クエリを含む INSERT INTO <structure> MINING STRUCTURE
構造またはモデルのどちらかが既に内容に含まれます。 プロセスが失敗します。 この操作を実行する前に、DMX の DELETE キーを使用してオブジェクトをクリア(必要)。

マップされたモデル列

要素を <mapped model columns> 使用すると、データ ソースの列をマイニング モデル内の列にマップできます。 要素 <mapped model columns> の形式は次のとおりです。

<column identifier> | SKIP | <table identifier> (<column identifier> | SKIP), ...  

SKIP を 使用すると、ソース クエリに存在する必要があるが、マイニング モデルには存在しない特定の列を除外できます。 SKIP は、入力行セットに含まれる列を制御できない場合に便利です。 独自の OPENQUERY を記述する場合は、SKIP を使用する代わりに SELECT 列リストから列を省略する方が適切です。

SKIP は、結合を実行するために入力行セットの列が必要ですが、その列がマイニング構造で使用されていない場合にも便利です。 この一般的な例は、入れ子になったテーブルを含むマイニング構造とマイニング モデルです。 この構造の入力行セットには、SHAPE 句を使用して階層的な行セットを作成するために使用される外部キー列が含まれますが、外部キー列がモデルで使用されることはほとんどありません。

SKIP の構文では、対応するマイニング構造列がない入力行セットの個々の列の位置に SKIP を挿入する必要があります。 たとえば、次の入れ子になったテーブルの例では、JOIN を指定するために RELATE 句で使用できるよう、APPEND 句で OrderNumber を選択する必要があります。ただし、マイニング構造の入れ子になったテーブルに OrderNumber データを挿入したくはない。 そのため、この例では、INSERT INTO 引数の OrderNumber ではなく SKIP キーワードを使用します。

ソース データ クエリ

要素 <source data query> には、次のデータ ソースの種類を含めできます。

  • OPENQUERY

  • OPENROWSET

  • 形状

  • 行 Analysis Services セットを返すクエリ

データ ソースの種類の詳細については、「<ソース データクエリ」を>。

基本的な例

次の例では 、OPENQUERY を 使用して、データベース内の対象となるメール データに基づいて Naive Bayes モデルをトレーニング AdventureWorksDW2012 します。

INSERT INTO NBSample (CustomerKey, Gender, [Number Cars Owned],  
    [Bike Buyer])  
OPENQUERY([AdventureWorksDW2012],'Select CustomerKey, Gender, [NumberCarsOwned], [BikeBuyer]   
FROM [vTargetMail]')  

入れ子になったテーブルの例

次の例では 、SHAPE を 使用して、入れ子になったテーブルを含むアソシエーション マイニング モデルをトレーニングします。 前線には OrderNumber ではなく SKIP が含まれているので、SHAPE_APPENDステートメントでは必須ですが、マイニング モデルでは使用されません。

INSERT INTO MyAssociationModel  
    ([OrderNumber],[Models] (SKIP, [Model])  
    )  
SHAPE {  
    OPENQUERY([AdventureWorksDW2012],'SELECT OrderNumber  
    FROM vAssocSeqOrders ORDER BY OrderNumber')  
} APPEND (  
    {OPENQUERY([AdventureWorksDW2012],'SELECT OrderNumber, model FROM   
    dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model')}  
  RELATE OrderNumber to OrderNumber)   
AS [Models]  

参照

DMX データ定義ステートメント(データ)マイニング拡張機能
DMX データ操作ステートメント(データ)マイニング拡張機能
データ マイニング拡張機能 (DMX) ステートメント リファレンス