导出 - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

导出

在 Data Wrangler 流中,可以将所做的部分或全部转换导出到数据处理管道中。

Data Wrangler 流是您对数据执行的一系列数据准备步骤。在数据准备过程中,需要对数据进行一次或多次转换。每次转换都是使用转换步骤完成的。该流包含一系列节点,这些节点代表您的数据导入和您执行的转换。有关节点的示例,请参阅下面的图像。

Data Wrangler 控制台中的数据流示例。

上图显示了带两个节点的 Data Wrangler 流。来源 – 采样节点显示您从中导入数据的数据来源。数据类型节点指示 Data Wrangler 已执行转换将数据集转换为可用格式。

添加到 Data Wrangler 流的每个转换都显示为一个附加节点。有关可添加的转换的信息,请参阅转换数据。下图显示了一个 Data Wrangler 流,该流具有用于更改数据集内列名的重命名列节点。

可以将数据转换导出到以下位置:

  • Amazon S3

  • 管线

  • Amazon SageMaker 专题商店

  • Python Code

重要

我们建议您使用IAMAmazonSageMakerFullAccess托管策略来授予使用 Data Wrangler 的 AWS 权限。如果您不使用托管策略,则可以使用授予 Data Wrangler 访问 Amazon S3 存储桶的权限的IAM策略。有关托管式策略的更多信息,请参阅安全性和权限

导出数据流时,您需要为所使用的 AWS 资源付费。可以使用成本分配标签来组织和管理这些资源的成本。您负责为用户配置文件创建这些标签,Data Wrangler 会自动将标签应用于用来导出数据流的资源。有关更多信息,请参阅使用成本分配标签

导出到 Amazon S3

利用 Data Wrangler,您可以将数据导出到 Amazon S3 存储桶中的某个位置。您可以使用以下方法之一指定该位置:

  • 目标节点 – Data Wrangler 在处理完数据后存储数据的位置。

  • 导出目标 – 将转换后生成的数据导出到 Amazon S3。

  • 导出数据 – 对于小数据集,可以快速导出转换的数据。

使用以下部分详细了解这些方法中的每种方法。

Destination Node

如果您要将已执行的一系列数据处理步骤输出到 Amazon S3,可以创建一个目标节点。处理完数据后,目标节点会指示 Data Wrangler 将数据存储在什么位置。创建目标节点后,您可以创建一个处理作业来输出数据。处理任务是 Amazon 的 SageMaker 处理任务。使用目标节点时,处理作业会运行将已转换的数据输出到 Amazon S3 所需的计算资源。

可以使用目标节点导出您在 Data Wrangler 流中进行的某些转换或所有转换。

可以使用多个目标节点来导出不同的转换或转换集。以下示例显示了单个 Data Wrangler 流中的两个目标节点。

数据流示例,显示了 Data Wrangler 控制台中的两个目标节点。

可以使用以下过程创建目标节点并导出到 Amazon S3 存储桶。

要导出数据流,您需要创建目标节点以及用于导出数据的 Data Wrangler 作业。创建 Data Wrangler 作业会启动一个 SageMaker 处理任务来导出您的流程。您创建目标节点后,可以选择要导出的目标节点。

注意

可以在 Data Wrangler 流中选择创建作业,查看使用处理作业的说明。

使用以下过程创建目标节点。

  1. 选择代表要导出的转换的节点旁边的 +

  2. 选择添加目标

    显示如何在 Data Wrangler 控制台中添加目的地的数据流示例。
  3. 选择 Amazon S3

    显示如何在 Data Wrangler 控制台中添加目的地的数据流示例。
  4. 指定以下字段。

    • 数据集名称 – 您为要导出的数据集指定的名称。

    • 文件类型 – 要导出的文件的格式。

    • 分隔符(CSV仅限于 Parquet 文件)-用于分隔其他值的值。

    • 压缩(CSV仅限于 Parquet 文件)-用于减小文件大小的压缩方法。可以使用以下压缩方法:

      • bzip2

      • deflate

      • gzip

    • (可选)Amazon S3 位置 – 用于输出文件的 S3 位置。

    • (可选)分区数 – 作为处理作业输出正在写入的数据集的数量。

    • (可选)按列分区 – 写入列中具有相同唯一值的所有数据。

    • (可选)推理参数 – 选择生成推理构件会将您在 Data Wrangler 流中使用的所有转换应用于进入推理管道的数据。管道中的模型会对转换后的数据进行预测。

  5. 选择添加目标

