从数据馈送提供程序导入
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
本文介绍如何使用 机器学习 Studio (经典 ) 中的导入数据模块将 OData 格式提供的数据导入机器学习试验。
为数据集创建 OData 终结点是使数据模型可通过 URL 使用的方法之一。 还可以指定终结点将支持的 OData 操作。 有关创建终结点的信息Odata
,请参阅 OData v4 (ASP.NET) 。
如何从源导入数据
强烈建议在导入之前分析数据,以确保架构与预期一样。 导入过程会扫描一些头行以确定架构,但以后的行可能包含额外的列或导致错误的数据。
使用数据导入向导
该模块新增了一个向导,可帮助你选择存储选项。 使用向导从现有订阅和帐户中进行选择,并快速配置所有选项。
将 "导入数据" 模块添加到试验。 可以在工作室和经典 (") "类别中 找到该 模块。
单击 "启动导入数据向导" 并按照提示操作。
配置完成后,若要将数据实际复制到试验中,请右键单击该模块,然后选择"运行 选定项"。
如果需要编辑现有数据连接,向导将加载所有以前的配置详细信息,以便无需从头开始。
在导入数据模块中手动设置属性
还可以手动配置导入源。
对于 "数据源",请选择 "数据馈送提供程序"。
对于 "数据内容类型",请选择源的类型。 目前仅支持 OData 终结点。
对于 "源 URL",粘贴以所需格式提供数据的站点的 URL。
例如,以下语句从 Northwind 示例数据库获取产品列表:
https://services.odata.org/northwind/northwind.svc/Products
有关详细信息,请参阅 OData 语法。
如果 第一次后 不需要重新加载数据,请选择"使用缓存的结果"选项。 如果预期数据不会在试验运行之间更改,则这是一个不错的选择。
如果没有对模块参数进行任何其他更改,则试验在首次运行模块时加载数据,然后使用数据集的缓存版本。
如果需要定期刷新数据,请取消选择此选项。
运行试验。
结果
完成后,单击输出数据集 并选择"可视化 ",查看数据是否成功导入。
当 导入数据 将馈送数据 (经典) 中时,它会根据列包含的值(数字或分类)推断每列的数据类型。
如果标题存在,则使用该标题来命名输出数据集的列。
如果数据中不存在现有的列标题,则使用 格式生成新的列名
col1, col2,… ,coln
。
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
OData 语法
查询必须返回平面表。 不支持平展嵌套的 OData 记录。
OData 源中包含的某些列的数据类型在工作室或经典 (中) ,例如小数。 可以将数据作为字符串进行输入,稍后使用"执行 R 脚本" 或 "元数据编辑器"模块 转换 它们。
有关 OData 语法和 URL 的信息,请参阅 Odata.org - uri 约定
常见问题
能否在从源读取数据时筛选数据?
导入 数据 模块通常不支持在读取数据时进行筛选。 但是,可以指定筛选器条件作为源资源 URL 的一部分。
若要筛选源的数据,请使用 OData 协议支持的 语句。 例如,此 URL 使用 $filter
表达式仅获取 ID 等于 1 的员工的相关订单。
https://services.odata.org/Northwind/Northwind.svc/Orders?$filter=Employee/EmployeeID eq 1
有关筛选器语法的更多示例,请参阅 在 OData URI 中使用筛选器表达式。
或者,可以获取所有数据,在将数据加载到 机器学习 Studio (经典) :
使用自定义 R 脚本仅获取需要的数据。
将 拆分数据 模块与相对表达式或正则表达式一起用于隔离需要的数据,然后将它保存为数据集。
注意
如果你发现加载的数据多于所需数据,可以通过读取新数据集、使用与较早的更大数据相同的名称对其进行保存来覆盖缓存的数据集。
我收到错误,"连接到 OData 源需要凭据"。 请刷新并提供凭据以继续。 如何提供凭据?**
导入 数据 模块仅支持具有匿名访问的 OData 终结点。 如果 OData 服务需要凭据,则不能使用 OData 选项获取数据。
但是,如果服务位于同一域中,则有时无需任何用户输入即可自动进行身份验证。
解决方法是使用 PowerQuery 或 PowerPivot读取源数据,然后从数据源Excel。
如何避免不必要地重新加载相同的数据?
如果源数据发生更改,可以通过重新运行导入数据来刷新数据集并 添加新数据。 但是,如果不希望每次运行试验时都从源重新读取,请选择"使用缓存的结果 "选项为 TRUE。 如果此选项设置为 TRUE,模块将检查试验之前是否使用相同的源和相同的输入选项运行,如果找到上一次运行,则使用缓存中的数据,而不是重新加载源的数据。
为什么收到错误消息"不支持十进制类型"?
不支持decimal
数据类型机器学习。 原因是导入 数据 无法自动执行任何会导致精度损失的转换。
有关支持的数据类型详细信息,请参阅 模块数据类型。
作为一种解决方法,可以将数据读取为字符串数据类型,然后在读取数据之前使用"编辑元数据"将小数转换为支持的数据。
为什么源中的某些字符未正确显示?
机器学习 UTF-8 编码。 如果源使用另一种类型的编码,则可能无法正确导入字符。
作为一种解决方法,可以将数据保存到 Azure 表存储或 Azure Blob 存储中的 CSV 文件。 然后,使用带 编码的 CSV 选项为自定义分隔符、代码页等指定参数。
模块参数
名称 | 范围 | 类型 | 默认 | 说明 |
---|---|---|---|---|
数据源 | 列表 | 数据源或接收器 | Azure Blob 存储 | 数据源可以是 HTTP、FTP、匿名 HTTPS 或 FTPS、azure BLOB 存储中的文件、azure 表、Azure SQL 数据库、本地 SQL Server 数据库、Hive 表或 OData 终结点。 |
数据内容类型 | 列表(子集) | Url 内容 | OData | 数据格式类型 |
来源 URL | any | String | Power Query 数据源的 URL | |
使用缓存的结果 | TRUE/FALSE | 布尔 | FALSE | description |
Outputs
名称 | 类型 | 说明 |
---|---|---|
结果数据集 | 数据表 | 包含已下载数据的数据集 |
例外
异常 | 描述 |
---|---|
错误 0003 | 如果一个或多个输入为 null 或为空,则会发生异常。 |
错误 0029 | 如果传递的 URI 无效,则会发生异常。 |
错误 0030 | 如果无法下载文件,则会发生异常。 |
错误 0002 | 如果一个或多个参数无法分析或者无法从指定的类型转换成目标方法所需的类型,则会发生异常。 |
有关特定于 Studio (经典) 模块的错误列表,请参阅机器学习错误代码。
有关 API 异常的列表,请参阅机器学习 REST API 错误代码。
另请参阅
导入数据
导出数据
通过 HTTP 从 Web URL 导入
从配置单元查询导入
从 Azure SQL 数据库导入
从 Azure 表导入
从 Azure Blob 存储导入
从本地 SQL Server 数据库导入