通过


数据挖掘项目

适用于: SQL Server 2019 及更早版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

SQL Server 2017 Analysis Services 中弃用了数据挖掘,现已在 SQL Server 2022 Analysis Services 中停止使用。 文档不会更新为已弃用和已停用的功能。 若要了解详细信息,请参阅 Analysis Services 向后兼容性

数据挖掘项目是 SQL Server Analysis Services 解决方案的一部分。 在设计过程中,在此项目中创建的对象可用于作为工作区数据库的一部分进行测试和查询。 如果希望用户能够查询或浏览项目中的对象,必须将项目部署到以多维模式运行的 SQL Server Analysis Services 实例。

本主题提供理解和创建数据挖掘项目所需的基本信息。

创建数据挖掘项目

数据挖掘项目中的对象

使用已完成的数据挖掘项目

对数据挖掘项目的编程访问

创建数据挖掘项目

在 SQL Server Data Tools 中,使用模板、 OLAP 和数据挖掘项目生成数据挖掘项目。 还可以使用 AMO 以编程方式创建数据挖掘项目。 可以使用 Analysis Services 脚本语言(ASSL)编写单个数据挖掘对象脚本。 有关详细信息,请参阅多维模型数据访问(Analysis Services - 多维数据)。

如果在现有解决方案中创建数据挖掘项目,则默认情况下,数据挖掘对象将部署到与解决方案文件同名的 SQL Server Analysis Services 数据库。 可以使用“ 项目属性 ”对话框更改此名称和目标服务器。 有关详细信息,请参阅“配置 Analysis Services 项目属性”(SSDT)。

警告

若要成功生成和部署项目,必须有权访问在 OLAP/数据挖掘模式下运行的 SQL Server Analysis Services 实例。 不能在支持表格模型的 SQL Server Analysis Services 实例上开发或部署数据挖掘解决方案,也不能直接从 Power Pivot 工作簿或使用内存中数据存储的表格模型使用数据。 若要确定是否可以支持数据挖掘的 SQL Server Analysis Services 实例,请参阅 “确定 Analysis Services 实例的服务器模式”。

在创建的每个数据挖掘项目中,将执行以下步骤:

  1. 选择 数据源,例如多维数据集、数据库甚至 Excel 或文本文件,其中包含用于生成模型的原始数据。

  2. 定义数据源中要用于分析的数据子集,并将其另存为 数据源视图

  3. 定义支持建模的 挖掘结构

  4. 通过选择算法并指定算法如何处理数据,将挖掘模型添加到挖掘结构。

  5. 通过使用所选数据或其筛选子集来填充模型以训练模型。

  6. 浏览、测试和重新生成模型。

项目完成后,可以部署它供用户浏览或查询,或者提供对应用程序中挖掘模型的编程访问,以支持预测和分析。

数据挖掘项目中的对象

所有数据挖掘项目都包含以下四种类型的对象。 可以具有所有类型的多个对象。

  • 数据源

  • 数据源视图

  • 挖掘结构

  • 挖掘模型

例如,单个数据挖掘项目可以包含对多个数据源的引用,每个数据源都支持多个数据源视图。 反过来,每个数据源视图都可以支持多个挖掘结构,每个结构都有许多相关的挖掘模型。

此外,项目可能包括插件算法、自定义程序集或自定义存储过程;但是,此处未介绍这些对象。 有关详细信息,请参阅 Analysis Services 开发人员文档

数据源

数据源定义 SQL Server Analysis Services 服务器用于连接到数据源的连接字符串和身份验证信息。 数据源可以包含多个表或视图;它可以像单个 Excel 工作簿或文本文件一样简单,也可以像联机分析处理(OLAP)数据库或大型关系数据库一样复杂。

单个数据挖掘项目可以引用多个数据源。 尽管挖掘模型一次只能使用一个数据源,但项目可以有多个基于不同数据源绘制的模型。

SQL Server Analysis Services 支持来自许多外部提供程序的数据,SQL Server 数据挖掘可以将关系数据和多维数据集数据用作数据源。 但是,如果基于关系源和基于 OLAP 多维数据集的模型开发两种类型的项目模型,则可能希望在单独的项目中开发和管理这些项目。

  • 通常,应在 OLAP 设计解决方案中开发基于 OLAP 多维数据集的模型。 一个原因是基于多维数据集的模型必须处理多维数据集以更新数据。 通常,仅当它是数据存储和访问的主要手段,或者需要多维项目创建的聚合、维度和属性时,才应使用多维数据集数据。

  • 如果项目仅使用关系数据,则应在单独的项目中创建关系模型,这样就不会不必要地重新处理其他对象。 在许多情况下,用于支持多维数据集创建的临时数据库或数据仓库已包含执行数据挖掘所需的视图,并且可以将这些视图用于数据挖掘,而不是使用多维数据集中的聚合和维度。

  • 不能直接使用内存中或 Power Pivot 数据生成数据挖掘模型。