使用以下过程创建处理作业。

数据流页面创建作业,然后选择要导出的目标节点。

注意

可以在 Data Wrangler 流中选择创建作业,查看创建处理作业的说明。

  1. 选择创建作业。下图显示了在您选择创建作业后显示的窗格。

    示例数据流在 Data Wrangler 控制台中创建任务窗格。
  2. 对于作业名称,指定导出作业的名称。

  3. 选择要导出的目标节点。

  4. (可选)指定 AWS KMS 密钥ARN。 AWS KMS 密钥是一种加密密钥,可用于保护您的数据。有关 AWS KMS 密钥的更多信息,请参阅AWS Key Management Service

  5. (可选)在已训练参数下,如果您已完成以下操作,请选择重新拟合

    • 已对数据集进行采样

    • 已应用了转换,即利用您的数据在数据集内创建新列

    有关重新拟合已对整个数据集所做的转换的更多信息,请参阅重新拟合整个数据集的转换并导出

    注意

    对于图像数据,Data Wrangler 会导出您对所有图像所做的转换。重新拟合转换不适用于您的用例。

  6. 选择配置作业。下图显示了配置作业页面。

    在 Data Wrangler 控制台中配置作业页面的数据流示例。
  7. (可选)配置 Data Wrangler 作业。可以执行以下配置:

    • 作业配置

    • Spark 内存配置

    • 网络配置

    • 标签

    • 参数

    • 关联日程安排

  8. 选择运行

Export to

作为使用目标节点的替代方案,可以使用导出目标选项,使用 Jupyter 笔记本将 Data Wrangler 流导出到 Amazon S3。可以在 Data Wrangler 流中选择任何数据节点并导出。导出数据节点时,会导出该节点所代表的转换及其之前的转换。

使用以下过程生成 Jupyter 笔记本并运行,将您的 Data Wrangler 流导出到 Amazon S3。

  1. 选择要导出的节点旁边的 +

  2. 选择导出目标

  3. 选择 Amazon S3(通过 Jupyter 笔记本)。

  4. 运行 Jupyter 笔记本。

    显示如何在 Data Wrangler 控制台中导出 Data Wrangler 流程的示例数据流。

当你运行笔记本时,它会以与 Data Wrangler 流程相同 AWS 区域 的方式导出你的数据流(.flow 文件)。

笔记本提供了可用于配置处理作业及其输出的数据的选项。

重要

我们为您提供作业配置,以便配置您的数据输出。对于分区和驱动程序内存选项,我们强烈建议不要指定配置,除非您已了解这些配置。

作业配置下,可以配置以下内容:

  • output_content_type – 输出文件的内容类型。使用 CSV 作为默认格式,但您可以指定 Parquet

  • delimiter— 写入CSV文件时用于分隔数据集中的值的字符。

  • compression – 如果已设置,则压缩输出文件。默认情况下使用 gzip 作为压缩格式。

  • num_partitions – Data Wrangler 作为输出写入的分区或文件的数量。

  • partition_by – 用于对输出进行分区的列的名称。

要将输出文件格式从CSV更改为 Parquet,请将值从更改"CSV""Parquet"。对于前面的其余字段,取消注释包含要指定的字段的行。

(可选)配置 Spark 集群驱动程序内存下,可以在 config 字典中为作业配置 Spark 属性,例如 Spark 驱动程序内存。

下面显示了 config 字典。

config = json.dumps({ "Classification": "spark-defaults", "Properties": { "spark.driver.memory": f"{driver_memory_in_mb}m", } })

要将配置应用于处理作业,请取消注释以下行:

# data_sources.append(ProcessingInput( # source=config_s3_uri, # destination="/opt/ml/processing/input/conf", # input_name="spark-config", # s3_data_type="S3Prefix", # s3_input_mode="File", # s3_data_distribution_type="FullyReplicated" # ))
Export data

如果您想快速导出小型数据集进行转换,可以使用导出数据方法。当您开始选择导出数据时,Data Wrangler 会同步工作,以导出您转换到 Amazon S3 的数据。在 Data Wrangler 完成数据导出或您取消操作之前,您无法使用 Data Wrangler。

有关在 Data Wrangler 流中使用导出数据方法的信息,请参阅以下过程。

要使用导出数据方法,请执行以下操作:

  1. 在 Data Wrangler 流中选择一个节点,方法是将其打开(双击)。

    显示如何在 Data Wrangler 控制台中导出数据的示例数据流。
  2. 配置导出数据的方法。

  3. 选择导出数据

