本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Export
在 Data Wrangler 流程中,您可以导出对数据处理管道所做的部分或全部转换。
Data Wrangler 流程是您对数据执行的一系列数据准备步骤。在数据准备过程中,您对数据执行一次或多次转换。每次转换都是使用转换步骤完成的。该流程包含一系列节点,这些节点表示数据的导入和您所执行的转换。有关节点的示例,请参见下图。

上图显示了具有两个节点的 Data Wrangler 流。来源-采样节点显示您从中导入数据的数据源。数据类型节点表示 Data Wrangler 已执行转换以将数据集转换为可用格式。
您添加到 Data Wrangler 流的每个转换都将显示为一个附加节点。有关您可以添加的转换的信息,请参阅转换数据。下图显示了一个 Data Wrangler 流程,该流程具有重命名列节点,用于更改数据集中列的名称。
您可以将数据转换导出为以下内容:
-
Amazon S3
-
SageMaker 管道
-
亚马逊 SageMaker 功能商店
-
Python
重要
我们建议您使用 IAMAmazonSageMakerFullAccess
托管策略授予使用 Data Wrangler 的Amazon权限。如果您不使用托管策略,则可以使用 IAM 策略向 Data Wrangler 访问 Amazon S3 存储桶。有关策略的更多信息,请参阅安全和权限。
当您导出数据流时,您需要为所使用的Amazon资源付费。您可以使用成本分配标签来组织和管理这些资源的成本。您可以为用户配置文件创建这些标签,Data Wrangler 会自动将它们应用于用于导出数据流的资源。有关更多信息,请参阅使用成本分配标签。
导出到 Amazon S3
Data Wrangler 使您能够将数据导出到 Amazon S3 存储桶中的某个位置。您可以使用以下方法之一指定位置:
-
目标节点 — Data Wrangler 在处理数据后存储数据的位置。
-
导出到-将转换后生成的数据导出到 Amazon S3。
-
导出数据-对于小型数据集,可以快速导出已转换的数据。
使用以下各节了解有关每个方法的更多信息。
当您将数据流导出到 Amazon S3 存储桶时,Data Wrangler 会将流量文件的副本存储在 S3 存储桶中。它将流文件存储在 data_wrangler_ flows 前缀下。如果您使用默认 Amazon S3 存储桶来存储您的流程文件,它将使用以下命名约定:sagemaker-
。例如,如果您的账户号位于 111122223333,则导入的数据集存储在 us-east-1,则导入的数据集存储在region
-account
number
sagemaker-us-east-1-111122223333
。在此示例中,您在 us-east-1 中创建的.flow 文件存储在s3://sagemaker-
。region
-account
number
/data_wrangler_flows/
导出到 SageMaker 管道
当您想要构建和部署大规模机器学习 (ML) 工作流程时,可以使用 Pi SageMaker pelines 创建管理和部署 SageMaker 任务的工作流程。使用 SageMaker Pipelines,您可以构建工作流程来管理 SageMaker 数据准备、模型训练和模型部署任务。您可以使用Pipelines SageMaker 提供的第一方算 SageMaker 法。有关 SageMaker 管道的更多信息,请参阅SageMaker 管道。
当您将数据流中的一个或多个步骤导出到 SageMaker 管道时,Data Wrangler 会创建一个 Jupyter 笔记本,您可以使用它来定义、实例化、运行和管理管道。
使用 Jupyter 笔记本创建流水线
使用以下过程创建 Jupyter 笔记本以将您的 Data Wrangler 流导出到 Pipel SageMaker ines。
使用以下步骤生成 Jupyter 笔记本并运行它以将 Data Wrangler 流导出到 SageMaker 管道。
-
选择要导出的节点旁边的 +。
-
选择 “导出到”。
-
选择SageMaker 管道(通过 Jupyter 笔记本)。
-
运行 Jupyter 笔记本。