数据源仅标识服务器或提供程序和常规数据类型。 如果需要更改数据格式设置和聚合,请使用数据源视图对象。

若要控制数据源中的数据处理方式,可以添加派生列或计算、修改聚合或重命名数据源视图中数据中的列。 (还可以通过修改挖掘结构列或使用挖掘模型列级别的建模标志和筛选器来处理下游数据。

如果需要数据清理,或者必须修改数据仓库中的数据以创建其他变量、更改数据类型或创建备用聚合,则可能需要创建其他项目类型以支持数据挖掘。 有关这些相关项目的详细信息,请参阅 数据挖掘解决方案的相关项目

数据源视图

定义到数据源的此连接后,将创建一个视图,用于标识与模型相关的特定数据。

通过数据源视图,还可以自定义向挖掘模型提供数据源中的数据的方式。 可以修改数据的结构,使其与项目更相关,或仅选择某些类型的数据。

例如,通过使用数据源视图编辑器,可以:

  • 创建派生列,例如日期部分、子字符串等。

  • 使用 group BY 等 Transact-SQL 语句聚合值

  • 暂时限制数据或示例数据

有关如何在数据源视图中修改数据的详细信息,请参阅 多维模型中的数据源视图

警告

如果要筛选数据,可以在数据源视图中执行此作,但也可以在挖掘模型级别的数据上创建筛选器。 由于筛选器定义与挖掘模型一起存储,因此使用模型筛选器可以更轻松地确定用于训练模型的数据。 此外,还可以创建具有不同筛选条件的多个相关模型。 有关详细信息,请参阅“挖掘模型筛选器”(Analysis Services - 数据挖掘)。

请注意,创建的数据源视图可以包含不直接用于分析的其他数据。 例如,可以向数据源视图中添加用于测试、预测或钻取的数据。 有关这些用途的详细信息,请参阅 测试和验证(数据挖掘)钻取

挖掘结构

创建数据源和数据源视图后,必须通过定义项目中的 挖掘结构 来选择与业务问题最相关的数据列。 挖掘结构告知项目,数据源视图中的数据列实际上应该用于建模、训练和测试。

若要添加新的挖掘结构,请启动数据挖掘向导。 向导会自动定义挖掘结构,引导你完成选择数据的过程,还可以选择向结构添加初始挖掘模型。 在挖掘结构中,从数据源视图或 OLAP 多维数据集中选择表和列,并定义表之间的关系(如果数据包括嵌套表)。

选择的数据在数据挖掘向导中看起来将大相径庭,具体取决于是使用关系分析处理还是联机分析处理(OLAP)数据源。

  • 从关系数据源中选择数据时,设置挖掘结构非常简单:从数据源视图中选择数据中的列,并设置其他自定义项(例如别名),或定义如何对列中的值进行分组或装箱。 有关详细信息,请参阅 创建关系挖掘结构

  • 使用 OLAP 多维数据集中的数据时,挖掘结构必须与 OLAP 解决方案位于同一数据库中。 若要创建挖掘结构,请从 OLAP 解决方案中的维度和相关度量值中选择属性。 数值通常在度量中找到,在维度中常见的是分类变量。 有关详细信息,请参阅 创建 OLAP 挖掘结构

  • 还可以使用 DMX 定义挖掘结构。 有关详细信息,请参阅 数据挖掘扩展插件(DMX)数据定义语句

创建初始挖掘结构后,可以复制、修改和别名结构列。

每个挖掘结构可以包含多个挖掘模型。 因此,完成后,可以再次打开挖掘结构,并使用 数据挖掘设计器 向结构添加更多挖掘模型。

还可以选择将数据拆分为训练数据集,用于生成模型,以及用于测试或验证挖掘模型的保留数据集。

警告

某些模型类型(如时序模型)不支持创建保留数据集,因为它们需要一系列连续的数据进行训练。 有关详细信息,请参阅 训练和测试数据集

挖掘模型

挖掘模型定义用于数据的算法或分析方法。 对于每个挖掘结构,可以添加一个或多个挖掘模型。

根据需求,可以在单个项目中合并多个模型,或为每个类型的模型或分析任务创建单独的项目。

创建结构和模型后,通过算法运行数据源视图中的数据 来处理 每个模型,该算法生成数据的数学模型。 此过程也称为 训练模型。 有关详细信息,请参阅处理要求和注意事项(数据挖掘)。

处理模型后,可以直观地浏览挖掘模型,并针对该模型创建预测查询。 如果训练过程中的数据已被缓存,您可以使用 钻取 查询返回模型中使用案例的详细信息。

如果要将模型用于生产(例如,用于进行预测,或供常规用户浏览),可以将模型部署到其他服务器。 如果需要将来重新处理模型,还必须同时导出基础挖掘结构的定义(以及数据源和数据源视图的定义)。

在部署模型时,必须确保在结构和模型上设置正确的处理选项,并且潜在用户具有执行查询、查看模型或钻取结构或模型数据所需的权限。 有关详细信息,请参阅安全概述(数据挖掘)。

使用已完成的数据挖掘项目

本部分总结了使用已完成的数据挖掘项目的方法。 可以创建准确性图表、浏览和验证数据,并使数据挖掘模式可供用户使用。

警告

与数据挖掘模型一起使用的图表、查询和可视化效果不会保存为数据挖掘项目的一部分,并且无法部署。 如果需要持久化这些对象,则必须保存所显示的内容,或为每个对象按照描述进行脚本编写。

查看和浏览模型

创建模型后,可以使用视觉工具和查询浏览模型中的模式,并详细了解基础模式和统计信息。 在数据挖掘设计器中的 “挖掘模型查看器 ”选项卡上,SQL Server Analysis Services 为每个挖掘模型类型提供查看者,可用于浏览挖掘模型。

这些可视化效果是临时的,在退出 SQL Server Analysis Services 会话时不会保存。 因此,如果需要将这些可视化效果导出到另一个应用程序进行演示或进一步分析,请使用查看器界面的每个选项卡或窗格中提供的 复制 命令。

Excel 的数据挖掘外接程序还提供了一个 Visio 模板,可用于在 Visio 图表中表示模型,并使用 Visio 工具批注和修改图表。 有关详细信息,请参阅 Microsoft Office 2007 Microsoft SQL Server 2008 SP2 数据挖掘外接程序

测试和验证模型

创建模型后,可以调查结果,并决定哪些模型性能最佳。

SQL Server Analysis Services 提供了多个图表,可用于提供可用于直接比较挖掘模型的工具,并选择最准确或最有用的挖掘模型。 这些工具包括提升图、利润图表和分类矩阵。 可以使用数据挖掘设计器的 “挖掘准确性图表 ”选项卡生成这些图表。

还可以使用交叉验证报告对数据执行迭代子采样,以确定模型是否偏向于特定数据集。 报表提供的统计信息可用于客观比较模型并评估训练数据的质量。

请注意,这些报表和图表不会与项目或 ssASnoversion 数据库中一起存储,因此,如果需要保留或复制结果,则应使用 DMX 或 AMO 来保存结果或编写对象脚本。 还可以使用存储过程进行交叉验证。

有关详细信息,请参阅测试和验证(数据挖掘)。

创建预测

SQL Server Analysis Services 提供了一种称为数据挖掘扩展插件(DMX)的查询语言,这是创建预测的基础,并且易于编写脚本。 为了帮助你生成 DMX 预测查询,SQL Server 提供了 SQL Server Management Studio 中提供的查询生成器。 SQL Server Management Studio 中还有许多查询编辑器的 DMX 模板。如果你不熟悉预测查询,建议使用数据挖掘设计器和 SQL Server Management Studio 中提供的查询生成器。 有关详细信息,请参阅 数据挖掘工具

在 SQL Server Data Tools 或 SQL Server Management Studio 中创建的预测不会持久化,因此,如果查询很复杂,或者需要重现结果,建议将预测查询保存到 DMX 查询文件、编写脚本或将查询嵌入 Integration Services 包的一部分。

以编程方式访问数据挖掘对象

SQL Server Analysis Services 提供了多种工具,可用于以编程方式处理数据挖掘项目及其中的对象。 DMX 语言提供可用于创建数据源和数据源视图的语句,以及创建、训练和使用数据挖掘结构和模型。 有关详细信息,请参阅数据挖掘扩展插件 (DMX) 参考

还可以通过使用 Analysis Services 脚本语言(ASSL)或使用分析管理对象(AMO)来执行这些任务。 有关详细信息,请参阅 Analysis Services 中使用 XMLA 进行开发

以下主题介绍如何使用数据挖掘向导创建数据挖掘项目和关联的对象。

Tasks 主题
介绍如何处理挖掘结构列 创建关系挖掘结构
提供有关如何添加新挖掘模型以及处理结构和模型的详细信息 将挖掘模型添加到结构(Analysis Services - 数据挖掘)
提供可帮助你自定义生成挖掘模型的算法的资源的链接 自定义挖掘模型和结构
提供有关每个挖掘模型查看器的信息的链接 数据挖掘模型查看器
了解如何创建提升图、利润图或分类矩阵,或测试挖掘结构 测试和验证 (数据挖掘)
了解处理选项和权限 处理数据挖掘对象
提供有关 Analysis Services 的详细信息 多维模型数据库

另请参阅

数据挖掘设计器
使用 SQL Server Data Tools 创建多维模型 (SSDT)
工作区数据库