当您将数据流导出到 Amazon S3 存储桶时,Data Wrangler 会将流文件的副本存储在 S3 存储桶中。它将流文件存储在 data_wrangler_flows 前缀下。如果您使用默认的 Amazon S3 存储桶来存储流文件,它将使用以下命名约定:sagemaker-region-account number。例如,如果你的账号是 111122223333,并且你在 us-east-1 中使用 Studio Classic,则导入的数据集将存储在中。sagemaker-us-east-1-111122223333在本示例中,您在 us-east-1 中创建的 .flow 文件存储在 s3://sagemaker-region-account number/data_wrangler_flows/ 中。

导出到管道

当你想要构建和部署大规模机器学习 (ML) 工作流程时,你可以使用 Pipelines 来创建管理和部署 SageMaker 作业的工作流程。借助 Pipelines,您可以构建用于管理 SageMaker 数据准备、模型训练和模型部署作业的工作流。您可以使用 Pipelines 使用 SageMaker 提供的第一方算法。有关管道的更多信息,请参阅SageMaker 管道

当您将数据流中的一个或多个步骤导出到 Pipelines 时,Data Wrangler 会创建一个 Jupyter 笔记本,您可以使用它来定义、实例化、运行和管理管道。

使用 Jupyter 笔记本创建管道

使用以下过程创建 Jupyter 笔记本,将您的 Data Wrangler 流程导出到 Pipelines。

使用以下过程生成 Jupyter 笔记本并运行它以将 Data Wrangler 流程导出到 Pipelines。

  1. 选择要导出的节点旁边的 +

  2. 选择导出目标

  3. 选择 “管道”(通过 Jupyter 笔记本)。

  4. 运行 Jupyter 笔记本。

显示如何在 Data Wrangler 控制台中导出 Data Wrangler 流程的示例数据流。

您可以使用 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 流程中创建 SageMaker 串行推理管道,在推理时使用 Data Wrangler 流程处理数据。推理管道是一系列步骤,可用于生成对新数据进行预测的经过训练的模型。Data Wrangler 中的串行推理管道可转换原始数据,并将数据提供给机器学习模型进行预测。您可以在 Studio Classic 中通过 Jupyter 笔记本创建、运行和管理推理管道。有关访问笔记本的更多信息,请参阅使用 Jupyter 笔记本创建推理端点

在笔记本中,您可以训练机器学习模型,也可以指定已训练的模型。你可以使用 Amazon A SageMaker utopilotXGBoost,也可以使用你在 Data Wrangler 流程中转换的数据来训练模型。

利用管道,您可以执行批量或实时推理。您也可以将 Data Wrangler 流程添加到 “ SageMaker 模型注册表”。有关托管模型的更多信息,请参阅多模型端点

重要

如果 Data Wrangler 流具有以下转换,则无法将该流导出到推理端点:

  • 联接

  • 串联

  • Group by (分组依据)

如果必须使用上述转换来准备您的数据,请使用以下过程。

使用不支持的转换为推理准备数据
  1. 创建 Data Wrangler 流。

  2. 应用前面的不受支持的转换。

  3. 将数据导出到 Amazon S3 存储桶。

  4. 创建单独的 Data Wrangler 流。

  5. 导入您在前面的流中导出的数据。

  6. 应用其余的转换。

  7. 使用我们提供的 Jupyter 笔记本创建串行推理管道。

有关将数据导出到 Amazon S3 存储桶的信息,请参阅导出到 Amazon S3。有关打开用于创建串行推理管道的 Jupyter 笔记本的信息,请参阅使用 Jupyter 笔记本创建推理端点

Data Wrangler 会忽略那些在推理时删除数据的转换。例如,如果您使用删除缺失项配置,Data Wrangler 会忽略处理缺失值转换。

如果您重新拟合整个数据集的转换,则转换会延续到您的推理管道。例如,如果使用了中位数来估算缺失值,则重新拟合转换所得的中位数将应用于您的推理请求。在使用 Jupyter 笔记本或将数据导出到推理管道时,可以重新拟合 Data Wrangler 流中的转换。有关重新拟合转换的信息,请参阅重新拟合整个数据集的转换并导出

串行推理管道支持以下数据类型的输入和输出字符串。每个数据类型都有一组要求。

