你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍 Azure 机器学习设计器的一个组件。
使用“应用 SQL 转换”组件,可以执行以下操作:
创建结果表,并将数据集保存在便携式数据库中。
对数据类型执行自定义转换,或创建聚合。
执行 SQL 查询语句,筛选或更改数据,并以数据表的形式返回查询结果。
重要
此组件中使用的 SQL 引擎是 SQLite。 有关 SQLite 语法的详细信息,请参阅 SQL as Understood by SQLite。
此组件将数据转储到 SQLite(位于内存数据库中),因此此组件执行会需要更多内存,并且可能会遇到 Out of memory 错误。 确保计算机具有足够的 RAM。
如何配置应用 SQL 转换
该组件最多可采用三个数据集作为输入。 引用连接到每个输入端口的数据集时,必须使用名称 t1、t2 和 t3。 表编号指示输入端口的索引。
下面是演示如何联接两个表的示例代码。 t1 和 t2 是连接到“应用 SQL 转换”左侧和中间输入端口的两个数据集:
SELECT t1.*
, t3.Average_Rating
FROM t1 join
(SELECT placeID
, AVG(rating) AS Average_Rating
FROM t2
GROUP BY placeID
) as t3
on t1.placeID = t3.placeID
剩余参数是使用 SQLite 语法的 SQL 查询。 在“SQL 脚本”文本框中键入多行时,请使用分号终止每条语句。 否则,换行符会转换为空格。
此组件支持 SQLite 语法的所有标准语句。 如需了解不支持的语句列表,请参阅技术说明部分。
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
端口 1 上始终需要输入。
对于包含空格或其他特殊字符的列标识符,请在
SELECT和WHERE子句中引用列时,始终将列标识符用方括号或双引号括起来。如果在应用 SQL 转换之前已使用编辑元数据指定列元数据(分类或字段),则应用 SQL 转换的输出将不包含这些属性。 在应用 SQL 转换后,需要使用编辑元数据来编辑列。
不支持的语句
尽管 SQLite 支持很多 ANSI SQL 标准,但其并不包括商业关系数据库系统支持的许多功能。 有关详细信息,请参阅 SQL as Understood by SQLite。 另外,请在创建 SQL 语句时注意以下限制:
SQLite 使用动态类型的值,而不是像在大多数关系数据库系统中的那样将类型分配给列。 它是一种弱类型,并允许隐式转换类型。
实现
LEFT OUTER JOIN,但不实现RIGHT OUTER JOIN或FULL OUTER JOIN。你可将
RENAME TABLE和ADD COLUMN语句与ALTER TABLE命令结合使用,但不支持其他子句,例如DROP COLUMN、ALTER COLUMN和ADD CONSTRAINT。可在 SQLite 中创建“视图”,但之后视图为只读。 不可在视图中执行
DELETE、INSERT或UPDATE语句。 但可创建一个触发器,尝试在视图上执行DELETE、INSERT或UPDATE,并在触发器主体中执行其他操作。
除了在官方 SQLite 网站上提供不受支持的功能列表,下面的 Wiki 还提供其他不受支持的功能列表:SQLite - 不受支持的 SQL
后续步骤
请参阅 Azure 机器学习可用的组件集。