从 Azure SQL 数据库导入
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
本文介绍如何使用 机器学习 Studio (经典 ) 中的导入数据模块从 Azure SQL 数据库 或 Azure SQL Data Warehouse。
若要从数据库导入数据,必须同时指定服务器名称和数据库名称,以及SQL表、视图或查询的语句。
通常,在 Azure 数据库中存储数据比在 Azure 中存储表或 Blob 的成本更高。 还可以限制数据库中可存储的数据量,具体取决于订阅类型。 但是,对于数据库数据库SQL Azure事务费,因此此选项非常适合快速访问少量常用信息,例如数据查找表或数据字典。
如果需要在读取数据之前筛选数据,或者想要将预测或指标保存回数据库进行报告,则最好将数据存储在 Azure 数据库中。
如何从 Azure SQL 数据库 或 SQL Data Warehouse
使用数据导入向导
该模块新增了一个向导,可帮助你选择存储选项,从现有订阅和帐户中进行选择,并快速配置所有选项。
将 "导入数据" 模块添加到试验。 可以在工作室和经典 (") "类别中 找到该 模块。
单击 "启动导入数据向导" 并按照提示操作。
配置完成后,若要将数据实际复制到试验中,请右键单击该模块,然后选择"运行 选定项"。
如果需要编辑现有数据连接,向导将加载所有以前的配置详细信息,以便无需从头开始再次启动
在导入数据模块中手动设置属性
以下步骤介绍如何手动配置导入源。
对于"数据源",请选择"Azure SQL 数据库"。
设置特定于 Azure SQL 数据库 或 Azure SQL Data Warehouse。
数据库服务器名称:键入 Azure 生成的服务器名称。 它的格式通常为:
<generated_identifier>.database.windows.net
。数据库名称:键入刚刚指定的服务器上现有数据库的名称。
服务器用户帐户名:键入对数据库具有访问权限的帐户的用户名。
服务器用户帐户密码:提供指定用户帐户的密码。
数据库查询:键入SQL粘贴描述要读取的数据的语句。 始终使用 SQL Visual Studio 服务器资源管理器 或 SQL Server Data Tools 等工具来验证查询结果。
注意
导入数据 模块仅支持输入数据库名称、用户帐户名和密码作为凭据。
如果读取到 机器学习在试验运行之间不会更改,请选择"使用缓存的结果"选项。
选中此选项后,如果未对模块参数进行任何其他更改,则试验在首次运行模块时加载数据,然后使用数据集的缓存版本。
如果要在试验的每次迭代中重新加载数据集,请取消选择此选项。 每次在导入数据中更改任何参数时,都从源 重新加载数据集。
运行试验。
当 导入数据 将数据 (经典) 中时,可能也会执行一些隐式类型转换,具体取决于源数据库中使用的数据类型。
结果
导入完成后,单击输出数据集并选择"可视化",查看数据是否成功导入。
(可选)可以使用工作室中的工具更改数据集及其元数据 (经典) :
示例
有关如何在机器学习中使用 Azure 数据库中的数据的示例,请参阅以下文章和试验:
零售预测步骤 1/6 - 数据预处理:零售预测模板演示了使用 Azure SQLDB 中存储的数据进行分析的典型方案。
它还演示了一些有用的技术,例如,使用 Azure SQLDB 在不同帐户的试验之间传递数据集、保存和合并预测,以及如何创建用于机器学习的 Azure SQLDB。
将机器学习与SQL Data Warehouse:本文演示如何创建回归模型,以使用 Azure SQL Data Warehouse。
如何将 Azure ML与 Azure SQL Data Warehouse:本文使用导入数据和导出数据与 Azure SQL Data Warehouse 在 AdventureWorks 上生成聚类Azure SQL Data Warehouse。
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
常见问题
能否在从源读取数据时筛选数据?
导入 数据 模块不支持在读取数据时进行筛选。 建议创建视图或定义仅生成所需的行的查询。
注意
如果你发现加载的数据多于所需数据,可以通过读取新数据集、使用与较早的更大数据相同的名称对其进行保存来覆盖缓存的数据集。
为什么收到错误"不支持十进制类型"?
从数据库读取SQL时,可能会遇到一条错误消息,报告不支持的数据类型。
如果从 SQL 数据库获取的数据包括 机器学习 中不支持的数据类型,则应该在读取数据之前将小数转换为受支持的数据。 导入 数据不能自动执行任何会导致精度损失的转换。
有关支持的数据类型详细信息,请参阅 模块数据类型。
如果数据库位于不同的地理区域,会发生什么情况。 导入数据是否仍可访问数据库? 数据存储在何处?
如果数据库与机器学习帐户位于不同的区域,则数据访问可能会变慢。 此外,如果计算节点与存储帐户位于不同的区域,则对订阅上的数据入口和出口收费。
为试验读取到工作区的数据将保存在与试验关联的存储帐户中。
为什么某些字符未正确显示?
机器学习 UTF-8 编码。 如果数据库中的字符串列使用不同的编码,则可能无法正确导入字符。
一种选择是将数据导出到 Azure 存储中的 CSV 文件,并使用带编码的 CSV 选项为自定义分隔符、代码页等指定参数。
模块参数
名称 | 范围 | 类型 | 默认 | 说明 |
---|---|---|---|---|
数据源 | 列表 | 数据源或接收器 | Azure Blob 存储 | 数据源可以是 HTTP、FTP、匿名 HTTPS 或 FTPS、Azure BLOB 存储中的文件、Azure 表、Azure SQL 数据库、本地 SQL Server 数据库、Hive 表或 OData 终结点。 |
HDFS 服务器 URI | any | String | 无 | HDFS Rest 终结点 |
数据库服务器名称 | any | String | 无 | Azure 存储帐户名称 |
数据库名称 | any | SecureString | 无 | Azure 存储密钥 |
服务器用户帐户名 | any | String | 无 | Azure 容器名称 |
服务器用户帐户名 | 列表(子集) | URL 内容 | OData | 数据格式类型 |
数据库查询 | any | String | 无 | 数据格式类型 |
使用缓存的结果 | TRUE/FALSE | 布尔 | FALSE | description |
Outputs
名称 | 类型 | 说明 |
---|---|---|
结果数据集 | 数据表 | 包含已下载数据的数据集 |
例外
异常 | 描述 |
---|---|
错误 0027 | 如果两个对象必须具有相同的大小,但其大小却不相同,则会发生异常。 |
错误 0003 | 如果一个或多个输入为 null 或为空,则会发生异常。 |
错误 0029 | 如果传递的 URI 无效,则会发生异常。 |
错误 0030 | 如果无法下载文件,则会发生异常。 |
错误 0002 | 如果一个或多个参数无法分析或者无法从指定的类型转换成目标方法所需的类型,则会发生异常。 |
错误 0009 | 如果错误地指定了 Azure 存储帐户名或容器名,则会发生异常。 |
错误 0048 | 如果无法打开文件,则会发生异常。 |
错误 0015 | 如果数据库连接失败,则会发生异常。 |
错误 0046 | 如果无法在指定的路径中创建目录,则会发生异常。 |
错误 0049 | 如果无法分析文件,则会发生异常。 |
有关特定于工作室和经典 (模块) 的列表,请参阅机器学习代码。
有关 API 异常的列表,请参阅机器学习 REST API代码。
另请参阅
导入数据
导出数据
通过 HTTP 从 Web URL 导入
从配置单元查询导入
从 Azure 表导入
从 Azure Blob 存储导入
从数据馈送提供程序导入
从本地 SQL Server 数据库导入