支持的数据类型
  • text/csv— 字符串的数据类型 CSV

    • 字符串不能具有标头。

    • 用于推理管道的特征必须与训练数据集内的特征顺序相同。

    • 特征之间必须有一个逗号分隔符。

    • 记录必须使用一个换行符分隔。

    以下是您可以在推理请求中提供的格式有效的CSV字符串示例。

    abc,0.0,"Doe, John",12345\ndef,1.1,"Doe, Jane",67890
  • application/json— 字符串的数据类型 JSON

    • 数据集内用于推理管道的特征的顺序必须与训练数据集内的特征顺序相同。

    • 数据必须具有特定架构。可以将架构定义为具有一组 features 的单个 instances 对象。每个 features 对象都表示一个观测值。

    以下是您可以在推理请求中提供的格式有效的JSON字符串示例。

    { "instances": [ { "features": ["abc", 0.0, "Doe, John", 12345] }, { "features": ["def", 1.1, "Doe, Jane", 67890] } ] }

使用 Jupyter 笔记本创建推理端点

按照以下过程操作,导出您的 Data Wrangler 流以创建推理管道。

要使用 Jupyter 笔记本创建推理管道,请执行以下操作。

  1. 选择要导出的节点旁边的 +

  2. 选择导出目标

  3. 选择SageMaker 推理管道(通过 Jupyter 笔记本)。

  4. 运行 Jupyter 笔记本。

当您运行 Jupyter 笔记本时,会创建一个推理流构件。推理流构件是一个 Data Wrangler 流文件,其中包含用于创建串行推理管道的附加元数据。您正导出的节点包含来自前面节点的所有转换。

重要

Data Wrangler 需要推理流构件来运行推理管道。您不能将自己的流文件用作构件。您必须使用前面的步骤创建构件。

导出到 Python Code

要将数据流中的所有步骤导出到可手动集成到任何数据处理工作流的 Python 文件,请使用以下步骤。

使用以下过程生成 Jupyter 笔记本并运行,将您的 Data Wrangler 流导出到 Python Code。

  1. 选择要导出的节点旁边的 +

  2. 选择导出目标

  3. 选择 Python Code

  4. 运行 Jupyter 笔记本。

显示如何在 Data Wrangler 控制台中导出 Data Wrangler 流程的示例数据流。

您可能需要配置 Python 脚本才能在管道中运行。例如,如果您运行的是 Spark 环境,请确保在有权访问 AWS 资源的环境中运行脚本。

导出到 Amazon SageMaker 特色商店

您可以使用 Data Wrangler 将您创建的功能导出到亚马逊 SageMaker 功能商店。特征是数据集内的一列。Feature Store 是特征及其相关元数据的集中存储位置。您可以使用 Feature Store 创建、共享和管理用于机器学习 (ML) 开发的精选数据。集中式存储能够让您的数据更易于发现和重复使用。有关功能商店的更多信息,请参阅 Amazon F SageMaker eature Store

Feature Store 中的一个核心概念是特征组。特征组是特征及其记录(观测值)和关联元数据的集合。它类似于数据库中的表。

可以使用 Data Wrangler 执行下列操作之一:

  • 使用新记录更新现有特征组。记录是数据集内的观测值。

  • 从您的 Data Wrangler 流中的节点创建新的特征组。Data Wrangler 会将数据集内的观测值作为记录添加到特征组中。

如果要更新现有特征组,则数据集的架构必须与该特征组的架构相匹配。特征组中的所有记录都将替换为数据集内的观测值。

可以通过 Jupyter 笔记本或目标节点,使用数据集内的观测值更新您的特征组。

如果您的功能组采用 Iceberg 表格式具有自定义的离线商店加密密钥,请务必授予用于亚马逊 SageMaker Processing 任务的密钥的使用权限。IAM必须至少向其授予对正写入 Amazon S3 的数据进行加密的权限。要授予权限,请让IAM角色能够使用GenerateDataKey。有关向IAM角色授予使用 AWS KMS 密钥的权限的更多信息,请参阅 https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html

Destination Node

如果您要将已执行的一系列数据处理步骤输出到特征组,可以创建一个目标节点。在创建和运行目标节点时,Data Wrangler 会使用您的数据更新特征组。您还可以从目标节点 UI 创建新的特征组。创建目标节点后,您可以创建一个处理作业来输出数据。处理任务是 Amazon 的 SageMaker 处理任务。使用目标节点时,该作业会运行将已转换的数据输出到特征组所需的计算资源。

可以使用目标节点导出您在 Data Wrangler 流中进行的某些转换或所有转换。

