Export - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Export

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

一个数据 Wangler 流是您对数据执行的一系列数据准备步骤。在数据准备过程中,您可以对数据执行一次或多个转换。每个转换都是使用转换步骤完成的。该流程有一系列节点,用于表示数据的导入和您执行的转换。有关节点示例,请参阅下图。

上图显示了具有两个节点的 Data Wrangler 流。这些区域有:源-取样节点显示了从中导入数据的数据源。这些区域有:数据类型节点表示 Data Wrangler 已执行转换以将数据集转换为可用格式。

添加到 Data Wrangler 流程的每个转换都显示为附加节点。有关您可以添加的转换的信息,请参阅转换数据. 下图显示了数据 Wrangler 流程,该流程具有重命名列节点来更改数据集中列的名称。

您可以将数据转换导出为以下内容:

  • Amazon S3

  • SageMaker 管道

  • 亚马逊 SageMaker Feature Store

  • Python 代码

重要

建议使用 IAMAmazonSageMakerFullAccess要授予的托管策略Amazon使用数据 Wrangler 的权限。如果您不使用托管策略,您可以使用 IAM 策略,该策略授予 Data Wrangler 访问 Amazon S3 存储桶的访问权限。有关策略的更多信息,请参阅安全和权限.

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

导出数据转换的选项取决于将数据转换导出到的位置。有关更多信息,请参阅以下部分。

导出到 Amazon S3。

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

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

  • 导出到 — 导出转换为 Amazon S3 所产生的数据。

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

使用以下部分了解有关每种方法的更多信息。

Destination Node

如果要输出向 Amazon S3 执行的一系列数据处理步骤,请创建一个目标节点。处理完数据后,目标节点会告诉 Data Wrangler 在哪里存储数据。创建目标节点后,您可以创建处理作业以输出数据。处理任务是亚马逊 SageMaker 处理作业。当您使用目标节点时,它会运行输出您转换为 Amazon S3 的数据所需的计算资源。

您可以使用目标节点导出部分转换或您在 Data Wrangler 流程中所做的所有转换。

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

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

要导出数据流,您需要创建目标节点和 Data Wrangler 作业来导出数据。创建数据 Wrangler 作业开始 SageMaker 处理作业以导出流程。创建目标节点后,您可以选择要导出的目标节点。

要创建目标节点,请按照以下过程操作。

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

  2. 选择 Add destination

  3. 选择 Amazon S3

  4. 指定下图中显示的字段。

  5. 选择 Add destination

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

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

  1. 请选择 Create job (创建任务)。下图显示了选择后显示的窗格。创建作业.

  2. 适用于作业名称,请指定导出作业的名称。

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

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

  5. 选择配置作业. 下图显示了配置作业页.

  6. (可选)配置 Data Wrangler 作业。

  7. 选择 Run(运行)。

Export to

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

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

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

  2. 选择导出到.

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

  4. 运行 Jupyter 笔记本。

当你运行笔记本时,它会将数据流(.flow 文件)导出在同一个Amazon区域作为数据 Wrangler 流。

Export data

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

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

使用导出数据方法。

  1. 通过双击 Data Wrangler 流程中选择一个节点。

  2. 配置要导出数据的方式。

  3. 选择导出数据.

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

导出到 SageMaker 管道

当你想构建和部署大规模机器学习 (ML) 工作流时,可以使用 SageMaker 要创建的管道 end-to-end 管理和部署的工作流 SageMaker 个作业。 SageMaker Pipeline 使您能够构建管理您的工作流程 SageMaker 数据准备、模型训练和模型部署作业。你可以使用第一方算法 SageMaker 使用优惠 SageMaker 管道。有关 SageMaker 管道,请参阅SageMaker 管道.

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

使用 Jupyter 笔记本创建管道

使用以下过程创建 Jupyter 笔记本,以将数据 Wrangler 流程导出到 SageMaker 管道。

使用以下过程生成一个 Jupyter 笔记本并运行它以将您的 Data Wrangler 流程导出到 SageMaker 管道。

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

  2. 选择导出到.

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

  4. 运行 Jupyter 笔记本。

Data Wrangler 生产的木星笔记本可以用来定义管道。管道包括数据 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 管道.

导出到 Python 代码

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

使用以下过程生成一个 Jupyter 笔记本并运行它以将数据 Wrangler 流程导出为 Python 代码。

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

  2. 选择导出到.

  3. 选择Python 代码.

  4. 运行 Jupyter 笔记本。

您可能需要配置 Python 脚本以使其在管道中运行。例如,如果您运行的是 Spark 环境,请确保从有权访问的环境中运行脚本Amazon资源的费用。

导出到亚马逊 SageMaker Feature Store

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

功能商店的核心概念是功能组。要素组是要素、其记录(观测值)和相关元数据的集合。它与数据库中的表类似。

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

  • 使用新记录更新现有要素组。记录是数据集中的观测值。

  • 从 Data Wrangler 流程中的节点创建新功能组。Data Wrangler 会将数据集中的观测值添加为要素组中的记录。

如果要更新现有要素组,则数据集的方案必须与要素组的方案匹配。要素组中的所有记录都将替换为数据集中的观测值。

您可以使用 Jupyter Notebook 或目标节点来使用数据集中的观测值更新要素组。

Destination Node

