次の方法で共有


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
モデル識別子。

構造
構造体識別子。

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

ソース データ クエリ
プロバイダー定義形式のソース クエリ。

解説

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

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

マイニング モデルまたはマイニング構造で INSERT INTO を使用し、 <マップされたモデル列> および <source データ クエリ> 引数を省略すると、ステートメントは既に存在するバインドを使用して、 ProcessDefault と同様に動作します。 バインドが存在しない場合、ステートメントはエラーを返します。 ProcessDefaultの詳細については、「Processing Options and Settings (Analysis Services)」を参照してください。 次の例は構文を示しています。

INSERT INTO [MINING MODEL] <model>  

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

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

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

または

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

マップされたモデル列

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

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

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

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

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

ソース データ クエリ

<source データ クエリ>要素には、次のデータ ソース型を含めることができます。

  • OPENQUERY

  • OPENROWSET

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

データ ソースの種類の詳細については、「 <source データ クエリ>を参照してください。

基本的な例

次の例では、 OPENQUERY を使用して、 AdventureWorksDW2022 データベース内のターゲットメーリング データに基づいて Naive Bayes モデルをトレーニングします。

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

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

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

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

参照

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