通过以下过程创建目标节点,以使用数据集内的观测值更新特征组。

要使用目标节点更新特征组,请执行以下操作。

注意

可以在 Data Wrangler 流中选择创建作业,查看使用处理作业更新特征组的说明。

  1. 选择包含要导出的数据集的节点旁边的 + 号。

  2. 在 “添加目的地” 下,选择 “SageMaker 功能商店”。

    显示如何在 Data Wrangler 控制台中添加目的地的数据流示例。
  3. 选择(双击)该特征组。Data Wrangler 会检查特征组的架构是否与您用于更新特征组的数据架构相匹配。

  4. (可选)对于同时具有在线存储和离线存储的特征组,选择仅导出到离线存储。此选项仅使用数据集内的观测值更新离线存储。

  5. 在 Data Wrangler 验证您的数据集架构后,选择添加

通过以下过程,使用数据集内的数据创建新的特征组。

可以通过以下方式之一存储特征组:

  • 在线 – 低延迟、高可用性缓存,用于可提供实时记录查找的特征组。使用在线存储可以快速访问特征组中的记录的最新值。

  • 离线 – 将特征组的数据存储在 Amazon S3 存储桶中。当您不需要低延迟(亚秒)读取时,可以离线存储数据。可以使用离线存储来存储在进行数据探究、模型训练和批处理推理时使用的功能。

  • 在线和离线 – 将您的数据存储于在线存储和离线存储中。

要使用目标节点创建特征组,请执行以下操作。

  1. 选择包含要导出的数据集的节点旁边的 + 号。

  2. 在 “添加目的地” 下,选择 “SageMaker 功能商店”。

  3. 选择创建特征组

  4. 在以下对话框中,如果您的数据集没有事件时间列,请选择创建 “EventTime” 列

  5. 选择下一步

  6. 选择 “复制JSON架构”。创建特征组时,会将架构粘贴到特征定义中。

  7. 选择创建

  8. 特征组名称中,为您的特征组指定名称。

  9. 描述(可选)中,指定描述以使您的特征组更便于搜索。

  10. 要为在线存储创建特征组,请执行以下操作。

    1. 选择启用在线存储

    2. 对于在线商店加密密钥,请指定 AWS 托管加密密钥或您自己的加密密钥。

  11. 要为离线存储创建特征组,请执行以下操作。

    1. 选择启用离线存储。为以下字段指定值:

      • S3 存储桶名称 – 存储特征组的 Amazon S3 存储桶的名称。

      • (可选)数据集目录名称 – 用于存储特征组的 Amazon S3 前缀。

      • IAM角色 ARN-有权访问功能商店的IAM角色。

      • 表格格式 – 离线存储的表格格式。可以指定 GlueIcebergGlue 为默认格式。

      • 离线存储加密密钥 – 默认情况下,Feature Store 使用 AWS Key Management Service 托管式密钥,不过您可以使用该字段来指定自己的密钥。

    2. 为以下字段指定值:

      • S3 存储桶名称 – 存储特征组的存储桶的名称。

      • (可选)数据集目录名称 – 用于存储特征组的 Amazon S3 前缀。

      • IAM角色 ARN-有权访问 IAM feature store 的角色。

      • 离线存储加密密钥 – 默认情况下,Feature Store 使用 AWS 托管式密钥,不过您可以使用该字段来指定自己的密钥。

  12. 选择继续

  13. 选择JSON

  14. 删除窗口中的占位符括号。

  15. 粘贴步骤 6 中的JSON文本。

  16. 选择继续

  17. 对于 RECORDIDENTIFIERFEATURENAME,请选择数据集中每条记录具有唯一标识符的列。

  18. 对于 EVENTTIMEFEATURENAME,请选择包含时间戳值的列。

  19. 选择继续

  20. (可选)添加标签,使您的特征组更容易搜索到。

  21. 选择继续

  22. 选择创建特征组

  23. 导航回您的 Data Wrangler 流,然后选择特征组搜索栏旁边的刷新图标。

注意

如果您已经为流中的特征组创建了目标节点,则无法为同一特征组创建其他目标节点。如果要为同一个特征组创建另一个目标节点,则必须创建另一个流文件。

可以使用以下过程创建 Data Wrangler 作业。

