导出到 Azure Blob 存储
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
本文介绍如何使用机器学习 Studio (经典) 中的 "导出数据" 模块中的 "导出到 Azure Blob 存储" 选项。
如果要将数据从机器学习试验导出到 Azure Blob 存储,则此选项很有用。 例如,你可能想要将机器学习数据输出与其他应用程序共享,或者存储中间数据或已清理的数据集以供其他试验使用。
可以使用 HTTP 或 HTTPS 从任何位置访问 Azure blob。 由于 Azure Blob 存储是一种非结构化数据存储,因此可以使用各种格式导出数据。 目前支持 CSV、TSV 和 ARFF 格式。
若要将数据导出到 Azure blob 以供其他应用程序使用,可以使用导出数据模块将数据保存到 Azure Blob 存储。 然后,使用可从 Azure 存储 ((如 Excel、云存储实用工具或其他云服务) )中读取数据的任何工具,以便加载和使用这些数据。
注意
导入数据和导出数据模块只能从使用经典部署模型创建的 Azure 存储读取和写入数据。 换句话说,尚不支持提供热和冷存储访问层的新 Azure Blob 存储帐户类型。
一般情况下,在此服务选项推出之前创建的任何 Azure 存储帐户应该不受影响。
但是,如果你需要创建新帐户以用于机器学习,则建议你选择 "经典" 作为部署模型,或使用 "资源管理器" 和 "帐户类型",选择 "常规用途" 而不是 " Blob 存储"。
如何将数据导出到 Azure Blob 存储
Azure blob 服务用于存储大量数据,包括二进制数据。 有两种类型的 blob 存储:公共 blob 和需要登录凭据的 blob。
连接将数据导出到生成要导出到 Azure Blob 存储的数据的模块。
打开 "导出数据" 的 "属性" 窗格。 对于数据目标,选择 " Azure Blob 存储"。
对于 " 身份验证类型",请选择 " 公用 (sas URL") 如果知道存储支持通过 SAS url 进行访问。
SAS URL 是一种特殊类型的 URL,可使用 Azure 存储实用程序生成,仅限时可用。 它包含身份验证和下载所需的所有信息。
对于 " URI",请键入或粘贴定义帐户和公共 blob 的完整 URI。
对于专用帐户,请选择 " 帐户",并提供帐户名称和帐户密钥,以便试验可以写入存储帐户。
帐户名称:键入或粘贴要在其中保存数据的帐户的名称。 例如,如果存储帐户的完整 URL 为
https://myshared.blob.core.windows.net
,则键入myshared
。帐户密钥:粘贴与帐户关联的存储访问密钥。
容器、目录或 blob 的路径:键入存储导出数据的 blob 的名称。 例如,若要将实验结果保存到名为mymldata的帐户的容器预测中名为results01.csv的新 blob,则该 blob 的完整 URL 将为
https://mymldata.blob.core.windows.net/predictions/results01.csv
。因此,在 容器、目录或 blob的字段路径中,将按如下所示指定容器和 blob 名称:
predictions/results01.csv
如果指定不存在的 blob 名称,Azure 将为你创建 blob。
写入现有 blob 时,可以通过设置属性( Azure Blob 存储写入模式)来指定覆盖 blob 的当前内容。 默认情况下,此属性设置为 " 错误",这意味着只要找到同名的现有 blob 文件,就会引发错误。
对于 " blob 文件的文件格式",请选择数据的存储格式。
Csv:默认存储格式 (csv) 以逗号分隔的值。 要连同数据一起导出列标题,请选择 " 写入 blob 标题行" 选项。 有关机器学习中使用的以逗号分隔的格式的详细信息,请参阅转换为 CSV。
Tsv:制表符分隔值 (TSV) 格式与许多机器学习工具兼容。 要连同数据一起导出列标题,请选择 " 写入 blob 标题行" 选项。 有关机器学习中使用的制表符分隔格式的详细信息,请参阅Convert to TSV。
ARFF:此格式支持以 Weka 工具集使用的格式保存文件。 存储在 SAS URL 中的文件不支持此格式。 有关 ARFF 格式的详细信息,请参阅 转换为 ARFF。
使用缓存的结果:如果想要避免每次运行试验时将结果重写到 blob 文件,请选择此选项。 如果没有对模块参数进行其他更改,则试验仅在模块第一次运行时或数据发生更改时写入结果。
示例
有关如何使用 导出数据 模块的示例,请参阅 Azure AI 库:
将数据集转换为 VW 格式:此试验将 Python 脚本与 导出数据 模块一起使用,以创建可由 Vowpal Wabbit 使用的数据。
使用 Azure SQL Data Warehouse 设置预测分析管道:此方案描述多个组件之间的数据移动,包括机器学习和 SQL Data Warehouse。
无代码批处理评分:本教程演示了如何使用 Azure 逻辑应用自动导入试验所使用的数据,并将实验结果写入 blob 存储。
使用 azure 数据工厂的本地 SQL Server 操作 Azure ML 解决方案:本文介绍了一种更复杂的数据管道,它将数据以将 blob 存储作为临时阶段发送回本地 SQL Server 数据库。 使用本地数据库需要配置数据网关,但您可以跳过示例的一部分,只需使用 blob 存储。
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
常见问题
如果实验尚未更改,如何避免写入数据
当试验结果发生变化时, 导出数据 始终保存新数据集。 但是,如果在不进行更改影响输出数据的情况下反复运行试验,则可以选择 " 使用缓存的结果 " 选项。
该模块使用相同的数据和相同的选项来检查试验是否以前运行过,如果找到了以前的运行,则不会重复写入操作。
能否将数据保存到不同地理区域中的帐户
是的,您可以将数据写入到不同区域的帐户。 但是,如果存储帐户与用于机器学习试验的计算节点位于不同的区域,则数据访问速度可能较慢。 此外,还需支付订阅的数据入口和出口费用。
模块参数
常规选项
名称 | 范围 | 类型 | 默认 | 说明 |
---|---|---|---|---|
数据源 | 列表 | 数据源或接收器 | Azure Blob 存储 | 目标可以是 azure BLOB 存储中的文件、azure 表、Azure SQL 数据库中的表或视图或 Hive 表。 |
使用缓存的结果 | TRUE/FALSE | 布尔 | FALSE | 仅当有效缓存不存在时才执行模块;否则,请使用以前执行的缓存数据。 |
请指定身份验证类型 | SAS/帐户 | AuthenticationType | 帐户 | 指示 SAS 或帐户凭据是否应该用于访问授权 |
公共或 SAS - 公共存储选项
名称 | 范围 | 类型 | 默认 | 说明 |
---|---|---|---|---|
Blob 的 SAS URI | any | String | 无 | 要写入的 blob 的 SAS URI (所需的) |
SAS 文件的文件格式 | ARFF CSV TSV |
LoaderUtils.FileTypes | CSV | 指示文件是 CSV、TSV 还是 ARFF。 (必需) |
写入 SAS 标题行 | TRUE/FALSE | 布尔 | FALSE | 指示列标题是否应该写入文件 |
帐户 - 专用存储选项
名称 | 范围 | 类型 | 默认 | 说明 |
---|---|---|---|---|
Azure 帐户名 | any | String | 无 | Azure 用户帐户名称 |
Azure 帐户密钥 | any | SecureString | 无 | Azure 存储密钥 |
Blob 的路径(以容器开头) | any | String | 无 | Blob 文件的名称,以容器名称开头 |
Azure Blob 存储写入模式 | 列表:错误、覆盖 | enum:BlobFileWriteMode | 错误 | 选择写入 Blob 文件的方法 |
Blob 文件的文件格式 | ARFF CSV TSV |
LoaderUtils.FileTypes | CSV | 指示 Blob 文件是 CSV、TSV 还是 ARFF |
写入 Blob 标题行 | TRUE/FALSE | 布尔 | FALSE | 指示 blob 文件是否应该具有标题行 |
例外
异常 | 描述 |
---|---|
错误 0027 | 如果两个对象必须具有相同的大小,但其大小却不相同,则会发生异常。 |
错误 0003 | 如果一个或多个输入为 null 或为空,则会发生异常。 |
错误 0029 | 如果传递的 URI 无效,则会发生异常。 |
错误 0030 | 如果无法下载文件,则会发生异常。 |
错误 0002 | 如果一个或多个参数无法分析或者无法从指定的类型转换成目标方法所需的类型,则会发生异常。 |
错误 0009 | 如果错误地指定了 Azure 存储帐户名或容器名,则会发生异常。 |
错误 0048 | 如果无法打开文件,则会发生异常。 |
错误 0046 | 如果无法在指定的路径中创建目录,则会发生异常。 |
错误 0049 | 如果无法分析文件,则会发生异常。 |
有关特定于工作室和经典 (模块) 的列表,请参阅机器学习代码。
有关 API 异常的列表,请参阅机器学习 REST API代码。