数据挖掘查询
适用于: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 数据挖掘中提供的算法生成的模型创建的查询示例。
了解数据挖掘查询
SQL Server Analysis Services数据挖掘支持以下类型的查询:
-
基于模型中的模式和输入数据进行推断的查询。
-
返回元数据、统计信息和有关模型本身的其他信息的查询。
-
可以检索模型的基础事例数据、甚至结构中未用于模型的数据的查询。
-
不从模型返回信息,而是用于生成模型和结构或更新模型/结构中的数据的查询。
在创建查询之前,建议您了解使用 SQL Server 提供的每种数据挖掘算法创建的各个模型之间的差异。
可以使用为每种算法类型提供的自定义数据挖掘查看器来浏览和了解各种模型类型。 有关详细信息,请参阅 挖掘模型查看器任务和操作指南。
可以使用 “Microsoft 一般内容树查看器”来查看各种模型类型的模型内容。 若要解释此信息,请参阅 挖掘模型内容 (Analysis Services - 数据挖掘) 。
查询工具和接口
可以使用 SQL Server 提供的查询工具之一来以交互方式生成数据挖掘查询。 图形预测查询生成器在 SQL Server Data Tools 和 SQL Server Management Studio 中提供。 如果您之前未使用过预测查询生成器,建议您按照 Basic Data Mining Tutorial 中的步骤进行操作来了解接口。 有关各步骤的概述,请参阅 使用预测查询生成器创建预测查询。
对于开始您稍后将自定义的查询,预测查询生成器会很有用。 可以轻松添加数据源并将其映射到列,然后切换到 DMX 视图,并通过添加 WHERE 子句或其他函数来自定义查询。
在了解数据挖掘模型以及生成查询的方式之后,您还可以使用数据挖掘扩展插件 (DMX) 直接编写查询。 DMX 是一种类似于 Transact-SQL 的查询语言,可以从多种不同的客户端使用它。 DMX 是用来创建自定义预测和复杂查询的理想工具。 有关 DMX 的简介,请参阅 使用 DMX 创建和查询数据挖掘模型: (Analysis Services 教程 - 数据挖掘) 。
SQL Server Data Tools 和 SQL Server Management Studio 中都提供了 DMX 编辑器。 您还可以使用预测查询生成器来开始查询,然后将视图更改为文本编辑器,并将 DMX 语句复制到其他客户端。 有关详细信息,请参阅 数据挖掘查询工具。
可以通过编程方式编写 DMX 语句,并使用 AMO 或 XMLA 将它们从客户端发送到SQL Server Analysis Services服务器。 但是,DMX 是您在针对挖掘模型创建查询时必须使用的语言。
您还可以使用基于数据挖掘架构行集的动态管理视图 (DMV) 来查询模型的元数据、统计信息和某些内容。 利用这些 DMV,您可以通过键入 SELECT 语句来轻松检索有关模型的信息;但不能创建预测。 有关 SQL Server Analysis Services 支持的 DMV 的详细信息,请参阅使用动态管理视图 (DMV) 监视 Analysis Services。
最后,您可以使用 Data Mining Query Task或 Data Mining Query Transformation创建数据挖掘查询以供在 Integration Services 包中使用。 控制流任务支持多种类型的 DMX 查询,而数据流转换只支持使用数据流中的数据的查询,即使用 PREDICTION JOIN 语法的查询。
不同模型类型的查询
在创建模型时使用的算法会极大地影响您可以从数据挖掘查询获取的信息类型。 导致出现差异的原因是,每种算法都以不同方式处理数据,并存储不同类型的模式。 例如,一些算法会创建群集;另一些算法会创建树。 因此,您可能需要使用专用的预测和查询函数,具体取决于所使用的模型类型。
以下列表汇总了可在查询中使用的函数:
通用预测函数:Predict 函数是多态函数,即它可以处理所有模型类型。 该函数将自动检测要使用的模型类型,并提示您输入其他参数。 有关详细信息,请参阅 预测 (DMX) 。
警告
并非所有模型都用于进行预测。 例如,可以创建不具有可预测属性的聚类分析模型。 但是,即使模型不具有可预测属性,您也可以创建返回模型中其他类型的有用信息的预测查询。
自定义预测函数: 每种模型类型都提供了一组用于处理该算法所创建的模式的预测函数。
例如,为时序模型提供了 Lag 函数,可使用此函数查看该模型使用的历史数据。 对于聚类分析模型, ClusterDistance 函数等函数会更有用。
有关每种模型类型支持的函数的详细信息,请参阅以下链接:
您还可以调用 VBA 函数,或创建您自己的函数。 有关详细信息,请参阅 functions (DMX) 。
常规统计信息: 有多个函数可用于几乎所有模型类型,这些函数将返回一组标准说明性统计信息(如标准差)。
例如, PredictHistogram 函数将返回一个表,其中列出了指定列的所有状态。
有关详细信息,请参阅 常规预测函数 (DMX) 。
自定义统计信息: 为每种模型类型提供了附加支持函数,以便生成与特定分析任务相关的统计信息。
例如,在使用聚类分析模型时,您可以使用 PredictCaseLikelihood函数来返回与某个特定事例和分类关联的可能性分数。 但是,如果您创建了线性回归模型,则可能更愿意检索系数和截距,可使用内容查询做到这一点。
模型内容函数: 所有模型的 内容 都以标准化格式表示,以便您能使用简单查询检索信息。 可以使用 DMX 创建针对模型内容的查询。 还可以通过使用数据挖掘架构行集来获取某种类型的模型内容。
在模型内容中,返回的表中的每个行或节点的含义是不同的,具体取决于用于生成模型的算法的类型以及列的数据类型。 有关详细信息,请参阅 内容查询 (数据挖掘) 。
要求
必须先处理数据挖掘模型,然后才能创建针对模型的查询。 处理SQL Server Analysis Services对象需要特殊权限。 有关处理挖掘模型的详细信息,请参阅 数据挖掘) (处理要求和注意事项 。
执行针对数据挖掘模型的查询需要不同的权限级别,这取决于您运行的查询的类型。 例如,钻取事例或结构数据通常需要可在挖掘结构对象或挖掘模型对象上设置的附加权限。
但是,如果您的查询使用外部数据并包含 OPENROWSET 或 OPENQUERY 等语句,则您查询的数据库必须启用这些语句,并且您必须具有基础数据库对象的权限。
有关运行数据挖掘查询所需的安全上下文的详细信息,请参阅 安全概述 (数据挖掘)
本节内容
本节中的主题更详细地介绍了每种类型的数据挖掘查询,并提供有关如何创建针对数据 mingin 模型查询的详细示例的链接。
Related Tasks
使用这些链接了解如何创建和使用数据挖掘查询。
任务 | 链接 |
---|---|
查看有关数据挖掘查询的教程和演练 | 第 6 课:创建和使用预测(数据挖掘基础教程) 时序预测 DMX 教程 |
在SQL Server Management Studio和SQL Server Data Tools中使用数据挖掘查询工具 | 在 SQL Server Management Studio 中创建一个 DMX 查询 使用预测查询生成器创建预测查询 将预测函数应用于模型 手动编辑预测查询 |
使用预测查询中使用的外部数据 | 为预测查询选择和映射输入数据 为预测查询选择和映射输入数据 |
使用查询结果 | 查看和保存预测查询的结果 |
使用 Management Studio 中提供的 DMX 和 XMLA 查询模板 | 通过模板创建单独预测查询 使用 XMLA 创建数据挖掘查询 Use Analysis Services Templates in SQL Server Management Studio |
了解有关内容查询的详细信息和参阅示例 | 针对挖掘模型创建内容查询 查询用于创建挖掘模型的参数 内容查询(数据挖掘) |
设置查询选项和解决查询权限问题 | 更改数据挖掘查询的超时值 |
在 Integration Services 中使用数据挖掘组件 | 数据挖掘查询任务 数据挖掘查询转换 |
另请参阅
数据挖掘算法(Analysis Services – 数据挖掘)
挖掘模型内容(Analysis Services - 数据挖掘)