数据流页面创建作业,然后选择要导出的目标节点。

  1. 选择创建作业。下图显示了在您选择创建作业后显示的窗格。

  2. 对于作业名称,指定导出作业的名称。

  3. 选择要导出的目标节点。

  4. (可选)在 “输出KMS密钥” 中ARN,指定密 AWS KMS 钥的、ID 或别名。密KMS钥是加密密钥。对于作业的输出数据,可以使用密钥进行加密。有关 AWS KMS 密钥的更多信息,请参阅AWS Key Management Service

  5. 下图显示了配置作业页面,其中作业配置选项卡处于打开状态。

    在 Data Wrangler 控制台中创建任务页面的数据流示例。

    (可选)在已训练参数下,如果您已完成以下操作,请选择重新拟合

    • 已对数据集进行采样

    • 已应用了转换,即利用您的数据在数据集内创建新列

    有关重新拟合已对整个数据集所做的转换的更多信息,请参阅 重新拟合整个数据集的转换并导出

  6. 选择配置作业

  7. (可选)配置 Data Wrangler 作业。可以执行以下配置:

    • 作业配置

    • Spark 内存配置

    • 网络配置

    • 标签

    • 参数

    • 关联日程安排

  8. 选择运行

Jupyter notebook

使用以下步骤将 Jupyter 笔记本导出到亚马逊 SageMaker 功能商店。

使用以下过程生成 Jupyter 笔记本并运行,将您的 Data Wrangler 流导出到 Feature Store。

  1. 选择要导出的节点旁边的 +

  2. 选择导出目标

  3. 选择 Amazon F SageMaker eature Store(通过 Jupyter 笔记本)。

  4. 运行 Jupyter 笔记本。

显示如何在 Data Wrangler 控制台中导出 Data Wrangler 流程的示例数据流。

运行 Jupyter 笔记本会运行 Data Wrangler 作业。运行 Data Wrangler 作业会启动 SageMaker处理作业。处理作业会将流提取到在线和离线特征存放区中。

重要

用于运行此笔记本的IAM角色必须附加以下 AWS 托管策略:AmazonSageMakerFullAccessAmazonSageMakerFeatureStoreAccess

创建特征组时,您只需要启用一个在线或离线特征存放区。您也可以同时启用这两个特征存放区。要禁用在线存储创建,请将 EnableOnlineStore 设置为 False

# Online Store Configuration online_store_config = { "EnableOnlineStore": False }

笔记本使用您导出的数据框的列名和类型来创建特征组架构,该架构用于创建特征组。特征组是在特征存放区中为描述记录而定义的一组特征。特征组定义了其中包含的架构和特征。特征组定义由特征列表、记录标识符特征名称、事件时间特征名称以及其在线存储和离线存储的配置组成。

特征组中的每个特征可以具有以下类型之一:字符串分数整数。如果导出的数据框中的某列不是这些类型之一,则默认为 String

以下是特征组架构的示例。

column_schema = [ { "name": "Height", "type": "long" }, { "name": "Input", "type": "string" }, { "name": "Output", "type": "string" }, { "name": "Sum", "type": "string" }, { "name": "Time", "type": "string" } ]

此外,您必须指定记录标识符名称和事件时间特征名称:

  • 记录标识符名称是特征的名称,其值可以唯一标识在特征存放区中定义的记录。在线存储中仅存储每个标识符值的最新记录。记录标识符特征名称必须是特征定义名称之一。

  • 事件时间特征名称是将记录的 EventTime 存储在特征组中的特征的名称。EventTime 是发生新事件的时间点,该事件对应于特征中记录的创建或更新。特征组中的所有记录都必须具有相应的 EventTime

笔记本使用这些配置来创建特征组,大规模处理您的数据,然后将处理后的数据提取到您的在线和离线特征存放区中。要了解更多信息,请参阅数据来源和摄取

笔记本使用这些配置来创建特征组,大规模处理您的数据,然后将处理后的数据提取到您的在线和离线特征存放区中。要了解更多信息,请参阅数据来源和摄取

重新拟合整个数据集的转换并导出

导入数据时,Data Wrangler 会使用数据样本来应用编码。默认情况下,Data Wrangler 使用前 50000 行作为样本,不过您可以导入整个数据集或使用不同的采样方法。有关更多信息,请参阅 导入

以下转换使用您的数据,在数据集内创建列:

如果您已使用采样来导入数据,则前面的转换仅使用样本中的数据来创建列。转换可能没有使用所有相关数据。例如,如果您使用对分类进行编码转换,则整个数据集内可能存在样本中不存在的类别。

