INSERT INTO (DMX)
指定されたデータ マイニング オブジェクトを処理します。マイニング モデルとマイニング構造の処理の詳細については、「データ マイニング オブジェクトの処理」を参照してください。
マイニング構造が指定された場合、ステートメントはマイニング構造とすべての関連するマイニング モデルを処理します。マイニング モデルが指定された場合、ステートメントはマイニング モデルだけを処理します。
構文
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
構造識別子です。mapped model columns
列の識別子と入れ子になった識別子のコンマ区切りのリストです。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 の詳細については、「処理オプションと設定」を参照してください。次の例に構文を示します。
INSERT INTO [MINING MODEL] <model>
MINING MODEL を指定して、列とソース データ クエリのマップを提供した場合、モデルおよび関連する構造が処理されます。
次の表は、オブジェクトの状態に依存する、異なる形式のステートメントの結果について示しています。
ステートメント |
オブジェクトの状態 |
結果 |
---|---|---|
INSERT INTO MINING MODEL<model> |
マイニング構造は処理されます。 |
マイニング モデルは処理されます。 |
|
マイニング構造は処理されません。 |
マイニング モデルとマイニング構造は処理されます。 |
|
マイニング構造に追加のマイニング モデルが含まれます。 |
処理は失敗します。構造と関連するマイニング モデルを再処理する必要があります。 |
INSERT INTO MINING STRUCTURE<structure> |
マイニング構造は処理されるか処理に失敗します。 |
マイニング構造と関連するマイニング モデルは処理されます。 |
INSERT INTO MINING MODEL ソース クエリを含む <model> または INSERT INTO MINING STRUCTURE ソース クエリを含む <structure> |
構造またはモデルのどちらかが既に内容に含まれます。 |
処理は失敗します。この演算を実行する前に、DELETE (DMX) を使用して、オブジェクトをクリアする必要があります。 |
モデル列のマップ
<mapped model columns> 要素を使用して、データ ソースからマイニング モデルへ列をマップできます。<mapped model columns> 要素は次の形式になります。
<column identifier> | SKIP | <table identifier> (<column identifier> | SKIP), ...
SKIP を使用して、ソース クエリに存在する必要があるがマイニング モデルには存在しない、特定の列を除外できます。SKIP は、入力行セットに含まれる列を制御できない場合に役立ちます。独自の OPENQUERY を記述する場合は、SKIP を使用するのではなく SELECT 列リストから列を除外することをお勧めします。
SKIP は、結合を実行するために入力行セットの列が必要だが、その列がマイニング構造では使用されない場合にも役立ちます。この典型的な例が、入れ子になったテーブルを含むマイニング構造とマイニング モデルです。この構造の入力行セットには、SHAPE 句を使用して階層的な行セットを作成するために使用される外部キー列が含まれますが、外部キー列がモデルで使用されることはほとんどありません。
SKIP の構文では、対応するマイニング構造列がない入力行セットの個々の列の位置に SKIP を挿入する必要があります。たとえば、後述の入れ子になったテーブルの例では、APPEND 句で OrderNumber のクエリを実行して、結合を指定するために RELATE 句で使用できるようにする必要があります。ただし、マイニング構造では、入れ子になったテーブルに OrderNumber データを挿入しないようにする必要があります。したがって、この例では、INSERT INTO 引数で OrderNumber ではなく SKIP キーワードを使用します。
ソース データ クエリ
<source data query> 要素は、次のデータ ソースの種類を含むことができます。
OPENQUERY
OPENROWSET
SHAPE
行セットを返す、すべての Analysis Services クエリ
データ ソースの種類の詳細については、「<source data query>」を参照してください。
基本の例
次の例は、OPENQUERY を使用して、AdventureWorksDW データベースの対象となるマイニング データに基づいて Naive Bayes モデルを学習します。
INSERT INTO NBSample (CustomerKey, Gender, [Number Cars Owned],
[Bike Buyer])
OPENQUERY([Adventure Works DW],'Select CustomerKey, Gender, [NumberCarsOwned], [BikeBuyer]
FROM [vTargetMail]')
入れ子になったテーブルの例
次の例は、SHAPE を使用して、入れ子になったテーブルを含むアソシエーション マイニング モデルを学習します。最初の行に、OrderNumber ではなく SKIP が指定されていることに注意してください。OrderNumber は、SHAPE_APPEND ステートメントでは必要ですが、マイニング モデルでは使用されません。
INSERT INTO MyAssociationModel
([OrderNumber],[Models] (SKIP, [Model])
)
SHAPE {
OPENQUERY([Adventure Works DW],'SELECT OrderNumber
FROM vAssocSeqOrders ORDER BY OrderNumber')
} APPEND (
{OPENQUERY([Adventure Works DW],'SELECT OrderNumber, model FROM
dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model')}
RELATE OrderNumber to OrderNumber)
AS [Models]