12.2.2 数据挖掘转换
在本节中,我们将更详细地论述与数据挖掘相关的转换。
1. 数据挖掘模型定型转换
数据挖掘模型定型转换(简称DM定型转换)用于在数据流环境中处理挖掘结构及其相关的挖掘模型。
Analysis Services处理任务也可以处理挖掘模型,但是必须在任务中指定输入表。在执行期间,AS服务器从存储了训练数据的源表中提取数据。然而,在数据流环境中,DM定型转换在执行期间将数据从流水线推到Analysis Services。AS服务器以推的模式获得训练数据。在将流水线数据发送给AS服务器之前,DM定型转换以XML行集的格式对该数据进行封装。
图12-10显示了DM定型转换的属性对话框的“连接”选项卡。在该选项卡中,可以指定到AS Server数据库的连接,然后选择您希望使用流水线数据来处理的挖掘结构。
也可以使用“新建”按钮来创建新的挖掘结构。单击该按钮后会启动数据挖掘向导。在该向导中,对模型创建过程的处理方式与在数据挖掘编辑器环境中的处理方式相同。然而,还存在一些不同的地方。首先,列是来自流水线,而不是来自关系表。某些特性(例如,自动检测内容类型和相关建议)不可用。这是因为这些特性需要对输入数据进行扫描和采样,而在流水线环境中这些操作是不可行的。
图12-11显示了DM定型转换的“列”选项卡,在该选项卡上可以指定流水线的列和挖掘结构的列之间的映射。在默认情况下,该工具会基于列名自动进行映射。

图12-10 DM定型转换——“连接”选项卡

图12-11 DM定型转换——“列”选项卡
提示:
虽然DM定型转换支持模型创建,但是对模型进行编辑(比如改变模型的参数)却相当困难。一种解决方案是在相同的解决方案中拥有两个BI项目:SSIS项目和AS项目。在这种情况下,可以在AS项目中使用挖掘模型编辑器,从而获得对于挖掘模型的完整编辑功能。
2. 数据挖掘查询转换
顾名思义,数据挖掘查询转换(简称DM查询转换)是用于执行数据挖掘查询的转换。在第2章中,已学习了不同类型的DMX查询,包括预测、内容、模型创建和模型训练。在这些查询中,预测查询是最常见的。
要执行预测查询,需要训练过的挖掘模型和输入数据集。在流水线环境中,输入数据集是从流水线推来的。DM查询转换将来自流水线的输入数据封装为XML行集,然后通过XML/A协议将它们发送给AS服务器。AS服务器执行查询,然后将XML结果返回给该转换。然后,该转换解析该结果,再将解析后的结果推给流水线,以便下一个转换进行处理。当输入数据比较大时,该过程会以块的方式来处理:每次将一组行发送给AS服务器来进行预测。
图12-12显示了该转换的“挖掘模型”选项卡,在该选项卡上将连接指定到活跃的AS服务器的数据库,还必须选择挖掘结构和它的模型之一。

图12-12 DM查询转换——“挖掘模型”选项卡
在该转换的“查询”选项卡上可以输入DMX查询。可以手动编写查询,也可以单击“生成新查询”按钮来启动预测查询生成器。预测的输入表是流水线的输入,表示为@InputRowset。DMX查询结果可以包含嵌套的结果,例如,在Select语句中使用PredictionHistogram函数。在这种情况下,将会自动平坦化嵌套行集。
注意:
在SQL Server 2005中,SSIS数据流本身不支持嵌套行集。这一点会给数据挖掘的训练和预测增加技术上的挑战,因为它可能需要嵌套的输入,然后产生嵌套的输出。为了解决这个问题,DM查询转换在有嵌套行集时会自动平坦化结果。然而,对于嵌套的输入,问题更大。当模型或者查询需要嵌套的输入时,推荐使用DM定型任务和DM查询任务。
3. 数据流示例
图12-13显示了用于模型训练的数据流示例。它以OLE DB数据源转换开始,该转换选择FoodMart Customer表。下一个转换是派生列转换,该转换创建了新的列Age,该列是从Birthdate列中派生的。一旦将新的列加入到流水线中,就会将数据发送给DM定型转换,该转换并行地处理挖掘结构及其相关的挖掘模型。

图12-13 用于模型训练的数据流示例
图12-14显示了使用DM查询转换的数据流。流水线以OLE DB源转换开始,该转换加载NewCustomer表。下一个转换是派生列,该转换添加从Birthdate列中派生的Age列。第三个转换是DM查询,该转换使用已训练的决策树模型来为每个新的客户预测最有可能拥有的会员卡。预测的结果会发送给条件性拆分转换,该转换基于会员卡的类型将数据分成3个流水线分支。左边的分支只包含金卡会员,中间的分支只包含银卡会员,而右边的分支包含铜卡会员和普通会员。每个分支都会通向OLE DB目标转换,在该转换中分别存储了VIP客户、重要的客户以及普通的客户。

图12-14 包含预测的数据流示例
该示例也说明了数据挖掘技术可以作为高级的ETL过程来应用。它使得数据拆分不仅可以基于已有的属性,还可以基于预测的属性。