您可以使用目标节点或 Jupyter 笔记本重新拟合整个数据集的转换。当 Data Wrangler 在流程中导出转换时,它会创建一个 SageMaker 处理作业。当处理作业完成后,Data Wrangler 会将以下文件保存到默认 Amazon S3 位置或您指定的 S3 位置:

  • Data Wrangler 流文件,用于指定要为数据集重新拟合的转换

  • 已应用了重新拟合转换的数据集

您可以在 Data Wrangler 中打开 Data Wrangler 流文件,然后将转换应用于不同的数据集。例如,如果您已将转换应用于训练数据集,则可以打开并使用 Data Wrangler 流文件将转换应用于用于推理的数据集。

有关使用目标节点重新拟合转换和导出的信息,请参阅以下页面:

使用以下步骤运行 Jupyter 笔记本来重新拟合转换并导出数据。

要运行 Jupyter 笔记本并重新拟合转换并导出 Data Wrangler 流,请执行以下操作。

  1. 选择要导出的节点旁边的 +

  2. 选择导出目标

  3. 选择要将数据导出到的位置。

  4. 对于 refit_trained_params 对象,将 refit 设置为 True

  5. 对于 output_flow 字段,指定带有重新拟合转换的输出流文件的名称。

  6. 运行 Jupyter 笔记本。

创建自动处理新数据的计划

如果您要定期处理数据,则可以创建一个计划来自动运行处理作业。例如,您可以创建一个计划,该计划在获得新数据时自动运行处理作业。有关处理作业的更多信息,请参阅 导出到 Amazon S3导出到 Amazon SageMaker 特色商店

创建任务时,必须指定有权创建该任务的IAM角色。默认情况下,您用于访问 Data Wrangler 的IAM角色是。SageMakerExecutionRole

