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 MODELMINING STRUCTURE,Analysis Services 将基于名称搜索对象类型,并处理正确的对象。 如果服务器包含具有相同名称的挖掘结构和挖掘模型,则返回错误。

通过使用第二种语法形式,INSERT INTO*<object>*。COLUMN_VALUES,无需训练模型即可将数据直接插入模型列。 此方法以简洁有序的方式向模型提供列数据,在处理包含层次结构或有序列的数据集时非常有用。

如果将 INSERT INTO 与挖掘模型或挖掘结构一起使用,并且离开 <映射的模型列> 和 <源数据查询> 参数,则语句的行为类似于 ProcessDefault,使用已经存在的绑定。 如果绑定不存在,则语句将返回错误。 有关 ProcessDefault 的详细信息,请参阅“处理选项和设置”(Analysis Services)。 以下示例显示了语法:

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)执行此操作之前,必须先清除对象。

映射的模型列

通过使用 <映射的模型列> 元素,可以将数据源中的列映射到挖掘模型中的列。 <映射的模型列>元素具有以下形式:

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

通过使用 SKIP,可以排除源查询中必须存在但挖掘模型中不存在的某些列。 当无法控制输入行集中包含的列时,SKIP 非常有用。 如果要编写自己的 OPENQUERY,更好的做法是从 SELECT 列列表中省略列,而不是使用 SKIP。

当需要输入行集中的列来执行联接,但挖掘结构不使用该列时,SKIP 也很有用。 一个典型的示例是包含嵌套表的挖掘结构和挖掘模型。 此结构的输入行集将具有用于使用 SHAPE 子句创建分层行集的外键列,但外键列几乎永远不会在模型中使用。

SKIP 的语法要求在没有相应挖掘结构列的输入行集中的各个列的位置插入 SKIP。 例如,在下面的嵌套表示例中,必须在 APPEND 子句中选择 OrderNumber,以便可以在 RELATE 子句中使用它来指定联接;但是,你不希望在挖掘结构中将 OrderNumber 数据插入嵌套表。 因此,该示例在 INSERT INTO 参数中使用 SKIP 关键字而不是 OrderNumber。

源数据查询

<源数据查询>元素可以包含以下数据源类型:

  • OPENQUERY

  • OPENROWSET

  • 形状

  • 返回行集的任何 Analysis Services 查询

有关数据源类型的详细信息,请参阅 <源数据查询>

基本示例

以下示例使用 OPENQUERY 基于数据库中的目标邮件数据 AdventureWorksDW2022 训练 Naive Bayes 模型。

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

嵌套表示例

以下示例使用 SHAPE 训练包含嵌套表的关联挖掘模型。 请注意,第一行包含 SKIP 而不是 OrderNumber,这是SHAPE_APPEND语句中必需的,但不在挖掘模型中使用。

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) 语句参考