本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
处理数据
在 Amazon Data Wrangler SageMaker 数据流中以交互方式处理数据时,Amazon SageMaker Canvas 仅将转换应用于示例数据集供您预览。在 SageMaker Canvas 中完成数据流后,您可以处理所有数据并将其保存在适合您的机器学习工作流程的位置。
在 Data Wrangler 中完成数据转换后,有多种方法可供选择:
-
创建模型。您可以创建 Canvas 模型,然后直接开始使用准备好的数据创建模型。您可以在处理完整个数据集之后创建模型,也可以仅导出您在 Data Wrangler 中使用的样本数据来创建模型。Canvas 将处理后的数据(整个数据集或样本数据)保存为 Canvas 数据集。
我们建议您使用样本数据进行快速迭代,但要训练最终模型时,请使用全部数据。构建表格模型时,大于 5 GB 的数据集会自动缩减采样至 5 GB;对于时间序列预测模型,大于 30 GB 的数据集会缩减采样至 30 GB。
要了解有关创建模型的更多信息,请参阅构建自定义模型。
-
导出数据。您可以导出数据以用于机器学习工作流程。选择导出数据时,有多种选择:
-
您可以在 Canvas 应用程序中将数据保存为数据集。有关 Canvas 数据集支持的文件类型以及将数据导入 Canvas 时的其他要求的更多信息,请参阅创建数据集。
-
您可以将数据保存到 Amazon S3。根据画布内存的可用性,您的数据将在应用程序中处理,然后导出到 Amazon S3。如果您的数据集大小超过 Canvas 可以处理的范围,则默认情况下,Canvas 会使用EMR无服务器任务扩展到多个计算实例,处理您的完整数据集,然后将其导出到 Amazon S3。您也可以手动配置 Processing 作业,以便更精细地控制用于 SageMaker 处理数据的计算资源。
-
-
导出数据流。您可能需要保存数据流的代码,以便可以在 Canvas 之外修改或运行转换。Canvas 为您提供了将数据流转换作为 Python 代码保存在 Jupyter 笔记本中的选项,然后您可以将其导出到 Amazon S3,以便在机器学习工作流程的其他地方使用。
当您从数据流中导出数据并将其保存为 Canvas 数据集或 Amazon S3 时,Canvas 会在您的数据流中创建一个新的目标节点,该节点是显示已处理数据的存储位置的最后一个节点。如果您想执行多个导出操作,则可以在流程中添加其他目标节点。例如,您可以从数据流的不同点导出数据以仅应用部分转换,也可以将转换后的数据导出到不同的 Amazon S3 位置。有关如何添加或编辑目标节点的更多信息,请参阅添加目标节点。
以下各节介绍如何执行上述操作。
导出以创建模型
只需在数据流中点击几下,即可导出转换后的数据,并开始在 Canvas 中创建机器学习模型。Canvas 将您的数据保存为 Canvas 数据集,然后您将进入新模型的模型构建配置页面。
要使用转换后的数据创建 Canvas 模型,请执行以下操作:
-
导航到您的数据流。
-
选择要导出的节点旁边的省略号图标。
-
从快捷菜单中,选择创建模型。
-
在导出以创建模型侧面板中,输入新数据集的数据集名称。
-
在继续构建模型之前,请保持 “处理整个数据集” 选项以处理和导出整个数据集。关闭此选项可使用您在数据流中使用的交互式样本数据来训练模型。
-
输入模型名称来命名新模型。
-
选择问题类型或要构建的模型类型。有关 C SageMaker anvas 中支持的模型类型的更多信息,请参阅构建自定义模型。
-
选择 “目标” 列或您希望模型预测的值。
-
选择导出并创建模型。
新的 Canvas 模型的 “构建” 选项卡应该会打开,然后您就可以完成模型的配置和训练了。有关如何构建模型的更多信息,请参阅构建模型。
导出数据
导出数据以将数据流中的转换应用于完整导入的数据集。您可以将数据流中的任何节点导出到以下位置:
-
SageMaker 画布数据集
-
Amazon S3
如果要在 Canvas 中训练模型,可以将经过转换后的完整数据集导出为 Canvas 数据集。如果您想在 C SageMaker anvas 外部的机器学习工作流程中使用转换后的数据,可以将数据集导出到 Amazon S3。
导出到画布数据集
使用以下步骤从数据流中的节点导出 SageMaker Canvas 数据集。
将流程中的节点导出为 SageMaker Canvas 数据集
-
导航到您的数据流。
-
选择要导出的节点旁边的省略号图标。
-
在快捷菜单中,将鼠标悬停在 “导出” 上,然后选择 “将数据导出到画布数据集”。
-
在导出到画布数据集侧面板中,输入新数据集的数据集名称。
-
如果您希望 C SageMaker anvas 处理并保存您的完整数据集,请选中 “处理整个数据集” 选项。关闭此选项可仅对数据流中正在使用的样本数据应用变换。
-
选择导出。
现在,您应该可以转到 Canvas 应用程序的数据集页面并查看您的新数据集。
导出到 Amazon S3
将数据导出到 Amazon S3 时,您可以进行扩展以转换和处理任何大小的数据。如果应用程序的内存可以处理数据集的大小,Canvas 会自动在本地处理您的数据。如果您的数据集大小超过 5 GB 的本地内存容量,Canvas 会代表您启动远程作业,以配置额外的计算资源并更快地处理数据。默认情况下,Canvas 使用 Amazon EMR Serverless 来运行这些远程作业。但是,您可以手动将 Canvas 配置为使用EMR无服务器作业或具有自己设置的 SageMaker 处理作业。
注意
在运行 S EMR erverless 作业时,默认情况下,该作业会继承 Canvas 应用程序的IAM角色、KMS密钥设置和标签。
以下总结了 Canvas 中远程作业的选项:
-
EMR无服务器:这是 Canvas 用于远程作业的默认选项。EMRServerless 会自动配置和扩展计算资源来处理您的数据,这样您就不必担心为工作负载选择合适的计算资源了。有关EMR无服务器的更多信息,请参阅EMR无服务器用户指南。
-
SageMaker 处理: SageMaker 处理作业提供更高级的选项,并可对用于处理数据的计算资源进行精细控制。例如,您可以指定计算实例的类型和数量,自行配置作业VPC并控制网络访问权限,自动处理任务等。有关自动处理作业的更多信息,请参阅创建计划以自动处理新数据。有关 SageMaker 处理作业的更多一般信息,请参阅使用处理作业来运行数据转换工作负载。
导出到 Amazon S3 时支持以下文件类型:
-
CSV
-
Parquet
要开始使用,请查看以下先决条件。
EMR无服务器作业的先决条件
要创建使用EMR无服务器资源的远程作业,您必须拥有必要的权限。您可以通过 Amazon SageMaker 域名或用户个人资料设置授予权限,也可以手动配置您的用户的 AWS IAM角色。有关如何授予用户执行大数据处理权限的说明,请参阅向用户授予在整个机器学习生命周期中使用大数据的权限。
如果您不想配置这些策略,但仍需要通过 Data Wrangler 处理大型数据集,也可以使用 SageMaker 处理作业。
使用以下步骤将您的数据导出到 Amazon S3。要配置远程作业,请按照可选的高级步骤进行操作。
将流程中的节点导出到 Amazon S3
-
导航到您的数据流。
-
选择要导出的节点旁边的省略号图标。
-
在快捷菜单中,将鼠标悬停在 “导出” 上,然后选择 “将数据导出到 Amazon S3”。
-
在导出到 Amazon S3 侧面板中,您可以更改新数据集的数据集名称。
-
对于 S3 位置,输入要将数据集导出到的 Amazon S3 位置。您可以输入 S3 URI 位置或 ARN S3 接入点的 S3、别名或。有关访问点的更多信息,请参阅 Amazon S3 用户指南中的使用 Amazon S3 接入点管理数据访问权限。
-
(可选)在 “高级” 设置中,为以下字段指定值:
-
文件类型-导出数据的文件格式。
-
分隔符-用于分隔文件中值的分隔符。
-
压缩-用于减小文件大小的压缩方法。
-
分区数-Canvas 作为作业输出写入的数据集文件数。
-
选择列-您可以从数据中选择要包含在分区中的列子集。
-
-
如果您希望 Canvas 将数据流转换应用于整个数据集并导出结果,请选中 “处理整个数据集” 选项。如果取消选择此选项,Canvas 将仅对交互式 Data Wrangler 数据流中使用的数据集样本应用变换。
注意
如果您只导出数据样本,Canvas 会在应用程序中处理您的数据,而不会为您创建远程作业。
-
如果您希望 Canv as 自动确定是使用 Canvas 应用程序内存运行作业,还是使用 EMR Serverless 作业运行作业,请选中 “自动作业配置” 选项。如果您取消选择此选项并手动配置作业,则可以选择使用EMR无服务器或 SageMaker 处理作业。有关如何配置EMR无服务器或 SageMaker 处理作业的说明,请在导出数据之前参阅此过程之后的部分。
-
选择导出。
以下过程说明在将完整数据集导出到 Amazon S3 时,如何手动配置EMR无服务器或 SageMaker 处理的远程任务设置。
导出数据后,您应该在指定的 Amazon S3 位置找到经过全面处理的数据集。
导出数据流
导出数据流会转换你在 Data Wrangler 中执行的操作,然后将其导出到包含可以修改和运行的 Python 代码的 Jupyter 笔记本中。这有助于将数据转换代码集成到机器学习管道中。
您可以选择数据流中的任何数据节点并将其导出。导出数据节点时,会导出该节点所代表的转换及其之前的转换。
将数据流导出为 Jupyter 笔记本
-
导航到您的数据流。
-
选择要导出的节点旁边的省略号图标。
-
在快捷菜单中,将鼠标悬停在 “导出” 上,然后将鼠标悬停在 “通过 Jupyter 笔记本导出” 上。
-
选择以下操作之一:
-
SageMaker 管道
-
Amazon S3
-
SageMaker 推理管道
-
SageMaker 特色商店
-
Python 代码
-
-
将打开 “将数据流导出为笔记本” 对话框。选择以下选项之一:
-
下载本地副本
-
导出到 S3 位置
-
-
如果您选择了 “导出到 S3 位置”,请输入要将笔记本导出到的 Amazon S3 位置。
-
选择导出。
您的 Jupyter 笔记本要么下载到本地计算机,要么可以将其保存在您指定的 Amazon S3 位置。
管理目标节点
SageMaker Canvas 中的目标节点指定了存储经过处理和转换的数据的位置。当您选择将转换后的数据导出到 Amazon S3 时,Canvas 会使用指定的目标节点位置,应用您在数据流中配置的所有转换。有关将任务导出到 Amazon S3 的更多信息,请参阅上一节导出到 Amazon S3。
默认情况下,选择将数据导出到 Amazon S3 会为数据流添加一个目标节点。但是,您可以向流程中添加多个目标节点,从而可以将不同的转换集或数据变体同时导出到不同的 Amazon S3 位置。例如,您可以创建一个目标节点,用于在应用所有转换后导出数据,另一个目标节点仅在某些初始转换(例如联接操作)之后导出数据。这种灵活性使您能够将转换后的数据的不同版本或子集导出并存储在不同的 S3 位置,以用于各种用例。
以下各节介绍如何在数据流中添加和编辑目标节点。
添加目标节点
使用以下步骤向数据流添加目标节点。
添加目标节点
-
导航到您的数据流。
-
选择要放置目标节点的节点旁边的省略号图标。
-
在快捷菜单中,将鼠标悬停在 “导出” 上,然后选择 “添加目的地”。
-
在导出目标侧面板中,输入数据集名称以命名输出。
-
对于亚马逊 S3 位置,请输入您要将输出导出到的亚马逊 S3 位置。您可以输入 S3 URI 位置或 ARN S3 接入点的 S3、别名或。有关访问点的更多信息,请参阅 Amazon S3 用户指南中的使用 Amazon S3 接入点管理数据访问权限。
-
在 “导出设置” 中,指定以下字段:
-
文件类型-导出数据的文件格式。
-
分隔符-用于分隔文件中值的分隔符。
-
压缩-用于减小文件大小的压缩方法。
-
-
对于分区,请指定以下字段:
-
分区数- SageMaker Canvas 作为作业输出写入的数据集文件数。
-
选择列-您可以从数据中选择要包含在分区中的列子集。
-
-
如果您只想向数据流中添加目标节点,请选择 “添加”;如果要添加该节点并启动导出任务,请选择 “添加”,然后选择 “导出”。
现在,您应该会在流程中看到一个新的目标节点。
编辑目标节点
您也可以编辑现有目标节点的配置,然后选择重新运行任务以覆盖指定 Amazon S3 位置的数据。
使用以下步骤编辑数据流中的目标节点并启动导出任务。
编辑目标节点
-
导航到您的数据流。
-
选择要编辑的目标节点旁边的省略号图标。
-
在上下文菜单中,选择 “编辑”。
-
编辑目标侧面板打开。在此面板中,您可以编辑数据集名称、Amazon S3 位置以及导出和分区设置等详细信息。
-
(可选)在要导出的其他节点中,您可以在运行导出任务时选择更多要处理的目标节点。
-
如果您希望 Canvas 将数据流转换应用于整个数据集并导出结果,请选中 “处理整个数据集” 选项。如果取消选择此选项,Canvas 将仅对交互式 Data Wrangler 数据流中使用的数据集样本应用变换。
-
如果您希望 Canv as 自动确定是使用 Canvas 应用程序内存运行作业,还是使用 EMR Serverless 作业运行作业,请选中 “自动作业配置” 选项。如果您取消选择此选项并手动配置作业,则可以选择使用EMR无服务器或 SageMaker 处理作业。有关如何配置EMR无服务器或 SageMaker 处理作业的说明,请参阅前一节导出到 Amazon S3。
-
完成更改后,选择 “更新”。
保存对目标节点配置的更改不会自动重新运行作业或覆盖已经处理和导出的数据。再次导出数据以使用新配置运行作业。如果您决定使用作业再次导出数据,Canvas 会使用更新的目标节点配置将数据转换并输出到指定位置,从而覆盖所有现有数据。
创建计划以自动处理新数据
注意
以下部分仅适用于 SageMaker 处理作业。如果您使用默认 Canvas 设置或 EMR Serverless 创建远程作业以将转换应用于完整数据集,则本节不适用。
如果您要定期处理数据,则可以创建一个计划来自动运行处理作业。例如,您可以创建一个计划,该计划在获得新数据时自动运行处理作业。有关处理任务的更多信息,请参阅导出到 Amazon S3。
创建任务时,必须指定有权创建该任务的IAM角色。您可以使用该AmazonSageMakerCanvasDataPrepFullAccess策略来添加权限。
将以下信任策略添加到角色中 EventBridge 以允许代入该角色。
{ "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" }
重要
当您创建计划时,Data Wrangler 会创建一个输入。eventRule
EventBridge您需要为创建的事件规则以及用于运行处理作业的实例都支付费用。
有关 EventBridge 定价的信息,请参阅 Amazon EventBridge 定价
使用以下方法之一设置计划:
以下各节提供了在将数据导出到 Amazon S3 时填写 SageMaker处理任务设置时安排任务的程序。以下所有说明均从 “ SageMaker 处理作业设置” 的 “关联计划” 部分开始。
你可以使用 SageMaker AWS Management Console 查看计划运行的作业。您的处理任务在管道中运行。每个处理作业都有各自的管道。作业作为管道中的一个处理步骤运行。您可以查看已在管道中创建的计划。有关查看管道的信息,请参阅 查看管道。
通过以下过程查看您已计划的作业。
要查看您已计划的作业,请执行以下操作。
-
打开 Amazon SageMaker Studio 经典版。
-
开放管道
-
查看用于您已创建的作业的管道。
运行作业的管道使用作业名称作为前缀。例如,如果您创建了一个名为
housing-data-feature-enginnering
的作业,则管道的名称为canvas-data-prep-housing-data-feature-engineering
。 -
选择包含您的作业的管道。
-
查看管道的状态。管道状态为成功时表示已成功运行处理作业。
要停止运行处理作业,请执行以下操作:
要停止运行处理作业,请删除指定计划的事件规则。删除事件规则时,会使与该计划关联的所有作业停止运行。有关删除规则的信息,请参阅禁用或删除 Amazon EventBridge 规则。
您还可以停止和删除与计划关联的管道。有关停止管道的信息,请参见StopPipelineExecution。有关删除管道的信息,请参阅DeletePipeline。