以下权限允许 Data Wrangler 访问 EventBridge 和运行处理作业: EventBridge

  • 将以下 AWS 托管策略添加到 Amazon SageMaker Studio Classic 执行角色中,该角色为 Data Wrangler 提供使用权限: EventBridge

    arn:aws:iam::aws:policy/AmazonEventBridgeFullAccess

    有关该策略的更多信息,请参阅的AWS 托管策略 EventBridge

  • 将以下策略添加到您在 Data Wrangler 中创建任务时指定的IAM角色中:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:StartPipelineExecution", "Resource": "arn:aws:sagemaker:Region:AWS-account-id:pipeline/data-wrangler-*" } ] }

    如果您使用的是默认IAM角色,则可以将上述策略添加到 Amazon SageMaker Studio Classic 执行角色中。

    将以下信任策略添加到角色中 EventBridge 以允许代入该角色。

    { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" }
重要

当您创建计划时,Data Wrangler 会创建一个输入。eventRule EventBridge您需要为创建的事件规则以及用于运行处理作业的实例都支付费用。

有关 EventBridge 定价的信息,请参阅 Amazon EventBridge 定价。有关处理任务定价的信息,请参阅 Amazon SageMaker 定价

使用以下方法之一设置计划:

  • CRON表达式

    注意

    Data Wrangler 不支持以下表达式:

    • LW#

    • 天的缩写

    • 月份的缩写

  • RATE表达式

  • 重复 – 设置每小时或每天运行作业的时间间隔。

  • 特定时间 – 设置运行作业的特定日期和时间。

以下各个部分提供了作业创建过程。

CRON

使用以下步骤创建带有CRON表达式的计划。

要使用CRON表达式指定计划,请执行以下操作。

  1. 打开您的 Data Wrangler 流。

  2. 选择创建作业

  3. (可选)在输出KMS密钥中,指定一个 AWS KMS 密钥来配置作业的输出。

  4. 选择下一步,2. 配置作业

  5. 选择关联计划

  6. 选择创建新计划

  7. 对于计划名称,指定计划的名称。

  8. 对于 “运行频率”,选择CRON

  9. 指定有效的CRON表达式。

  10. 选择创建

  11. (可选)选择添加其他计划以按其他计划运行作业。

    注意

    您最多可以关联两个计划。这些计划是独立的,除非时间重叠,否则不会相互影响。

  12. 选择以下操作之一:

    • 计划并立即运行 – Data Wrangler 作业会立即运行,随后按计划运行。

    • 仅限计划 – Data Wrangler 作业仅按您指定的计划运行。

  13. 选择运行

RATE

使用以下步骤创建带有RATE表达式的计划。

要使用RATE表达式指定计划,请执行以下操作。

  1. 打开您的 Data Wrangler 流。

  2. 选择创建作业

  3. (可选)在输出KMS密钥中,指定一个 AWS KMS 密钥来配置作业的输出。

  4. 选择下一步,2. 配置作业

  5. 选择关联计划

  6. 选择创建新计划

  7. 对于计划名称,指定计划的名称。

  8. 对于运行频率,选择 Rate

  9. 对于,指定一个整数。

  10. 对于匹配程序,选择以下项之一:

    • 分钟

    • 小时

  11. 选择创建

  12. (可选)选择添加其他计划以按其他计划运行作业。

    注意

    您最多可以关联两个计划。这些计划是独立的,除非时间重叠,否则不会相互影响。

  13. 选择以下操作之一:

    • 计划并立即运行 – Data Wrangler 作业会立即运行,随后按计划运行。

    • 仅限计划 – Data Wrangler 作业仅按您指定的计划运行。

  14. 选择运行

Recurring

通过以下步骤创建定期运行作业的计划。

要使用CRON表达式指定计划,请执行以下操作。

  1. 打开您的 Data Wrangler 流。

  2. 选择创建作业

  3. (可选)在输出KMS密钥中,指定一个 AWS KMS 密钥来配置作业的输出。

  4. 选择下一步,2. 配置作业

  5. 选择关联计划

  6. 选择创建新计划

  7. 对于计划名称,指定计划的名称。

  8. 对于运行频率,确保默认选中重复

  9. 对于每 x 小时,指定作业在一天中运行的每小时频率。有效值为 123 范围的整数(含)。

  10. 对于日期,选择以下选项之一:

    • 每天

    • 周末

    • 工作日

    • 选择日期

    1. (可选)如果您选择了选择日期,请选择在一周中的哪几天运行作业。

    注意

    计划会每天重置。如果您计划每五小时运行一次作业,则作业将在一天中的以下时间运行:

    • 00:00

    • 05:00

    • 10:00

    • 15:00

    • 20:00

  11. 选择创建

  12. (可选)选择添加其他计划以按其他计划运行作业。

    注意

    您最多可以关联两个计划。这些计划是独立的,除非时间重叠,否则不会相互影响。

  13. 选择以下操作之一:

    • 计划并立即运行 – Data Wrangler 作业会立即运行,随后按计划运行。

    • 仅限计划 – Data Wrangler 作业仅按您指定的计划运行。

  14. 选择运行

Specific time

通过以下过程创建在特定时间运行作业的计划。

要使用CRON表达式指定计划,请执行以下操作。

  1. 打开您的 Data Wrangler 流。

  2. 选择创建作业

  3. (可选)在输出KMS密钥中,指定一个 AWS KMS 密钥来配置作业的输出。

  4. 选择下一步,2. 配置作业

  5. 选择关联计划

  6. 选择创建新计划

  7. 对于计划名称,指定计划的名称。

  8. 选择创建

  9. (可选)选择添加其他计划以按其他计划运行作业。

    注意

    您最多可以关联两个计划。这些计划是独立的,除非时间重叠,否则不会相互影响。

  10. 选择以下操作之一:

    • 计划并立即运行 – Data Wrangler 作业会立即运行,随后按计划运行。

    • 仅限计划 – Data Wrangler 作业仅按您指定的计划运行。

  11. 选择运行

您可以使用 Amazon SageMaker Studio Classic 查看计划运行的作业。您的处理任务在管道中运行。每个处理作业都有各自的管道。作业作为管道中的一个处理步骤运行。您可以查看已在管道中创建的计划。有关查看管道的信息,请参阅 查看管道的详细信息

通过以下过程查看您已计划的作业。

要查看您已计划的作业,请执行以下操作。

  1. 打开 Amazon SageMaker Studio 经典版。

  2. 开放管道

  3. 查看用于您已创建的作业的管道。

    运行作业的管道使用作业名称作为前缀。例如,如果您创建了一个名为 housing-data-feature-enginnering 的作业,则管道的名称为 data-wrangler-housing-data-feature-engineering

  4. 选择包含您的作业的管道。

  5. 查看管道的状态。管道状态成功时表示已成功运行处理作业。

要停止运行处理作业,请执行以下操作:

要停止运行处理作业,请删除指定计划的事件规则。删除事件规则时,会使与该计划关联的所有作业停止运行。有关删除规则的信息,请参阅禁用或删除 Amazon EventBridge 规则

您还可以停止和删除与计划关联的管道。有关停止管道的信息,请参见StopPipelineExecution。有关删除管道的信息,请参阅DeletePipeline