使用 Azure 机器学习工作室连接到数据
本文展示了如何使用 Azure 机器学习工作室访问数据。 使用 Azure 机器学习数据存储连接到 Azure 存储服务中的数据。 然后,将 ML 工作流任务的数据与 Azure 机器学习数据集打包。
此表定义并总结了数据存储和数据集的优点。
Object | 说明 | 好处 |
---|---|---|
数据存储 | 若要安全地连接到 Azure 上的存储服务,请将连接信息(订阅 ID、令牌授权等)存储在与工作区关联的 Key Vault 中 | 因为信息已安全存储,所以不会将身份验证凭据或原始数据源置于风险之中,也不再需要在脚本中对这些值进行硬编码 |
数据集 | 数据集的创建还会创建对数据源位置的引用,及其元数据的副本。 使用数据集,可以在模型定型期间访问数据,与其他用户共享数据和协作,并使用 Panda 等开放源代码库进行数据探索。 | 由于延迟评估了数据集,并且数据保留在其现有位置,因此会在存储中保留单一数据副本。 此外,不会产生额外的存储成本,避免了对原始数据源的无意更改,并提高了 ML 工作流的性能速度。 |
要了解数据存储和数据集在整个 Azure 机器学习数据访问工作流中的位置,请访问安全地访问数据。
有关 Azure 机器学习 Python SDK 和代码优先体验的更多信息,请参阅:
先决条件
Azure 订阅。 如果没有 Azure 订阅,请在开始前创建一个试用版订阅。 尝试试用版订阅。
一个 Azure 机器学习工作区。 创建工作区资源
- 创建工作区时,Azure blob 容器和 Azure 文件共享会自动作为数据存储注册到工作区。 它们分别命名为
workspaceblobstore
和workspacefilestore
。 为了获得足够的 blob 存储资源,workspaceblobstore
已设置为默认数据存储,已配置为可供使用。 如果需要更多 blob 存储资源,则需要具有支持的存储类型的 Azure 存储帐户。
- 创建工作区时,Azure blob 容器和 Azure 文件共享会自动作为数据存储注册到工作区。 它们分别命名为
创建数据存储
可从这些 Azure 存储解决方案创建数据存储。 对于不支持的存储解决方案,为了在 ML 试验期间节省数据出口成本,你必须将数据移到支持的 Azure 存储解决方案。 有关数据存储的更多信息,请访问此资源。
可以创建具有基于凭据的访问或基于标识的访问的数据存储。
使用 Azure 机器学习工作室创建新的数据存储。
重要
如果数据存储帐户位于虚拟网络中,则需要额外的配置步骤来确保工作室可以访问数据。 有关适当配置步骤的更多信息,请访问网络隔离和隐私。
- 登录到 Azure 机器学习工作室。
- 在左窗格的“资产”下,选择“数据”。
- 在顶部,选择“数据存储”。
- 选择“+创建”。
- 完成表单以创建和注册新的数据存储。 该表单会根据你选择的 Azure 存储类型和身份验证类型智能地进行更新。 有关在何处查找填充此表单所需的身份验证凭据的更多信息,请访问存储访问和权限部分。
此屏幕截图显示 Azure blob 数据存储创建面板:
创建数据资产
创建数据存储后,创建一个数据集以与数据交互。 数据集将数据打包到经过延迟评估的可用对象中,用于机器学习任务,例如定型。 有关数据集的更多信息,请访问创建 Azure 机器学习数据集。
数据集有两种类型:FileDataset 和 TabularDataset. FileDatasets 创建对单一或多个文件或公共 URL 的引用。 TabularDatasets 以表格格式表示数据。 可以创建 TabularDatasets,从
- .csv
- .tsv
- .parquet
- .json 文件和从 SQL 查询结果中。
以下步骤介绍如何在 Azure 机器学习工作室中创建数据集。
注意
通过 Azure 机器学习工作室创建的数据集会自动注册到工作区。
导航到 Azure 机器学习工作室
接下来会打开数据源窗格,如此屏幕截图所示:
数据源有不同的选项。 对于已存储在 Azure 中的数据,请选择“从 Azure 存储”。要从本地驱动器上载数据,请选择“从本地文件”。对于存储在公共 web 位置的数据,请选择“从 web 文件”。还可以从 SQL 数据库创建数据资产。
在文件选择步骤中,选择 Azure 应存储数据的位置以及要使用的数据文件。
- 如果数据位于虚拟网络中,请启用“跳过验证”。 详细了解虚拟网络隔离和隐私。
按照步骤为数据资产设置数据分析设置和架构。 设置会根据文件类型进行预填充,可以在创建数据资产之前进一步配置设置。
进入“评审”步骤后,在最后一页上选择“创建”
数据预览和配置文件
创建数据集后,请验证是否可以在工作室中查看预览和配置文件:
- 登录到 Azure 机器学习工作室
- 在左侧导航栏的“资产”下,选择“数据”。
- 选择要查看的数据集的名称。
- 选择”浏览“选项卡。
- 选择“预览”选项卡。
- 选择“配置文件”选项卡。
可以使用数据集的摘要统计信息来验证数据集是否 ML 就绪。 对于非数值列,这些统计信息仅包括基本统计信息,例如最小值、最大值和错误计数。 数值列提供统计矩和估计分位数。
Azure 机器学习数据集数据配置文件包括:
注意
对于具有不相关类型的特征,将显示空白条目。
统计信息 | 说明 |
---|---|
功能 | 摘要列名称 |
配置文件 | 基于推断类型的内联可视化效果。 字符串、布尔值和日期都有值计数。 小数(数值)具有近似的直方图。 这些可视化效果提供了对数据分布的快速理解 |
类型分布 | 列中类型的内联值计数。 null 是它们自己的类型,因此此可视化效果可以检测奇数或缺失的值 |
类型 | 推断的列类型。 可能的值包括:字符串、布尔值、日期和小数 |
Min | 列的最小值。 对于没有固有顺序(例如,布尔值)的特征类型,将显示空白条目 |
最大 | 列的最大值。 |
计数 | 列中缺失和非缺失条目的总数 |
非缺失计数 | 列中的非缺失条目数。 空字符串和错误被视为值,因此它们不会导致“缺失计数”。 |
分位数 | 每个分位数的近似值,以提供数据分布的感观 |
中间线 | 列的算术平均值或平均值 |
标准偏差 | 度量此列数据的离差量或变化量 |
差异 | 度量此列的数据与其平均值的差距 |
倾斜 | 度量此列的数据与正态分布的差异 |
峰度 | 与正态分布相比,度量此列数据的“尾度” |
存储访问和权限
为了确保安全连接到 Azure 存储服务,Azure 机器学习会要求相应数据存储的访问权限。 此访问权限依赖用于注册数据存储的身份验证凭据。
虚拟网络
如果数据存储帐户在虚拟网络中,则需要执行其他配置步骤来确保 Azure 机器学习能够访问数据。 请参阅在虚拟网络中使用 Azure 机器学习工作室,以确保在创建和注册数据存储时应用适当的配置步骤。
访问验证
警告
不支持跨租户访问存储帐户。 如果方案需要跨租户访问,请于 amldatasupport@microsoft.com 联系 Azure 机器学习数据支持团队别名,以获得自定义代码解决方案的帮助。
作为初始数据存储创建和注册过程的一部分,Azure 机器学习会自动验证基础存储服务是否存在,以及用户提供的主体(用户名、服务主体或 SAS 令牌)是否有权访问指定的存储。
创建数据存储后,仅对需要访问基础存储容器的方法执行此验证。 并非每次检索数据存储对象时都会执行验证。 例如,从数据存储中下载文件时,会进行验证。 但是,如果想更改默认数据存储,则不会进行验证。
若要验证对基础存储服务的访问,请根据要创建的数据存储类型提供帐户密钥、共享访问签名 (SAS) 令牌或服务主体。 存储类型矩阵列出了与各种数据存储类型对应的受支持的身份验证类型。
可在 Azure 门户上查找帐户密钥、SAS 令牌和服务主体信息。
要获取用于身份验证的帐户密钥,请在左侧窗格中选择“存储帐户”,然后选择要注册的存储帐户
- “概述”页面提供了帐户名称、容器和文件共享名称等信息。
- 展开左侧导航中的“安全性 + 网络”节点
- 选择“访问密钥”
- 可用的密钥值用作“帐户密钥”
要获取用于身份验证的 SAS 令牌,请在左侧窗格中选择“存储帐户”,然后选择所需存储帐户
- 要获得“访问密钥”,请展开左侧导航中的“安全性 + 网络”节点
- 选择“共享访问签名”
- 完成生成 SAS 值的过程
要使用服务主体进行身份验证,请转到“应用注册”,然后选择要使用的应用。
- 其相应的“概览”页面包含租户 ID 和客户端 ID 等所需信息。
重要
- 要更改 Azure 存储帐户的访问密钥(帐户密钥或 SAS 令牌),请确保将新凭据与工作区以及与其连接的数据存储同步。 有关详细信息,请访问同步更新的凭据。
- 如果注销并重新注册具有相同名称的数据存储,但重新注册失败,则工作区的 Azure Key Vault 可能未启用软删除。 默认情况下,将为工作区创建的密钥保管库实例启用软删除,但如果使用的是现有密钥保管库或是在 2020 年 10 月之前创建的工作区,则可能无法启用软删除。 有关如何启用软删除的详细信息,请访问对现有密钥保管库启用软删除。
权限
对于 Azure blob 容器和 Azure Data Lake Gen 2 存储,请确保身份验证凭据具有存储 blob 数据读取者访问权限。 详细了解存储 Blob 数据读取器。 默认情况下,帐户 SAS 令牌没有权限。
如需进行数据读取访问,你的身份验证凭据必须至少具有容器和对象的“列出”和“读取”权限。
若需进行数据写入访问,还需要“写入”和“添加”权限。
使用数据集进行训练
在机器学习试验中使用数据集来训练 ML 模型。 详细了解如何使用数据集进行训练。
后续步骤
有关更多数据集定型示例,请参阅示例笔记本