你可以使用 Data Wrangler 制作的 Jupyter 笔记本来定义管道。该管道包括由您的 Data Wrangler 流程定义的数据处理步骤。
您可以通过在笔记本的以下代码中将步骤添加到steps
列表中,将其他步骤添加到您的工作流中:
pipeline = Pipeline( name=pipeline_name, parameters=[instance_type, instance_count], steps=[step_process], #Add more steps to this list to run in your Pipeline )
有关定义管道的信息,请参阅 “定义 SageMaker管道”。
导出到推理端点
在推断时使用 Data Wrangler 流程处理数据。您可以通过 Data Wrangler 流程和机器学习模型创建 SageMaker 串行推理流水线。你可以使用自己的模型,也可以使用我们提供的笔记本电脑,使用你在 Data Wrangler 流程中转换的数据,通过 Amazon A SageMaker utopilot 或 XGBoost 训练模型。
该流水线提供了执行批量或实时推断的能力。您也可以将 Data Wrangler 流程添加到 SageMaker 模型注册表中。有关托管式模型的更多信息,请参阅在一个容器中托管多个模型,位于一个端点后面。
当您将数据流中的一个或多个步骤导出到推理端点时,Data Wrangler 会创建一个 Jupyter 笔记本,您可以使用它来定义、实例化、运行和管理推理管道。
使用 Jupyter 笔记本创建推理端点
使用以下过程导出您的 Data Wrangler 流程以创建推理流水线。
要使用 Jupyter 笔记本创建推理,请执行以下操作。
-
选择要导出的节点旁边的 +。
-
选择 “导出到”。
-
选择SageMaker 推理流水线(通过 Jupyter 笔记本)。
-
运行 Jupyter 笔记本。
导出到 Python 代码
要将数据流中的所有步骤导出到可以手动集成到任何数据处理工作流程中的 Python 文件,请使用以下步骤。
使用以下过程生成 Jupyter 笔记本并运行它以将您的 Data Wrangler 流程导出到 Python Code。
-
选择要导出的节点旁边的 +。
-
选择 “导出到”。
-
选择 Python 代码。
-
运行 Jupyter 笔记本。

您可能需要配置 Pyth 脚本以使其在管道中运行。例如,如果你正在运行 Spark 环境,请确保你在有权访问Amazon资源的环境中运行脚本。
导出到亚马逊 SageMaker 功能商店
您可以使用 Data Wrangler 将您创建的功能导出到亚马逊 SageMaker 功能商店。要素是数据集中的一列。Feature Store 是功能及其相关元数据的集中存储。您可以使用 Feature Store 创建、共享和管理机器学习 (ML) 开发的精选数据。集中存储使您的数据更易于发现和重复使用。有关功能商店的更多信息,请参阅亚马逊 SageMaker 功能商店。
功能存储中的核心概念是功能组。要素组是要素及其记录(观测值)和相关元数据的集合。它类似于数据库中的表。
您可以使用 Data Wranger 执行下列操作之一:
-
使用新记录更新现有要素组。记录是数据集中的观测值。
-
从 Data Wrangler 流程中的节点创建新功能组。Data Wrangler 将数据集中的观测结果作为记录添加到要素组中。
如果您要更新现有要素组,则数据集的架构必须与要素组的架构相匹配。要素组中的所有记录都将替换为数据集中的观测值。
您可以使用 Jupyter 笔记本或目标节点使用数据集中的观测值更新要素组。
如果您采用 Iceberg 表格式的功能组具有自定义的离线商店加密密钥,请务必向用于 Amazon SageMaker Processing 任务的 IAM 授予使用该密钥的权限。您至少必须授予它对您写入到 Amazon S3 的数据的权限。要授予权限,请授予 IAM 角色使用GenerateDataKey。有关授予 IAM 角色使用Amazon KMS密钥的权限的更多信息,请参阅https://docs.amazonaws.cn/kms/latest/developerguide/key-policies.html
笔记本使用这些配置来创建功能组,大规模处理您的数据,然后将处理后的数据提取到您的在线和离线功能存储中。要了解更多信息,请参阅数据源和提取。
重新调整变换到整个数据集并将其导出
导入数据时,Data Wrangler 使用数据样本来应用编码。默认情况下,Data Wrangler 使用前 50,000 行作为样本,但您可以导入整个数据集或使用不同的采样方法。有关更多信息,请参阅导入:
以下转换使用您的数据在数据集中创建列:
如果您使用采样来导入数据,则前面的转换仅使用样本中的数据来创建列。转换可能没有使用所有相关数据。例如,如果您使用 Encode Cat egoric 变换,则整个数据集中可能存在示例中不存在的类别。
您可以使用目标节点或 Jupyter 笔记本将转换重新调整到整个数据集。当 Data Wrangler 导出流程中的转换时,它会创建 SageMaker 处理作业。处理任务完成后,Data Wrangler 将以下文件保存在默认 Amazon S3 位置或您指定的 S3 位置:
-
Data Wrangler 流程文件,用于指定根据数据集重新调整的转换
-
应用了重新调整变换的数据集
您可以在 Data Wrangler 中打开 Data Wrangler 流文件并将转换应用于不同的数据集。例如,如果您已将转换应用于训练数据集,则可以打开并使用 Data Wrangler 流文件将转换应用于用于推断的数据集。
有关使用目标节点重新调整转换和导出的信息,请参阅以下页面:
使用以下过程运行 Jupyter 笔记本来重新调整转换并导出数据。
要运行 Jupyter 笔记本并重新调整转换并导出 Data Wrangler 流程,请执行以下操作。
-
选择要导出的节点旁边的 +。
-
选择 “导出到”。
-
选择要将数据导出到的位置。
-
对于
refit_trained_params
对象,设置refit
为True
。 -
对于字
output_flow
段,指定带有重新调整转换的输出流文件的名称。 -
运行 Jupyter 笔记本。
创建自动处理新数据的时间表
如果您定期处理数据,则可以创建计划以自动运行处理作业。例如,您可以创建一个在获得新数据时自动运行处理任务的计划。有关处理任务的更多信息,请参阅导出到 Amazon S3和导出到亚马逊 SageMaker 功能商店。
创建任务时,必须指定有权创建任务的 IAM 角色。默认情况下,您访问 Data Wrangler 所用的 IAM 角色位于SageMakerExecutionRole
。
以下权限允许 Data Wrangler 访问 EventBridge 和 EventBridge 允许运行处理作业:
-
将以下Amazon托管策略添加到为 Data Wrangler 提供使用权限的 Amazon SageMaker Studio 执行角色 EventBridge:
arn:aws:iam::aws:policy/AmazonEventBridgeFullAccess
有关策略的信息,请参阅的Amazon托管策略 EventBridge。
-
将以下策略添加到您在 Data Wrangler 中创建任务时指定的 IAM 角色中:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:StartPipelineExecution", "Resource": "arn:aws:sagemaker:
Region
:Amazon-account-id
:pipeline/data-wrangler-*" } ] }如果您使用默认 IAM 角色,则将前面的策略添加到 Amazon SageMaker Studio 执行角色。
向角色添加以下信任策略 EventBridge 以允许代入该角色。
{ "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" }
重要
当你创建时间表时,Data Wrangler 会创建一个 ieventRule
n EventBridge。您创建的事件规则和用于运行处理任务的实例都需要付费。
有关 EventBridge 定价的信息,请参阅亚马逊 EventBridge 定价
您可以使用以下方法之一设置计划
以下各节提供了创建任务的过程。
您可以使用 Amazon SageMaker Studio 查看计划运行的任务。您的处理任务在 SageMaker 管道中运行。每个处理作业都有自己的流水线。它在管道内作为处理步骤运行。您可以查看在管道中创建的计划。有关查看管道的信息,请参阅查看管道。
使用以下过程查看您调度的作业。
要查看您调度的作业,请执行以下操作。
-
打开亚马逊 SageMaker 工作室。
-
开放 SageMaker 管道
-
查看您创建的任务的管道。
运行作业的管道使用作业名称作为前缀。例如,如果您创建了名为的任务
housing-data-feature-enginnering
,则管道的名称为data-wrangler-housing-data-feature-engineering
。 -
选择包含您的任务的管道。
-
查看管道的状态。状态为 “成功” 的管道已成功运行处理作业。
要停止处理作业的运行,请执行以下操作:
要停止处理作业的运行,请删除指定时间表的事件规则。删除事件规则会使与该计划关联的所有作业停止运行。有关删除规则的信息,请参阅禁用或删除亚马逊 EventBridge 规则。
您也可以停止和删除与时间表关联的管道。有关停止管道的信息,请参阅StopPipelineExecution。有关将管道删除的信息,请参阅DeletePipeline。