如果要将已执行的一系列数据处理步骤输出到要素组,则可以创建目标节点。当您创建和运行目标节点时,Data Wrangler 会使用您的数据更新要素组。您还可以从目标节点 UI 创建新功能组。创建目标节点后,您可以创建处理作业以输出数据。处理任务是亚马逊 SageMaker 处理作业。当您使用目标节点时,它会运行输出已转换到要素组的数据所需的计算资源。

您可以使用目标节点导出部分转换或您在 Data Wrangler 流程中所做的所有转换。

使用以下过程创建目标节点,以使用数据集中的观测值更新要素组。

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

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

  2. 添加目标,选择SageMaker Feature Store.

  3. 双击功能组。Data Wrangler 检查要素组的架构是否与您用于更新要素组的数据架构匹配。

  4. (可选)选择仅导出到离线商店适用于同时拥有在线商店和离线商店的功能组。此选项仅使用来自数据集的观测值更新离线商店。

  5. Data Wrangler 验证数据集的架构后,选择Add.

使用以下过程创建新的要素组,其中包含数据集中的数据。

对于要存储要素组的方式,您可以有以下选项:

  • 在线 — 支持实时查找记录的功能组的低延迟、高可用性缓存。在线商店允许快速访问功能组中记录的最新值。

  • 离线 — 将功能组的数据存储在 Amazon S3 存储桶中。当您不需要低延迟(次秒)读取时,您可以离线存储数据。您可以使用离线商店来获取用于数据探索、模型训练和批量推断的功能。

  • 在线和离线 — 将数据存储在在线商店和离线商店中。

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

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

  2. 添加目标,选择SageMaker Feature Store.

  3. 选择创建功能组.

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

  5. 选择 Next(下一步)。

  6. 选择复制 JSON 架构. 创建要素组时,可以将架构粘贴到功能定义中。

  7. 选择 Create(创建)。

  8. 适用于功能组名称,请为功能组指定名称。

  9. 适用于Description (可选)中,指定描述以使您的要素组更容易被发现。

  10. 要为在线商店创建功能组,请执行以下操作。

    1. Select在线启用存储.

    2. 适用于在线商店加密密钥中,指定Amazon托管加密密钥或自己的加密密钥。

  11. 要为离线商店创建功能组,请执行以下操作。

    1. Select脱机启用存储.

    2. 指定以下字段的值:

      • S3 存储桶名称— 存储功能组的存储桶的名称。

      • (可选)数据集目录名称— 您用来存储功能组的 Amazon S3 前缀。

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

      • 离线商店加密密钥— 默认情况下,要素商店使用Amazon托管密钥,但是您可以使用该字段指定自己的密钥。

  12. 选择 Continue(继续)。

  13. 选择 JSON

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

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

  16. 选择 Continue(继续)。

  17. 适用于记录标识符功能名称中,选择数据集中具有数据集中每条记录的唯一标识符的列。

  18. 适用于事件时间功能名称中,选择包含时间戳值的列。

  19. 选择 Continue(继续)。

  20. (可选)添加标签以使功能组更易于发现。

  21. 选择 Continue(继续)。

  22. 选择创建功能组.

  23. 返回到 Data Wrangler 流程,然后选择功能组搜索栏。

注意

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

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

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

  1. 请选择 Create job (创建任务)。下图显示了选择后显示的窗格。创建作业.

  2. 适用于作业名称,请指定导出作业的名称。

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

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

  5. 选择配置作业. 下图显示了配置作业页.

  6. (可选)配置 Data Wrangler 作业。

  7. 选择 Run(运行)。

Jupyter Notebook

使用以下过程将 Jupyter 笔记本导出到亚马逊。 SageMaker Feature Store。

使用以下过程生成一个 Jupyter 笔记本并运行它以将 Data Wrangler 流程导出到功能商店。

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

  2. 选择导出到.

  3. 选择亚马逊 SageMaker 功能商店(通过 Jupyter 笔记本).

  4. 运行 Jupyter 笔记本。

运行木星笔记本会运行 Data Wrangler 作业。运行 Data Wrangler 作业会启动 SageMaker 处理作业。处理作业将流程提取到在线和离线 feature store 中。

重要

用于运行此笔记本的 IAM 角色必须具有以下内容Amazon附加的托管策略:AmazonSageMakerFullAccessAmazonSageMakerFeatureStoreAccess.

创建功能组时,您只需启用一个在线或离线 feature store。您还可以启用这两个功能。要禁用在线商店创建,请设置EnableOnlineStoreFalse

# 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" } ]

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

  • 这些区域有:记录标识符名称是功能的名称,其值唯一标识功能 feature store 中定义的记录的值。在线商店中只存储每个标识符值的最新记录。记录标识符要素名称必须是要素定义的名称之一。

  • 这些区域有:事件时间功能名称是存储功能的名称。EventTime是功能组中的记录的。网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的EventTime是发生新事件的时间点,该事件对应于创建或更新功能中的记录。功能组中的所有记录必须具有对应的EventTime.

笔记本使用这些配置创建功能组、大规模处理数据,然后将处理过的数据提取到在线和离线功能商店中。要了解更多信息,请参阅数据源和摄取.

笔记本使用这些配置创建功能组、大规模处理数据,然后将处理过的数据提取到在线和离线功能商店中。要了解更多信息,请参阅数据源和摄取.