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

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

导入

您可以使用Amazon Amazon SageMaker Redshift Amazon Athena Wrangler 从以下数据源导入数据。您导入的数据集最多可以包含 1000 个列。

一些数据源允许您添加多个数据连接

  • 您可以连接到多个 Amazon Redshift 集群。每个集群都会变成数据源。

  • 您可以查询账户中的任何 Athena 数据库,从该数据库导入数据。

当您从数据源导入数据集时,它会出现在您的数据流中。Data Wrangler 会自动推断数据集中每列的数据类型。要修改这些类型,请选择数据类型步骤并选择编辑数据类型

当您从 Athena 或 Amazon Redshift 导入数据时,导入的数据会自动存储在您使用 Studio 的Amazon地区的默认 SageMaker S3 存储桶中。此外,Athena 将你在 Data Wrangler 中预览的数据存储在这个存储桶中。要了解更多信息,请参阅 导入的数据存储

重要
重要

此外,如果您将托管策略用于SageMaker,我们强烈建议您将其范围缩小到允许您执行用例的最严格的策略。有关更多信息,请参阅授予 IAM 角色使用 Data Wrangler 的权限

除Amazon SimpSimple Storage Service (Amazon S3) 以外的所有数据源都需要您指定 SQL 查询才能导入数据。对于每个查询,必须指定以下内容:

  • 数据目录

  • 数据库

您可以在下拉菜单或查询中指定数据库或数据目录的名称。以下是示例查询:

  • select * from example-data-catalog-name.example-database-name.example-table-name— 该查询不使用用户界面 (UI) 下拉菜单中指定的任何内容来运行。它example-table-nameexample-database-name内部查询example-data-catalog-name

  • select * from example-database-name.example-table-name— 该查询使用您在数据目录下拉菜单中指定的数据目录来运行。它example-table-nameexample-database-name在您指定的数据目录中查询。

  • select * from example-table-name— 查询要求您为数据目录数据库名称下拉菜单选择字段。它example-table-name在您指定的数据库和数据目录中的数据目录内进行查询。

Data Wrangler 和数据源之间的链接是一种连接。您可以使用连接从数据源导入数据。

有以下类型的连接:

  • 直接

  • 已编目

Data Wrangler 始终可以通过直接连接访问最新的数据。如果数据源中的数据已更新,则可以使用连接导入数据。例如,如果有人将文件添加到您的一个 Amazon S3 存储桶,则可以导入该文件。

编目连接是数据传输的结果。编目连接中的数据不一定包含最新的数据。例如,您可以在 Salesforce 和 Amazon S3 之间设置数据传输。如果 Salesforce 数据有更新,则必须再次传输数据。您可以自动执行数据传输过程。有关数据传输的更多信息,请参阅从软件即服务 (SaaS) 平台导入数据

从 Amazon S3 导入数据

您可以通过 Amazon Simple Storage Service(Amazon S3)随时在 Web 上的任何位置存储和检索的任意大小的数据。您可以通过 Amazon S3 API(简单直观的 Web 界面)和 Amazon S3 API 完成这些任务。Amazon Web Services Management Console如果您在本地存储了数据集,我们建议您将其添加到 S3 存储桶以导入 Data Wrangler。要了解如何操作,请参阅 Amazon Simple Storage Service 用户指南中的将对象上传到存储桶

Data Wrangler 使用 S3 Select 允许你在 Data Wrangler 中预览Amazon S3 文件。每次文件预览都需要支付标准费用。要了解有关定价的更多信息,请参阅 Amazon S3 定价中的 “请求和数据检索” 选项卡。

重要

如果您计划导出数据流并启动 Data Wrangler 任务、将数据提取到feature store 或创建SageMaker管道,请注意,这些集成要求 Amazon S3 输入数据位于同一区域。SageMaker Amazon

重要

如果您要导入 CSV 文件,请确保它满足以下要求:

  • 数据集中的记录不能超过一行。

  • 反斜杠是唯一有效的转义字符。\

  • 数据集必须使用以下分隔符之一:

    • 逗号 — ,

    • 结肠— :

    • 分号 — ;

    • 管道 — |

    • 选项卡 — [TAB]

为了节省空间,可以导入压缩的 CSV 文件。

Data Wrangler 使您能够导入整个数据集或对其中的一部分进行采样。对于 Amazon S3,它提供了以下采样选项:

  • 无-导入整个数据集。

  • 第一个 K-对数据集的前 K 行进行采样,其中 K 是您指定的整数。

  • 随机化-抽取指定大小的随机样本。

  • 分层 — 抽取分层的随机样本。分层样本会保留列中的值比率。

导入数据后,您还可以使用采样转换器从整个数据集中采集一个或多个样本。有关采样变压器的更多信息,请参阅采样

您可以将单个文件或多个文件作为数据集导入。当您的数据集被分区为单独的文件时,可以使用多文件导入操作。它从 Amazon S3 目录中获取所有文件,并将它们导入为单个数据集。有关可以导入的文件类型以及如何导入它们的信息,请参阅以下各节。

Single File Import

您可以导入以下格式的单个文件:

  • 逗号分隔值 (CSV)

  • Parquet

  • Javazp 对象表示法 (JSON

  • 优化的行列式(ORC)

  • 图片 — Data Wrangler 使用 OpenCV 导入图像。有关支持的图像格式的更多信息,请参阅图像文件读取和写入

对于以 JSON 格式化的文件,Data Wrangler 同时支持 JSON 行 (.jsonl) 和 JSON 文档 (.json)。当您预览数据时,它会自动以表格格式显示 JSON。对于大于 5 MB 的嵌套 JSON 文档,Data Wrangler 将结构和数组的架构显示为数据集中的值。使用 Flatten 结构化数组和 Explode 数组运算符以表格格式显示嵌套值。有关更多信息,请参阅 取消嵌套JSON 数据爆炸阵列

选择数据集时,可以对其进行重命名、指定文件类型并将第一行标识为标题。

您可以通过单个导入步骤将已分区的数据集导入到 Amazon S3 存储桶中的多个文件中。

要将数据集从您存储在 Amazon S3 中的单个文件导入 Data Wrangler,请执行以下操作:
  1. 如果您当前不在 “导入” 选项卡上,请选择 “导入”。

  2. 在 “可用” 下,选择 Amazon S3 以查看 “导入 S3 数据源” 视图。

  3. 从可用 S3 存储桶的表中,选择一个存储桶并导航到要导入的数据集。

  4. 选择要导入的文件。如果您的数据集没有.csv 或.parquet 扩展名,请从文件类型下拉列表中选择数据类型

  5. 如果您的 CSV 文件有标题,请选中 “向表格添加标题” 旁边的复选框。

  6. 使用预表预览您的数据集。此表最多显示 100 行。

  7. 详细信息窗格中,验证或更改数据集的名称文件类型。如果您添加包含空格的名称,则导入数据集时,这些空格将替换为下划线。

  8. 指定您想使用的 Version(采样配置)。

  9. 选择导入数据集

Multifile Import

以下是导入多个文件的要求:

  • 文件必须与您的 Amazon S3 存储桶位于相同的文件夹中。

  • 这些文件必须共享相同的标题或没有标题。

每个文件必须采用以下格式之一:

  • CSV

  • Parquet

  • 优化的行列式(ORC)

  • 图片 — Data Wrangler 使用 OpenCV 导入图像。有关支持的图像格式的更多信息,请参阅图像文件读取和写入

使用以下过程导入多个文件。

将数据集从您存储在 Amazon S3 目录中的多个文件导入 Data Wrangler
  1. 如果您当前不在 “导入” 选项卡上,请选择 “导入”。

  2. 在 “可用” 下,选择 Amazon S3 以查看 “导入 S3 数据源” 视图。

  3. 从可用 S3 存储桶表中,选择包含要导入的文件夹的存储桶。

  4. 选择包含您要导入的文件夹。每个文件必须采用支持的格式之一。您的文件必须为相同的数据类型。

  5. 如果您的文件夹包含带标题的 CSV 文件,请选中 “第一行是标题” 旁边的复选框。

  6. 如果您的文件嵌套在其他文件夹中,请选中 “包括嵌套目录” 旁边的复选框。

  7. (可选)选择添加文件名列向数据集添加一列,显示每个观测值的文件名。

  8. (可选)默认情况下,Data Wrangler 不向您显示文件夹的预览。您可以通过选择蓝色的 “关闭预览” 按钮来激活预览。预览显示文件夹中前 10 个文件的前 10 行。下图向您展示了如何激活从嵌套目录创建的数据集的预览。

  9. 详细信息窗格中,验证或更改数据集的名称文件类型。如果您添加包含空格的名称,则导入数据集时,这些空格将替换为下划线。

  10. 指定您想使用的 Version(采样配置)。

  11. 选择导入数据集

您也可以使用参数导入与模式匹配的文件子集。参数可帮助您更有选择地选择要导入的文件。要开始使用参数,请编辑数据源并将其应用到用于导入数据的路径。有关更多信息,请参阅为不同的数据集重复使用数据流

从 Athena 导入数据

使用 Amazon Athena mazon Simple Storage Service Service (Amazon S3) 中。在 Athena 中,您可以编写标准 SQL 查询来选择要从 Amazon S3 导入的数据。有关更多信息,请参阅什么是 Amazon Athena

您可以使用Amazon Web Services Management Console来设置Amazon Athena。在开始运行查询之前,必须在 Amazon 中创建至少一个数据库。有关 Amazon 入门Athena,请参阅入门

Athena 与 Data Wrangler 直接集成。你无需离开 Data Wrangler 用户界面即可编写 Athena 查询。

除了在 Data Wrangler 中编写简单的 Athena 查询外,你还可以使用:

  • 用于查询结果管理的 Athena 工作组。有关工作组的更多信息,请参阅管理查询结果

  • 用于设置数据保留期的生命周期配置。有关数据保留的更多信息,请参阅设置数据保留期

在 Data Wrangler 中查询 Athena

注意

Data Wrangler 不支持联合查询。

如果您与 Athena Amazon Lake Formation 一起使用,请确保您的 Lake Formation IAM 权限不会取代数据库sagemaker_data_wrangler的 IAM 权限。

Data Wrangler 使您能够导入整个数据集或对其中的一部分进行采样。对于 Athena,它提供了以下采样选项:

  • 无-导入整个数据集。

  • 第一个 K-对数据集的前 K 行进行采样,其中 K 是您指定的整数。

  • 随机化-抽取指定大小的随机样本。

  • 分层 — 抽取分层的随机样本。分层样本会保留列中的值比率。

以下过程介绍如何将数据集群从 Athena 导入 Data Wrangler 中。

将数据集从 Athena 导入 Data Wrangler
  1. 登录亚马逊SageMaker控制台

  2. 选择工作室

  3. 选择启动应用程序

  4. 从下拉列表中选择 Studio

  5. 选择主选标记标。

  6. 选择 Data (数据)

  7. 选择 Data Wrangler

  8. 选择导入数据

  9. 在 “可用” 下,选择 Amazon Athena

  10. 对于数据目录,选择一个数据目录。

  11. 使用 D ataze 下拉列表选择要查询的数据库。选择数据库时,可以使用 “详细信息” 下列出的表预览数据库中的所有

  12. (可选)选择高级配置

    1. 选择一个工作组

    2. 如果您的工作组尚未强制执行 Amazon S3 输出位置,或者您未使用工作组,请为 Amazon S3 的查询结果位置指定一个值。

    3. (可选)对于数据保留期,选中复选框以设置数据保留期并指定在删除数据之前存储数据的天数。

    4. (可选)默认情况下,Data Wrangler 会保存连接。您可以选择取消选中该复选框而不保存连接。

  13. 对于采样,请选择一种采样方法。选择 “” 以关闭采样。

  14. 在查询编辑器中输入您的查询,然后使用 Run 按钮运行查询。成功查询后,您可以在编辑器下预览结果。

    注意

    Salesforce 数据使用该timestamptz类型。如果您要查询从 Salesforce 导入到 Athena 的时间戳列,请将该列中的数据转换为该类型。timestamp以下查询将时间戳列转换为正确的类型。

    # cast column timestamptz_col as timestamp type, and name it as timestamp_col select cast(timestamptz_col as timestamp) as timestamp_col from table
  15. 要导入查询结果,请选择导入

完成上述步骤后,您查询和导入的数据集将出现在 Data Wrangler 流程中。

默认情况下,Data Wrangler 会将连接设置保存为新连接。导入数据时,您已经指定的查询显示为新连接。保存的连接存储有关您正在使用的 Athena 工作组和 Amazon S3 存储段的信息。当你再次连接到数据源时,你可以选择保存的连接。

管理查询结果

Data Wrangler 支持使用 Athena 工作组来管理账户内的查询结果。Amazon您可以为每个工作组指定 Amazon S3 输出位置。您还可以指定查询的输出是否可以传送到不同的 Amazon S3 位置。有关更多信息,请参阅使用工作组控制查询访问权限和成本

您的工作组可能已配置为强制执行 Amazon S3 查询输出位置。您无法更改这些工作组的查询结果的输出位置。

如果您不使用工作组或为查询指定输出位置,Data Wrangler 会使用您的 Studio 实例所在Amazon区域的默认 Amazon S3 存储桶来存储 Athena 查询结果。它在此数据库中创建临时表,将查询输出移至此 Amazon S3 存储桶。它会在导入数据后删除这些表;但是数据库仍然存在。sagemaker_data_wrangler要了解更多信息,请参阅 导入的数据存储

要使用 Athena 工作组,请设置授予工作组访问权限的 IAM 策略。如果您使用的是SageMaker-Execution-Role,我们建议将策略添加到角色中。有关工作组 IAM 策略的更多信息,请参阅 IAM 访问工作组的 IAM 策略。有关工作组策略的示例,请参阅工作组策略示例

设置数据保留期

Data Wrangler 自动为查询结果设置数据保留期。结果将在保留期过后删除。例如,默认保留期为五天。查询结果将在五天后删除。此配置旨在帮助您清理不再使用的数据。清理数据可防止未经授权的用户获得访问权限。它还有助于控制在 Amazon S3 上存储数据的成本。

如果您未设置保留期,则 Amazon S3 生命周期配置将决定存储对象的持续时间。您为生命周期配置指定的数据保留策略会删除任何比您指定的生命周期配置更早的查询结果。有关更多信息,请参阅设置桶的生命周期配置

Data Wrangler 使用 S3 生命周期配置来管理数据保留和过期。您必须向您的 Amazon SageMaker Studio IAM 执行角色授予管理存储桶生命周期配置的权限。可以按照以下步骤授予权限。

要授予管理生命周期配置的权限,请执行以下操作。

  1. 登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择 Roles(角色)。

  3. 在搜索栏中,指定亚马逊 SageMaker Studio 正在使用的亚马逊SageMaker执行角色。

  4. 选择角色。

  5. 选择 Add permissions(添加权限)。

  6. 选择创建内联策略

  7. 对于服务,指定 S3 并选择它。

  8. 在 “阅读” 部分下,选择GetLifecycleConfiguration

  9. “写入” 部分下,选择PutLifecycleConfiguration

  10. 对于资源,选择特定

  11. 在 “操作” 中,选择 “权限管理” 旁边的箭头图标。

  12. 选择PutResourcePolicy

  13. 对于资源,选择特定

  14. 选中 “此账户中的任意” 旁边的复选框。

  15. 选择Review policy(查看策略)

  16. 在 “名称” 中,指定一个名称。

  17. 选择 Create policy(创建策略)

从 Amazon Redshift

Amazon Redshift 是一种完全托管的 PB 级云中数据仓库服务。创建数据仓库的第一步是启动一组节点(称为 Amazon Redshift 集群)。预置集群后,您可以上传数据集,然后执行数据分析查询。

您可以在 Data Wrangler 中连接和查询一个或多个 Amazon Redshift 集群。要使用此导入选项,您必须在 Amazon Redshift 中创建至少一个集群。要了解具体方法,请参阅 Amazon Redshift ft 入门

您可以在以下位置之一输出您的Amazon Redshift 查询结果:

  • Amazon S3 存储桶

  • 您指定的 Amazon S3 输出位置

您可以导入整个数据集或对其中的一部分进行采样。对于Amazon Redshift ft,它提供了以下采样选项:

  • 无-导入整个数据集。

  • 第一个 K-对数据集的前 K 行进行采样,其中 K 是您指定的整数。

  • 随机化-抽取指定大小的随机样本。

  • 分层 — 抽取分层的随机样本。分层样本会保留列中的值比率。

默认 Amazon S3 存储桶位于您的 Studio 实例所在的同一Amazon区域,用于存储Amazon Redshift ft 查询结果。有关更多信息,请参阅导入的数据存储

对于默认 Amazon S3 存储桶或您指定的存储桶,您有以下加密选项:

  • 具有 Amazon S3 托管式密钥的默认Amazon服务端加密 (SSE-S3)

  • 您指定的 Amazon Key Management Service (Amazon KMS) 密钥

Amazon KMS密钥是您创建和管理的加密密钥。有关 KMS 密钥的更多信息,请参阅Amazon Key Management Service

您可以使用Amazon账户的Amazon KMS密钥 ARN 或 ARN 指定密钥。

如果您使用 IAM 托管策略向角色授予在 Studio 中使用 Data Wrangler 的权限,则您的数据库用户名必须带有前缀。AmazonSageMakerFullAccess sagemaker_access

使用以下过程了解如何添加新集群。

注意

Data Wrangler 使用具有临时凭证的 Amazon Redshift 数据 API。要了解有关此 API 的更多信息,请参阅 Amazon Redshift ft 管理指南中的使用Amazon Redshift ft 数据 API

连接到Amazon Redshift ft 集群
  1. 登录亚马逊SageMaker控制台

  2. 选择工作室

  3. 选择启动应用程序

  4. 从下拉列表中选择 Studio

  5. 选择主选标记标。

  6. 选择 Data (数据)

  7. 选择 Data Wrangler

  8. 选择导入数据

  9. 在 “可用” 下,选择 Amazon Athena

  10. 选择 Amazon Redshift ft

  11. 类型选择临时证书 (IAM)

  12. 输入连接名称。这是 Data Wrangler 用来识别此连接的名称。

  13. 输入群集标识符以指定要连接的集群。注意:仅输入集群标识符,而不输入 Amazon Redshift 集群的完整终端节点。

  14. 输入要连接到的数据库的数据库名称

  15. 输入数据库用户以标识要用于连接数据库的用户。

  16. 对于卸载 IAM 角色,输入 Amazon Redshift 集群在向 Amazon S3 移动和写入数据时应代入的角色的 IAM 角色 ARN。有关此角色的更多信息,请参阅《Amazon Redshift 管理指南》中的授权 Amazon Redshift 代表您访问其他Amazon服务

  17. 选择 Connect(连接)。

  18. (可选)对于 Amazon S3 的输出位置,请指定 S3 URI 来存储查询结果。

  19. (可选)对于 KMS 密钥 ID,请指定Amazon KMS密钥或别名的 ARN。下图显示了在中可以找到任一密钥的位置Amazon Web Services Management Console。

下图显示了前面过程中的所有字段。

成功建立连接后,它会在 “数据导入” 下显示为数据源。选择此数据源来查询您的数据库和导入数据。

从Amazon Redshift ft 查询和导入数据
  1. 数据源中选择要查询的连接。

  2. 选择架。要了解有关Amazon Redshift 架构的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的架构

  3. (可选)在 “高级配置” 下,指定要使用的采样方法。

  4. 在查询编辑器中输入您的查询,然后选择 R un 来运行查询。成功查询后,您可以在编辑器下预览结果。

  5. 选择导入数据集以导入已查询的数据集。

  6. 输入数据集名称。如果您添加包含空格的数据集名称,则导入数据集时,这些空格将替换为下划线。

  7. 选择 Add(添加)。

要编辑数据集,请执行以下操作。

  1. 导航到您的 Data Wrangler 流程。

  2. 选择 “来源-抽样” 旁边的 +。

  3. 更改您要导入的数据。

  4. 选择 Apply(应用)

从 Amazon EMR 中导入数据

您可以使用亚马逊 EMR 作为亚马逊 Data Wrangler SageMaker 流程的数据源。Amazon EMR 是一个托管集群平台,您可以使用它来处理和分析大量数据。有关更多信息,请参阅什么是Amazon EMR? 。要从 EMR 导入数据集,您需要连接到该数据集并进行查询。

重要

您必须满足以下先决条件才能连接到 Amazon EMR 集群:

先决条件
  • 网络配置
    • 您在该地区有一个亚马逊 VPC,用于启动亚马逊 SageMaker Studio 和亚马逊 EMR。

    • 亚马逊 EMR 和亚马逊 SageMaker Studio 都必须在私有子网中启动。它们可位于相同的子网中,也可以位于不同的子网中。

    • 亚马逊SageMaker工作室必须处于仅限 VPC 模式。

      有关如何创建 VPC 的更多信息,请参阅创建 VPC

      有关如何创建 VPC 的更多信息,请参阅 VPC 中的 SageMakerStudio 笔记本Connect 外部资源

    • 您正在运行的 Amazon EMR 集群必须位于同一 Amazon VPC 中。

    • Amazon EMR 集群和 Amazon VPC 必须位于同一Amazon账户。

    • 您的亚马逊 EMR 集群正在运行 Hive 或 Presto。

      • Hive 集群必须允许端口 10000 上来自 Studio 安全组的入站流量。

      • Presto 集群必须允许端口 8889 上来自 Studio 安全组的入站流量。

  • SageMaker Studio
    • 亚马逊 SageMaker Studio 必须运行 Jupyter Lab 版本 3。有关更新 Jupyter 实验室版本的信息,请参见。从控制台查看和更新应用程序的JupyterLab版本

    • 亚马逊 SageMaker Studio 有一个控制用户访问权限的 IAM 角色。您用来运行 Amazon SageMaker Studio 的默认 IAM 角色没有可以授予您访问亚马逊 EMR 集群的策略。您必须将授予权限的策略附加给 IAM 角色。有关更多信息,请参阅配置 Amazon EMR 集群的可发现性(适用于管理员)

    • IAM 角色还必须附加以下策略secretsmanager:PutResourcePolicy

    • 如果您使用的是已经创建的 Studio 域,请确保其AppNetworkAccessType处于仅限 VPC 模式。有关更新域以使用仅限 VPC 模式的信息,请参阅。关闭并更新 SageMaker Studio

  • Amazon EMR 集群
    • 您必须将 Hive 或 Presto 安装在集群上。

    • Amazon EMR 发行版必须为 5.0 或更高版本。

      注意

      亚马逊 EMR 支持auto 终止。自动终止会阻止空闲集群运行并防止您产生成本。以下是支持auto 终止的版本:

      • 对勾版本 6.1.0 或更高版本。

      • 对勾版本 5.30.0 或更高版本。

Amazon VPC 是在逻辑上与Amazon云中的其他网络相互隔离的虚拟网络。亚马逊 SageMaker Studio 和您的亚马逊 EMR 集群仅存在于亚马逊 VPC 中。

使用以下过程在Amazon VPC 中启动Amazon SageMaker Studio。

要在 VPC 中启动 Studio,请执行以下操作。

  1. 导航到SageMaker控制台,网址为 https://console.aws.amazon.com/sagemaker/

  2. 选择启动SageMaker工作室

  3. 选择标准设置

  4. 对于默认执行角色,选择 IAM 角色来设置 Studio。

  5. 选择您启动亚马逊 EMR 集群的 VPC。

  6. 对于子网,选择私有子网。

  7. 对于安全组,请指定您用于在 VPC 之间控制的安全组

  8. 选择 “仅限 VPC”。

  9. (可选)Amazon使用默认加密密钥。您可以指定密Amazon Key Management Service钥来加密数据。

  10. 选择下一步

  11. Studio 设置下,选择最适合您的配置。

  12. 选择 “下一步” 跳过SageMaker画布设置。

  13. 选择 “下一步” 跳过 RStudio 设置。

如果您还没有 Amazon EMR 集群准备就绪,可以使用以下步骤创建。有关更多信息,请参阅什么是Amazon EMR

要创建集群,请执行以下操作。

  1. 导航到 Amazon Web Services Management Console。

  2. 在搜索栏中指定Amazon EMR

  3. 选择创建集群

  4. 对于集群名称,指定集群的名称。

  5. 在 “发布” 中,选择集群的发行版本。

    注意

    Amazon EMR 支持auto 终止以下版本:

    • 对勾版本 6.1.0 或更高版本

    • 对勾版本 5.30.0 或更高版本

    自动终止会阻止空闲集群运行并防止您产生成本。

  6. (可选)对于应用程序,选择 Presto

  7. 选择您在集群上运行的应用程序。

  8. 在 “网络” 下的 “硬件配置” 中,指定硬件配置设置。

    重要

    对于网络,选择运行 Amazon SageMaker Studio 的 VPC,然后选择私有子网。

  9. 在 “安全和访问权限” 下,指定安全设置。

  10. 选择创建

有关创建亚马逊 EMR 集群的教程,请参阅 Am azon EMR 入门。有关配置集群的最佳实践的信息,请参阅注意事项和最佳实践

注意

出于安全最佳实践,Data Wrangler 只能连接到私有子网上的 VPC。除非您用Amazon Systems Manager于 EMR 实例,否则您将无法连接到主节点。有关更多信息,请参阅使用Amazon Systems Manager保护对 EMR 集群的访问权限

目前,您可以使用以下方法访问 Amazon EMR 集群:

  • 没有身份验证

  • 轻型目录访问协议 (LDAP)

使用以下部分创建激活 LDAP 的 Presto 或 Hive 亚马逊 EMR 集群。

Presto
重要

要用Amazon Glue作 Presto 表的元存储,请在启动 EMR 集群时选择 “Presto 表元数据”,将您的 Amazon EMR 查询结果存储在Amazon Glue数据目录中。将查询结果存储在Amazon Glue数据目录中可以避免产生费用。

为了能够查询 Amazon EMR 集群上的大型数据集,请将以下属性添加到 EMR 集群上的 Presto 配置文件中:

[{"classification":"presto-config","properties":{ "http-server.max-request-header-size":"5MB", "http-server.max-response-header-size":"5MB"}}]

您也可以在 Amazon EMR 集群时修改配置设置。

您的 Amazon EMR 集群的配置文件位于以下路径下:/etc/presto/conf/config.properties

使用以下过程创建激活 LDAP 的 Presto 集群。

要创建集群,请执行以下操作。

  1. 导航到 Amazon Web Services Management Console。

  2. 在搜索栏中指定Amazon EMR

  3. 选择创建集群

  4. 对于集群名称,指定集群的名称。

  5. 在 “发布” 中,选择集群的发行版本。

    注意

    Amazon EMR 支持auto 终止以下版本:

    • 对勾版本 6.1.0 或更高版本

    • 对勾版本 5.30.0 或更高版本

    自动终止会阻止空闲集群运行并防止您产生成本。

  6. 选择您在集群上运行的应用程序。

  7. 在 “网络” 下的 “硬件配置” 中,指定硬件配置设置。

    重要

    对于网络,选择运行 Amazon SageMaker Studio 的 VPC,然后选择私有子网。

  8. 在 “安全和访问权限” 下,指定安全设置。

  9. 选择创建

Hive
重要

要用Amazon Glue作 Hive 表的元存储,请在启动 EMR 集群时选择 “Hive 表元数据”,将您的 Amazon EMR 查询结果存储在Amazon Glue数据目录中。将查询结果存储在Amazon Glue数据目录中可以避免产生费用。

为了能够查询 Amazon EMR 集群上的大型数据集,请将以下属性添加到 EMR 集群上的 Hive 配置文件中:

[{"classification":"hive-site", "properties" :{"hive.resultset.use.unique.column.names":"false"}}]

您也可以在 Amazon EMR 集群时修改配置设置。

您的 Amazon EMR 集群的配置文件位于以下路径下:/etc/hive/conf/hive-site.xml。您可以指定以下属性并重新启动集群:

<property> <name>hive.resultset.use.unique.column.names</name> <value>false</value> </property>

使用以下过程创建激活 LDAP 的 Hive 集群。

要创建激活 LDAP 的 Hive 集群,请执行以下操作。

  1. 导航到 Amazon Web Services Management Console。

  2. 在搜索栏中指定Amazon EMR

  3. 选择创建集群

  4. 选择 Go to advanced options (转到高级选项)

  5. 在 “发布” 中,选择 Amazon EMR 发行版本。

  6. Hive 配置选项默认处于选中状态。确保 Hive 选项旁边有一个复选框。

  7. (可选)您也可以选择 Presto 作为配置选项,在集群上同时激活 Hive 和 Presto。

  8. (可选)选择 “用于 Hive 表元数据”,将您的 Amazon EMR 查询结果存储在Amazon Glue数据目录中。将查询结果存储在Amazon Glue目录中可以避免产生费用。有关更多信息,请参阅使用Amazon Glue数据目录作为 Hive 的元存储。

    注意

    将查询结果存储在数据目录中,Amazon EMR 5.8.0 或更高版本。

  9. 输入配置下,指定以下 JSON:

    [ { "classification": "hive-site", "properties": { "hive.server2.authentication.ldap.baseDN": "dc=example,dc=org", "hive.server2.authentication": "LDAP", "hive.server2.authentication.ldap.url": "ldap://ldap-server-dns-name:389" } } ]
    注意

    作为安全最佳实践,我们建议HiveServer通过在前面的蜂窝站点 JSON 中添加一些属性来启用 SSL。有关更多信息,请参阅在 HiveServer 2 上启用 SSL

  10. 指定剩余的群集设置并创建集群。

使用以下部分对您已经创建的 Amazon EMR 集群使用 LDAP 身份验证。

LDAP for Presto

在运行 Presto 的集群上使用 LDAP 需要通过 HTTPS 访问 Presto 协调器。执行以下操作以提供访问权限:

  • 激活端口 636 的访问权限

  • 为 Presto 协调器启用 SSL

使用以下模板来配置 Presto:

- Classification: presto-config ConfigurationProperties: http-server.authentication.type: 'PASSWORD' http-server.https.enabled: 'true' http-server.https.port: '8889' http-server.http.port: '8899' node-scheduler.include-coordinator: 'true' http-server.https.keystore.path: '/path/to/keystore/path/for/presto' http-server.https.keystore.key: 'keystore-key-password' discovery.uri: 'http://master-node-dns-name:8899' - Classification: presto-password-authenticator ConfigurationProperties: password-authenticator.name: 'ldap' ldap.url: !Sub 'ldaps://ldap-server-dns-name:636' ldap.user-bind-pattern: "uid=${USER},dc=example,dc=org" internal-communication.authentication.ldap.user: "ldap-user-name" internal-communication.authentication.ldap.password: "ldap-password"

有关在 Presto 中设置 LDAP 的信息,请参阅以下资源:

注意

建议您为 Presto 启用 SL,这是最佳安全做法。有关更多信息,请参阅安全内部通信

LDAP for Hive

要对已创建的集群使用 LDAP for Hive,请使用以下过程在控制台中重新配置实例组

您正在指定您要连接的集群的名称。

[ { "classification": "hive-site", "properties": { "hive.server2.authentication.ldap.baseDN": "dc=example,dc=org", "hive.server2.authentication": "LDAP", "hive.server2.authentication.ldap.url": "ldap://ldap-server-dns-name:389" } } ]

使用以下过程从集群导入数据。

要从集群中导入数据,请执行以下操作。

  1. 打开 Data Wrangler 流程。

  2. 选择 Create Connection (创建连接)

  3. 选择亚马逊 EMR。

  4. 请执行以下任一操作。

  5. 选择下一步

  6. 在为example-cluster-name集群选择终端节点中,选择查询引擎。

  7. (可选)选择保存连接

  8. 选择 “下一步”,选择 “登录”,然后选择以下选项之一:

    • 没有身份验证

    • LDAP

  9. 在 “登录到example-cluster-name群集” 中,指定群集的用户名密码

  10. 选择 Connect(连接)。

  11. 在查询编辑器中指定 SQL 查询。

  12. 选择 运行

  13. 选择 Import (导入)

为您的集群创建Amazon Secrets Manager密钥

密Secrets Manager 密钥将亚马逊 EMR 集群的 JDBC URL 存储为密钥。使用密钥比直接输入您的凭证更安全。

使用以下步骤将 JDBC URL 存储为密钥。

要将 JDBC URL 存储为密钥,请执行以下操作。

  1. 导航到 Amazon Web Services Management Console。

  2. 在搜索栏中指定 Secrets Manager。

  3. 选择 Amazon Secrets Manager

  4. 选择 Store a new secret (存储新密钥)

  5. 对于 Secret type(密钥类型),请选择 Other type of secret(其他密钥类型)。

  6. 对于键/值对,请指定jdbcURL为密钥,将有效的 JDBC URL 指定为值。

    有效 JDBC URL 的格式取决于您是否使用身份验证以及使用 Hive 还是 Presto 作为查询引擎。以下列表显示了不同可能配置的有效 JBDC URL 格式。

    • Hive,没有身份验证 — jdbc:hive2://emr-cluster-master-public-dns:10000/;

    • Hive,LDAP 身份验证 — jdbc: hive2://emr-cluster-master-public-dns- name.1000/; =3; uid=David; pwd=welcome123; AuthMech

    • 对于启用了 SSL 的 Hive,JDBC URL 格式取决于您是否使用 Java 密钥库文件进行 TLS 配置。Java 密钥库文件有助于验证 Amazon EMR 集群主节点的身份。要使用 Java 密钥库文件,请在 EMR 集群上生成该文件并将其上传到 Data Wrangler。要生成文件,请在 Amazon EMR 集群上使用以下命令。keytool -genkey -alias hive -keyalg RSA -keysize 1024 -keystore hive.jks有关在 Amazon EMR 集群上运行命令的信息,请参阅使用保护对 EMR 集群的访问权限。Amazon Systems Manager要上传文件,请选择 Data Wrangler 用户界面左侧导航栏上的向上箭头。

      以下是启用 SSL 的 Hive 的有效 JDBC URL 格式:

      • 如果没有 Java 密钥库文件 — jdbc:hive2://emr-cluster-master-public-dns:10000/;AuthMech=3;UID=user-name;PWD=password;SSL=1;AllowSelfSignedCerts=1;

      • 使用 Java 密钥库文件— jdbc:hive2://emr-cluster-master-public-dns:10000/;AuthMech=3;UID=user-name;PWD=password;SSL=1;SSLKeyStore=/home/sagemaker-user/data/Java-keystore-file-name;SSLKeyStorePwd=Java-keystore-file-passsword;

    • Presto,没有身份验证 — jdbc: presto: //-dns: 8889/; emr-cluster-master-public

    • 对于启用了 LDAP 身份验证和 SSL 的 Presto,JDBC URL 格式取决于您是否使用 Java 密钥库文件进行 TLS 配置。Java 密钥库文件有助于验证 Amazon EMR 集群主节点的身份。要使用 Java 密钥库文件,请在 EMR 集群上生成该文件并将其上传到 Data Wrangler。要上传文件,请选择 Data Wrangler 用户界面左侧导航栏上的向上箭头。有关为 Presto 创建 Java 密钥库文件的信息,请参阅适用于 TLS 的 Java 密钥库文件。有关在 Amazon EMR 集群上运行命令的信息,请参阅使用保护对 EMR 集群的访问权限。Amazon Systems Manager

      • 如果没有 Java 密钥库文件 — jdbc:presto://emr-cluster-master-public-dns:8889/;SSL=1;AuthenticationType=LDAP Authentication;UID=user-name;PWD=password;AllowSelfSignedServerCert=1;AllowHostNameCNMismatch=1;

      • 使用 Java 密钥库文件— jdbc:presto://emr-cluster-master-public-dns:8889/;SSL=1;AuthenticationType=LDAP Authentication;SSLTrustStorePath=/home/sagemaker-user/data/Java-keystore-file-name;SSLTrustStorePwd=Java-keystore-file-passsword;UID=user-name;PWD=password;

在从 Amazon EMR 集群导入数据的过程中,您可能会遇到问题。有关对其进行故障排除的信息,请参阅Amazon EMR 出现的问题进行故障排除

从 Databricks(JDBC)导入数据

你可以使用 Databricks 作为亚马逊 Data Wrangler 流程SageMaker的数据源。要从 Databricks 导入数据集,请使用 JDBC(Java 数据库连接)导入功能访问您的 Databricks 数据库。访问数据库后,指定 SQL 查询以获取数据并将其导入。

我们假设你有一个正在运行的 Databricks 集群,并且你已经为它配置了 JDBC 驱动程序。有关更多信息,请参阅以下 Databricks 文档页面:

Data Wrangler 会将您的 JDBC URL 存储在。Amazon Secrets Manager您必须向您的亚马逊 SageMaker Studio IAM 执行角色授予使用Secrets Manager 权限。可以按照以下步骤授予权限。

要向 Secrets Manager 授予权限,请执行以下操作。

  1. 登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择 Roles(角色)。

  3. 在搜索栏中,指定亚马逊 SageMaker Studio 正在使用的亚马逊SageMaker执行角色。

  4. 选择角色。

  5. 选择 Add permissions(添加权限)。

  6. 选择创建内联策略

  7. 对于 “服务”,指定 “S ecrets Manager” 并将其选中。

  8. 在 “操作” 中,选择 “权限管理” 旁边的箭头图标。

  9. 选择PutResourcePolicy

  10. 对于资源,选择特定

  11. 选中 “此账户中的任意” 旁边的复选框。

  12. 选择Review policy(查看策略)

  13. 在 “名称” 中,指定一个名称。

  14. 选择 Create policy(创建策略)

您可以使用分区更快地导入数据。分区使 Data Wrangler 能够parallel 处理数据。默认情况下,Data Wrangler 使用 2 个分区。对于大多数用例,2 个分区可为您提供近乎最佳的数据处理速度。

如果您选择指定 2 个以上的分区,也可以指定一列对数据进行分区。列中值的类型必须是数字或日期。

我们建议只有在您了解数据的结构及其处理方式的情况下才使用分区。

您可以导入整个数据集或对其中的一部分进行采样。对于 Databricks 数据库,它提供以下采样选项:

  • 无-导入整个数据集。

  • 第一个 K-对数据集的前 K 行进行采样,其中 K 是您指定的整数。

  • 随机化-抽取指定大小的随机样本。

  • 分层 — 抽取分层的随机样本。分层样本会保留列中的值比率。

使用以下过程从 Databricks 数据库导入数据。

要从 Databricks 导入数据,请执行以下操作。

  1. 登录亚马逊SageMaker控制台

  2. 选择工作室

  3. 选择启动应用程序

  4. 从下拉列表中选择 Studio

  5. 在 Data Wrangler 流程的导入数据选项卡中,选择 Databricks。

  6. 指定以下字段:

    • 数据集名称-您想要在 Data Wrangler 流程中用作数据集的名称。

    • 驱动程序com.simba.spark.jdbc.d river。

    • JDBC URL — Databricks 数据库的 URL。不同的 Databricks 实例的 URL 格式可能有所不同。有关查找 URL 和在其中指定参数的信息,请参阅 JDBC 配置和连接参数以下是如何格式化 URL 的示例:jdbc: spark: //.c aws-sagemaker-datawrangler loud.databricks.com: 443/dafault;transpormode=HTTP;ssl=1;httpath=sql/protocolv1/o/3122619508517275/0909-200301-cut318;=3;UID= token;PWD=。AuthMech personal-access-token

      注意

      您可以指定包含 JDBC URL 的秘密 ARN,而不是指定 JDBC 网址本身。密钥必须包含具有以下格式的键值对:. jdbcURL:JDBC-URL 有关更多信息,请参阅什么是Secrets Manager?

  7. 指定 SQL SELECT 语句。

    注意

    Data Wrangler 不支持查询中的公用表表达式 (CTE) 或临时表。

  8. 对于采样,请选择一种采样方法。

  9. 选择 运行

  10. (可选)对于预览,请选择齿轮以打开分区设置

    1. 指定分区的数量。如果您指定分区数,则可以按列分区:

      • 输入分区数-指定一个大于 2 的值。

      • (可选)按列分区-指定以下字段。只有为输入分区数指定了值,才能按列进行分区

        • 选择列-选择您用于数据分区的列。列的数据类型必须为数字或日期。

        • 上限-根据您指定的列中的值,上限是您在分区中使用的值。您指定的值不会更改您要导入的数据。它只会影响导入的速度。为获得最佳性能,请指定一个接近列最大值的上限。

        • 下限-根据您指定的列中的值,下限是您在分区中使用的值。您指定的值不会更改您要导入的数据。它只会影响导入的速度。为获得最佳性能,请指定一个接近该列最小值的下限。

  11. 选择 Import (导入)

从 Snowflake 导入数据

你可以在 Data Wrangler 中使用 Snowflake 作为SageMaker数据源,在 Snowflake 中为机器学习准备数据。

使用 Snowflake 作为 Data Wrangler 中的数据源,您无需编写任何代码即可快速连接到 Snowflake。你可以将你在 Snowflake 中的数据与 Data Wrangler 中任何其他数据源的数据结合起来。

连接后,您可以交互式查询存储在 Snowflake 中的数据,使用 300 多个预配置的数据转换转换数据,使用一组强大的预配置可视化模板了解数据并识别潜在错误和极端值,快速识别数据准备工作流程中的不一致之处,并在模型部署到生产环境之前诊断问题。最后,您可以将数据准备工作流程导出到 Amazon S3,以便与亚马逊SageMaker自动驾驶仪、亚马逊SageMaker功能商店和亚马逊SageMaker模型构建管道等其他SageMaker功能一起使用。

您可以使用自己创建的Amazon Key Management Service密钥对查询的输出进行加密。有关 Amazon KMS 的更多信息,请参阅 Amazon Key Management Service

管理员指南

重要

要了解有关精细访问控制和最佳实践的更多信息,请参阅安全访问控制

本部分适用于在 SageMaker Data Wrangler 中设置 Snowflake 访问权限的 Snowflake 管理员。

重要

您负责管理和监控 Snowflake 中的访问控制。这包括用户可以访问哪些数据、用户可以使用哪些存储集成以及用户可以运行哪些查询。Data Wrangler 没有为 Snowflake 增加访问控制层。

访问控制包括以下内容:

  • 用户访问的数据。

  • 存储集成让 Sowflake 能够将查询结果写入 Amazon S3 存储桶

  • 用户可以运行的查询。

Data Wrangler 没有为 Snowflake 增加访问控制层。有关更多信息,请参阅配置 Snowflake 数据导入权限

重要

请注意,授予监控权限可以允许用户查看对象内的详细信息,例如仓库中的查询或使用情况。

配置 Snowflake 数据导入权限

要从 Sowflake 导入数据,请使用 Amazon S3 配置 Data Wrangler 的访问权限。

此功能目前尚未在可选区域开放。

Snowflake 需要在 S3 存储桶和目录上具有以下权限才能访问该目录中的文件:

  • s3:GetObject

  • s3:GetObjectVersion

  • s3:ListBucket

  • s3:ListObjects

  • s3:GetBucketLocation

创建 IAM 策略

您必须为Amazon S3 nowflake 配置访问权限。

以下是您用来创建策略的 JSON 策略文档:

# Example policy for S3 write access # This needs to be updated { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": "arn:aws:s3:::bucket/prefix/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::bucket/", "Condition": { "StringLike": { "s3:prefix": ["prefix/*"] } } } ] }

有关使用策略文档创建策略的信息和程序,请参阅创建 IAM 策略

有关概述在 Snowflake 上使用 IAM 权限的文档,请参阅以下资源:

要授予数据科学家 Snowflake 角色使用存储集成的权限,必须运行GRANT USAGE ON INTEGRATION integration_name TO snowflake_role;

  • integration_name是您的存储集成的名称。

  • snowflake_role是分配给数据科学家用户的默认 Snowflake 角色的名称。

设置 Snowflake OAuth 访问权限

你可以让你的用户使用身份提供商来访问 Snowflake,而不是让你的用户直接将他们的凭证输入到 Data Wrangler。以下是 Data Wrangler 支持的身份提供商的 Snowflake 文档的链接。

使用前面链接中的文档设置对您的身份提供商的访问权限。本节中的信息和过程可帮助您了解如何正确使用文档在 Data Wrangler 中访问 Snowflake。

您的身份提供商需要将 Data Wrangler 识别为应用程序。使用以下过程将 Data Wrangler 注册为身份提供商中的应用程序:

  1. 选择启动将 Data Wrangler 注册为应用程序的过程的配置。

  2. 向身份提供商中的用户提供对 Data Wrangler 的访问权限。

  3. 通过将客户端凭据存储为密钥来开启 OAuth 客户端身份Amazon Secrets Manager验证。

  4. 使用以下格式指定重定向 URL:https://domain- ID .studio。 Amazon Web Services 区域.sagemaker.aws/jupyter/default/lab

    重要

    您正在指定用于运行 Data Wrangler 的亚马逊SageMaker域名 ID。Amazon Web Services 区域

    重要

    您必须为每个亚马逊SageMaker域名以及运行 Data Wrangler 的Amazon Web Services 区域位置注册一个网址。来自域名且未为Amazon Web Services 区域其设置重定向 URL 的用户将无法通过身份提供商进行身份验证以访问 Snowflake 连接。

  5. 确保 Data Wrangler 应用程序允许使用授权码和刷新令牌授予类型。

在您的身份提供商中,您必须设置一台服务器,在用户级别向 Data Wrangler 发送 OAuth 令牌。服务器发送以 Snowflake 为受众的代币。

Snowflake 使用角色的概念,这些角色与 IAM 角色所使用的角色截然不同。Amazon必须将身份提供者配置为使用任何角色才能使用与 Snowflake 帐户关联的默认角色。例如,如果用户在其 Snowflake 个人资料中使用默认角色,则从 Data Wrangler 到 Snowflake 的连接将用systems administrator作该角色。systems administrator

可以按照以下步骤设置服务器。

要设置服务器,请执行以下操作。你正在在 Snowflake 中执行除最后一个步骤之外的所有步骤。

  1. 开始设置服务器或 API。

  2. 将授权服务器配置为使用授权码和刷新令牌授予类型。

  3. 指定访问令牌的生命周期。

  4. 设置刷新令牌空闲超时。空闲超时是指刷新令牌在未使用时过期的时间。

    注意

    如果您在 Data Wrangler 中调度作业,我们建议将空闲超时时间设置为大于处理作业的频率。否则,某些处理任务可能会失败,因为刷新令牌在运行之前已过期。刷新令牌到期后,用户必须通过访问他们通过 Data Wrangler 与 Snowflake 建立的连接来重新进行身份验证。

  5. 指定session:role-any为新范围。

    注意

    对于 Azure AD,复制作用域的唯一标识符。Data Wrangler 要求您向其提供标识符。

  6. 重要

    在 Snowflake 的外部 OAuth 安全集成中,启用。external_oauth_any_role_mode

重要

Data Wrangler 不支持轮换刷新令牌。使用轮换刷新令牌可能会导致访问失败或用户需要经常登录。

重要

如果刷新令牌过期,您的用户必须通过访问他们通过 Data Wrangler 与 Snowflake 建立的连接来重新进行身份验证。

设置 OAuth 提供商后,您可以向 Data Wrangler 提供连接提供商所需的信息。您可以使用身份提供商提供的文档来获取以下字段的值:

  • 令牌 URL — 身份提供者发送给 Data Wrangler 的令牌的 URL。

  • 授权 URL-身份提供商的授权服务器的 URL。

  • 客户端 ID — 身份提供者的 ID。

  • 客户端密钥-只有授权服务器或 API 才能识别的密钥。

  • (仅限 Azure AD)您复制的 OAuth 范围凭据。

您将字段和值存储在Amazon Secrets Manager密钥中,然后将其添加到您用于 Data Wrangler 的 Amazon SageMaker Studio 生命周期配置中。生命周期配置是一个 shell 脚本。使用它使 Data Wrangler 可以访问密钥的 Amazon Resource Name (ARN)。有关创建密钥的信息,请参阅将硬编码密钥移至。Amazon Secrets Manager有关在 Studio 中使用生命周期配置的信息,请参阅在亚马逊 SageMaker Studio 中使用生命周期配置

重要

在创建 Secrets Manager 密钥之前,请确保您在 Amazon SageMaker Studio 中使用的SageMaker执行角色有权在 Secrets Manager 中创建和更新密钥。有关添加权限的更多信息,请参阅示例:创建密钥的权限

对于 Okta 和 Ping Federate 来说,秘密的格式如下:

{ "token_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/token", "client_id":"example-client-id", "client_secret":"example-client-secret", "identity_provider":"OKTA"|"PING_FEDERATE", "authorization_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/authorize" }

对于 Azure AD,以下是密钥的格式:

{ "token_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/token", "client_id":"example-client-id", "client_secret":"example-client-secret", "identity_provider":"AZURE_AD", "authorization_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/authorize", "datasource_oauth_scope":"api://appuri/session:role-any)" }

您的LifeCycle配置必须使用您创建的 Secrets Manager 密钥。您可以创建LifeCycle配置,也可以修改已经创建的配置。配置必须使用以下脚本。

#!/bin/bash set -eux ## Script Body cat > ~/.snowflake_identity_provider_oauth_config <<EOL { "secret_arn": "example-secret-arn" } EOL

有关设置生命周期配置的信息,请参阅创建和关联生命周期配置。在设置过程中,请执行以下操作:

  • 将配置的应用程序类型设置为Jupyter Server

  • 将配置附加到拥有您的用户的亚马逊SageMaker域。

  • 让配置在默认情况下运行。每次用户登录 Studio 时,它都必须运行。否则,您的用户在使用 Data Wrangler 时将无法使用配置中保存的凭据。

  • 生命周期配置在用户的主文件夹snowflake_identity_provider_oauth_config中创建一个名为的文件。该文件包含Secrets Manager 密钥。每次初始化 Jupyter Server 的实例时,请确保它位于用户的主文件夹中。

通过 Data Wrangler 和 Snowflake 之间建立私有连接 Amazon PrivateLink

本节介绍Amazon PrivateLink如何使用在 Data Wrangler 和 Snowflake 之间建立私有连接。以下各节详述这些步骤。

创建 VPC

如果您没有设置 VPC,请按照创建新 VPC 的说明进行创建。

选择了要用于建立私有连接的 VPC 后,请向 Snowflake 管理员提供以下凭证以启用Amazon PrivateLink:

  • VPC ID

  • Amazon 账户 ID

  • 你用来访问 Snowflake 的相应账户网址

重要

正如 Snowflake 的文档中所述,启用您的 Snowflake 帐户最多可能需要两个工作日。

激活后Amazon PrivateLink,通过在 Amazon PrivateLink Snowflake 工作表中运行以下命令来检索您所在地区的配置。登录您的 Snowflake 控制台,然后在 “工作表” 下输入以下内容:select SYSTEM$GET_PRIVATELINK_CONFIG();

  1. privatelink_ocsp-url从生成的 JSON 对象中检索以下:privatelink-account-nameprivatelink_ocsp-urlprivatelink-account-url、、和的值。下面的代码段显示了每个值的示例。存储这些值以备将来使用。

    privatelink-account-name: xxxxxxxx.region.privatelink privatelink-vpce-id: com.amazonaws.vpce.region.vpce-svc-xxxxxxxxxxxxxxxxx privatelink-account-url: xxxxxxxx.region.privatelink.snowflakecomputing.com privatelink_ocsp-url: ocsp.xxxxxxxx.region.privatelink.snowflakecomputing.com
  2. 切换到您的Amazon控制台并导航到 VPC 菜单。

  3. 从左侧面板中,选择终端节点链接导航到 VPC 终端节点设置。

    到达那里后,选择创建端点

  4. 选择按名称查找服务的单选按钮,如以下屏幕截图所示。

  5. 在 “服务名称” 字段中,粘贴您在上一步中检索到的值privatelink-vpce-id,然后选择 “验证”。

    如果连接成功,屏幕上会出现一条绿色警报,提示已找到服务名称,并且 VPC子网选项会自动展开,如以下屏幕截图所示。根据您的目标区域,生成的屏幕可能会显示其他Amazon区域名称。

  6. 从 VPC 下拉列表中选择与您发送给 Snowflake 的相同 VPC ID。

  7. 如果您尚未创建子网,请执行以下有关创建子网的说明集。

  8. VPC 下拉列表中选择子网。然后选择创建子网并按照提示在您的 VPC 中创建子集。确保选择您发送给 Snowflake 的 VPC ID。

  9. 在 “安全组配置” 下,选择 “创建新安全组” 以在新选项卡中打开默认的安全组屏幕。在此新选项卡中,选择创建安全组

  10. 为新安全组提供名称(例如datawrangler-doc-snowflake-privatelink-connection)和描述。请务必选择您在前面的步骤中使用的 VPC ID。

  11. 添加两条规则以允许从您的 VPC 内部流向此 VPC 终端节点。

    在单独的选项卡中导航到您的 V PC 下方的 VPC,并检索您的 VPC 的 CIDR 区块。然后在 “入站规则” 部分中选择 “添加规则”。选择HTTPS类型,在表单中将 S ou rce 保留为 “自定义”,然后粘贴从前一次describe-vpcs调用中检索到的值(例如10.0.0.0/16)。

  12. 选择 Create Security Group(创建安全组)。从新创建的安全组(例如sg-xxxxxxxxxxxxxxxxx)检索安全组 ID

  13. VPC 终端节点配置屏幕中,删除默认安全组。将安全组 ID 粘贴到搜索字段中,然后选中该复选框。

  14. 选择创建端点

  15. 如果终端节点创建成功,您将看到一个页面,其中包含由 VPC ID 指定的 VPC 终端节点配置的链接。选择该链接以查看完整配置。

    检索 DNS 名称列表中最上面的记录。这可以与其他 DNS 名称区分开来,因为它仅包含区域名称(例如us-west-2),不包含可用区字母表示法(例如us-west-2a)。存储此信息以供将来使用。

本部分介绍如何为您的 VPC 中的 Sowflake 终端节点配置 DNS。这允许您的 VPC 解析对 Snowflake Amazon PrivateLink 终端节点的请求。

  1. 在您的Amazon主机中导航到 Route 53 菜单

  2. 选择 “托管区域” 选项(如有必要,请展开左侧菜单以找到此选项)。

  3. 选择 Create Hosted Zone(创建托管区域)。

    1. 域名字段中,引用前面步骤privatelink-account-url中存储的值。在此字段中,您的 Snowflake 账户 ID 已从 DNS 名称中删除,仅使用以区域标识符开头的值。稍后还会为子域创建资源记录集region.privatelink.snowflakecomputing.com例如。

    2. 在 “类型” 部分中选择 “私有托管区域” 的单选按钮。您的区域代码可能不是us-west-2。引用 Snowflake 返回给你的 DNS 名称。

    3. 要与托管区域关联的 VPC 部分中,选择您的 VPC 所在的区域以及前面步骤中使用的 VPC ID。

    4. 选择 Create Hosted Zone(创建托管区域)。

  4. 接下来,创建两条记录,一条为 fo privatelink-account-url r,一条为privatelink_ocsp-url

    • 在 “托管区域” 菜单中,选择 “创建记录集”。

      1. 在 “记录名称” 下,仅输入您的 Snowflake 账户 ID(中的前 8 个字符privatelink-account-url)。

      2. 在 “记录类型” 下,选择 CNAME

      3. 在 “” 下,输入您在设置 Snowflake Amazon PrivateLink 集成部分的最后一步中检索到的区域 VPC 终端节点的 DNS 名称。

      4. 选择创建记录

      5. 对我们注解为privatelink-ocsp-url的 OCSP 记录重复上述步骤,从记录名称的 8 个字符的 Snowflake ID 开始(例如)。ocsp ocsp.xxxxxxxx

本部分介绍如何为您的 VPC 配置 Route 53 解析器入站终端节点。

  1. 在您的Amazon主机中导航到 Route 53 菜单

    • 在 “安全” 部分的左侧面板中,选择 “安全组” 选项。

  2. 选择 Create Security Group(创建安全组)。

    • 为您的安全组提供名称(例如datawranger-doc-route53-resolver-sg)和描述。

    • 选择前面步骤中使用的 VPC ID。

    • 创建允许在 VPC CIDR 块内通过 UDP 和 TCP 进行 DNS 的规则。

    • 选择 Create Security Group(创建安全组)。记下安全组 ID,因为添加了允许流向 VPC 终端节点安全组的规则。

  3. 在您的Amazon主机中导航到 Route 53 菜单

    • 在 “解析器” 部分中,选择 “入站端点” 选项。

  4. 选择创建入站终端节点

    • 提供端点名。

    • 区域下拉列表中的 VPC 中,选择您在之前所有步骤中使用的 VPC ID。

    • 在此端点的安全组下拉列表中,选择本节步骤 2 中的安全组 ID。

    • IP 地址部分中,选择一个可用区域,选择一个子网,然后将无线电选择器保留为 “使用为每个 IP 地址自动选择的 IP 地址”。

    • 选择 Submit(提交)。

  5. 创建入站端点后选择该端点。

  6. 创建入站端点后,记下解析器的两个 IP 地址。

SageMaker VPC 终端节点

本节介绍如何为以下内容创建 VPC 终端节点:亚马逊SageMaker工作室、SageMaker笔记本电脑、SageMaker API、SageMaker运行时和亚马逊SageMaker功能存储运行时。

创建应用于所有端点的安全组。

  1. 在Amazon控制台中导航到 EC2 菜单

  2. 在 “网络和安全” 部分中,选择 “安全组” 选项。

  3. 选择Create security group(创建安全组)。

  4. 提供安全组名称和描述(例如datawrangler-doc-sagemaker-vpce-sg)。稍后会添加一条规则,允许通过 HTTPS 传输SageMaker到此组。

创建端点

  1. 在Amazon控制台中导航到 VPC 菜单

  2. 选择 “端点” 选项。

  3. 选择 Create Endpoint(创建端点)

  4. 通过在搜索字段中输入服务名称来搜索服务。

  5. VPC 下拉列表中,选择您的 Snowflake Amazon PrivateLink 连接所在的 VPC。

  6. 子网部分中,选择可以访问 Snow PrivateLink flake 连接的子网。

  7. 选中 “启用 DNS 名称” 复选框。

  8. 在 Sec urit y groups 部分,选择您在上一部分中创建的安全组。

  9. 选择 Create Endpoint(创建端点)

配置 Studio 和 Data Wrangl

本部分介绍如何配置 Studio 和 Data Wrangler。

  1. 配置安全组。

    1. 在Amazon控制台中导航到 Amazon EC2 菜单。

    2. 在 “网络和安全” 部分中选择 “安全” 选项。

    3. 选择 Create Security Group(创建安全组)。

    4. 为您的安全组提供名称和描述(例如datawrangler-doc-sagemaker-studio)。

    5. 创建以下入站规则。

      • 与您在设置 Snowflake 集成步骤中创建的 Snowflake PrivateLink 连接配置的安全的 HTTPS 连接。PrivateLink

      • 与您在设置 Snowflake 集成步骤中创建的 Snowflake PrivateLink 连接配置的安全的 HTTP 连接。PrivateLink

      • 您在为您的 VPC 配置 Route 53 解析器入站终端节点的步骤 2 中创建的 UDP 和 TCP for DNS(端口 53)到 Route 53 解析器入站终端节点

    6. 选择右下角的创建安全组按钮。

  2. 配置Studio。

    • 导航到Amazon控制台中的SageMaker菜单。

    • 在左侧控制台中,选择 SageMakerStudio 选项。

    • 如果您未配置任何域,则会出现 “入门” 菜单。

    • 从 “入” 菜单中选择 “标准设置” 选项。

    • 在 “身份验证方法” 下,选择 IId Amazonentity and Access Management (IAM)

    • 在 “权限” 菜单中,您可以创建新角色或使用先前存在的角色,具体取决于您的用例。

      • 如果您选择创建新角色,则系统会显示提供 S3 存储桶名称的选项,系统会为您生成策略。

      • 如果您已经创建了一个拥有您需要访问的 S3 存储段权限的角色,请从下拉列表中选择该角色。应将AmazonSageMakerFullAccess策略附加于此。

    • 选择网络和存储下拉列表以配置 VPC、安全和子网的SageMaker用途。

      • VPC 下,选择您的 Sowflake PrivateLink 连接所在的 VPC。

      • 子网下,选择可以访问 S nowflake PrivateLink 连接的子网。

      • Studio 的网络访问下,选择仅限 VPC

      • 在 Sec urity groups(安全组)下,选择您在步骤 1 中创建的安全组。

    • 选择 Submit(提交)。

  3. 编辑SageMaker安全组。

    • 创建以下入站规则:

      • 端口 2049 到在步骤 2 SageMaker 中自动创建的入站和出站 NFS 安全组(安全组名称包含 Studio 域 ID)。

      • 访问自身的所有 TCP 端口(仅限 VPC SageMaker 是必需的)。

  4. 编辑 VPC 终端节点安全组:

    • 在Amazon控制台中导航到 Amazon EC2 菜单。

    • 找到您在前面的步骤中创建的安全组。

    • 添加允许来自步骤 1 中创建的安全组的 HTTPS 流量的入站规则。

  5. 创建用户配置文件。

    • SageMakerStudio 控制面板中选择添加用户

    • 提供用户名称。

    • 执行角色,选择创建新角色或使用先前存在的角色。

      • 如果您选择创建新角色,则系统会为您提供提供 Amazon S3 存储桶名称的选项,系统会为您生成策略。

      • 如果您已经创建了一个拥有您需要访问的 Amazon S3 存储桶权限的角色,请从下拉列表中选择该角色。应将AmazonSageMakerFullAccess策略附加于此。

    • 选择 Submit(提交)。

  6. 创建数据流(遵循前一节中概述的数据科学家指南)。

    • 添加 Snowflake 连接时,在 Snowfla ke 帐户名称privatelink-account-name(字母数字)字段中输入(来自设置 Snowflake PrivateLink 集成步骤)的值,而不是普通的 Snowflake 帐户名称。其他一切都保持不变。

向数据科学家提供信息

向数据科学家提供从亚马逊 SageMaker Data Wrangler 访问 Snowflake 所需的信息。

  1. 要允许您的数据科学家从 SageMaker Data Wrangler 访问 Snowflake,请向他们提供以下内容之一:

    • 对于基本身份验证,Sowflake 帐户名、用户名称和密码。

    • 对于 OAuth,身份提供商中的用户名和密码。

    • 对于 ARN,Secrets Manager 会将亚马逊资源名称 (ARN) 保密。

    • 使用密钥管理器和Amazon密钥的 ARN 创建的密钥。如果您选择此选项,请使用以下步骤为 Snowflake 创建密钥。

      重要

      如果您的数据科学家使用 Snowflake 凭证(用户名和密码)选项连接到 Snowflake,则可以使用 Snowflake Secrets Manager 将凭据存储在密钥中。Secrets Manager 会作为最佳实践安全计划的一部分轮换密钥。只有在设置 Studio 用户配置文件时配置了 Studio 角色后,才能访问在密Secrets Manager 中创建的密钥。这需要您将此权限添加到附加到您的 Studio 角色的策略中。secretsmanager:PutResourcePolicy

      我们强烈建议您将角色策略的范围限制为不同的 Studio 用户组使用不同的角色。您可以为 Secrets Manager 密钥添加基于资源的额外权限。有关您可以使用的条件密钥,请参阅管理密钥策略

      有关创建密钥的信息,请参阅创建密钥。你需要为自己创建的秘密付费。

  2. 向数据科学家提供您在步骤 3:在 S nowflake 中创建云存储集成中创建的存储集成的名称。这是新集成的名称,在您运行的 CREATE INTEGRATION SQL 命令integration_name中调用,如以下代码段所示:

    CREATE STORAGE INTEGRATION integration_name TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = S3 ENABLED = TRUE STORAGE_AWS_ROLE_ARN = 'iam_role' [ STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control' ] STORAGE_ALLOWED_LOCATIONS = ('s3://bucket/path/', 's3://bucket/path/') [ STORAGE_BLOCKED_LOCATIONS = ('s3://bucket/path/', 's3://bucket/path/') ]

数据科学家指南

使用以下方法连接 Snowflake 并在 Data Wrangler 中访问您的数据。

重要

您的管理员需要使用前面部分中的信息来设置 Snowflake。如果您遇到问题,请联系他们寻求故障排除帮助。

您必须使用 Studio 版本 1.3.0 或更高版本。使用以下步骤打开亚马逊 SageMaker Studio 并查看您正在运行哪个版本。

要打开 Studio 并检查其版本,请参阅以下步骤。

  1. 使用中的步骤通过亚马逊SageMaker工作先决条件室访问 Data Wrangler。

  2. 在您要用来启动 Studio 的用户旁边,选择启动应用程序

  3. 选择工作室

  4. 加载 Studio 后,依次选择文件新建终端

  5. 启动 Studio 后,依次选择文件新建终端

  6. 输入cat /opt/conda/share/jupyter/lab/staging/yarn.lock | grep -A 1 "@amzn/sagemaker-ui-data-prep-plugin@"以打印您的 Studio 实例的版本。您必须拥有 Studio 版本 1.3.0 才能使用 Snowflake。

您可以从中更新亚马逊SageMaker工作室Amazon Web Services Management Console。有关更新 Studio 的更多信息,请参阅亚马逊SageMaker工作室用户界面概述

您可以通过以下方式之一连接到 Snowflake:

  • 在 Data Wrangler 中指定您的 Sowflake 凭证(账户名、用户名称和密码)。

  • 提供包含凭证的密钥的 Amazon 资源名称 (ARN)。

  • 使用连接到 Snowflake 的开放访问委托标准 (OAuth) 提供商。您的管理员可以授予您访问以下 OAuth 提供商之一的权限:

与您的管理员讨论连接到 Snowflake 所需使用的方法。

以下部分介绍如何使用上述方法连接 Sowflake。

Specifying your Snowflake Credentials
使用您的凭据将数据集从 Snowflake 导入 Data Wrangler
  1. 登录亚马逊SageMaker控制台

  2. 选择工作室

  3. 选择启动应用程序

  4. 从下拉列表中选择 Studio

  5. 选择主选标记标。

  6. 选择 Data (数据)

  7. 选择 Data Wrangler

  8. 选择导入数据

  9. 在 “可用” 下,选择 “雪花”。

  10. 在 “身份验证方法” 中,选择 “基本用户名-密码”。

  11. 指定以下内容:

    • Snowflake 账户名称(字母数字)— Snowflake 账户的全名。

    • 用户名 — 用于访问该帐户的用户名。

    • P assword — 与用户名关联的密码。

    • 存储集成-您的管理员为您提供存储集成信息。该配置指定了 IAM Amazon S3。

    • 连接名称-您为唯一标识连接而指定的名称。

    • (可选)KMS 密钥 ID-您创建的 KMS 密钥。您可以指定其 ARN 来加密 Snowflake 查询的输出。否则,Data Wrangler 将使用默认加密。

  12. 选择 Connect(连接)。

Providing an Amazon Resource Name (ARN)
使用 ARN 将数据集从 Snowflake 导入 Data Wrangler
  1. 登录亚马逊SageMaker控制台

  2. 选择工作室

  3. 选择启动应用程序

  4. 从下拉列表中选择 Studio

  5. 选择主选标记标。

  6. 选择 Data (数据)

  7. 选择 Data Wrangler

  8. 选择导入数据

  9. 在 “可用” 下,选择 “雪花”。

  10. 对于身份验证方法,选择 ARN

  11. 指定以下内容:

    • S@@ ecrets Manager AR N — 用于存储用于连接到 Snowflake 的凭证的Amazon Secrets Manager密钥的 ARN。

    • 存储集成 — 您的管理员可以获得存储集成信息。该配置指定了 IAM Amazon S3。

    • KMS 密钥 ID-您的管理员提供

    • 连接名称-您为连接指定的名称。您可以选择连接

    • (可选)KMS 密钥 ID-您创建的 KMS 密钥。它用于加密 Snowflake 查询的输出。

  12. 选择 Connect(连接)。

Using an OAuth Connection
重要

您的管理员对您的 Studio 环境进行了自定义,以提供您在使用 OAuth 连接时使用的功能。可能需要重启 Jupyter 服务器应用程序才能使用此功能。

使用以下过程更新 Jupyter 服务器应用程序。

  1. 在 Studio 中,选择文件

  2. 选择 “关闭”。

  3. 选择 “关闭服务器”。

  4. 关闭您用于访问 Studio 的选项卡或窗口。

  5. 在亚马逊SageMaker控制台上,打开 Studio。

使用您的凭据将数据集从 Snowflake 导入 Data Wrangler
  1. 登录亚马逊SageMaker控制台

  2. 选择工作室

  3. 选择启动应用程序

  4. 从下拉列表中选择 Studio

  5. 选择主选标记标。

  6. 选择 Data (数据)

  7. 选择 Data Wrangler

  8. 选择导入数据

  9. 在 “可用” 下,选择 “雪花”。

  10. 对于身份验证方法,选择 OAuth

  11. 指定以下内容:

    • 连接名称-您为唯一标识连接而指定的名称。

    • Snowflake 账户名称(字母数字)— Snowflake 账户的全名。

    • (可选)KMS 密钥 ID-您创建的 KMS 密钥。您可以指定其 ARN 来加密 Snowflake 查询的输出。否则,Data Wrangler 将使用默认加密。

  12. 选择 Connect(连接)。

连接到 Snowflake 后,您可以开始从 Snowflake 导入数据的过程。

在 Data Wrangler 中,您可以查看您的数据仓库、数据库和架构,还可以使用眼睛图标预览表。选择 “预览表” 图标后,将生成该表的架构预览。必须先选择仓库,然后才能预览表格。

重要

如果您要导入的列类型为TIMESTAMP_TZ或的数据集TIMESTAMP_LTZ,请将其::string添加到查询的列名中。有关更多信息,请参见如何:将 TIMESTAMP_TZ 和 TIMESTAMP_LTZ 数据卸载到 Parque t 文件中。

选择数据仓库、数据库和架构后,您现在可以编写查询并运行它们。您的查询输出显示在查询结果下。

确定查询的输出后,您可以将查询的输出导入到 Data Wrangler 流程中以执行数据转换。

查询完数据后,导航到数据流屏幕开始转换数据。

从软件即服务 (SaaS) 平台导入数据

你可以使用 Data Wrangler 从四十多个软件即服务 (SaaS) 平台导入数据。要从 SaaS 平台导入数据,您或您的管理员必须使用亚马逊AppFlow将数据从平台传输到 Amazon S3 或 Amazon Redshift。有关亚马逊的更多信息AppFlow,请参阅什么是亚马逊AppFlow? 如果您不需要使用Amazon Redshift ft,我们建议将数据传输到 Amazon S3 以简化流程。

Data Wrangler 支持从以下 SaaS 平台传输数据:

前面的列表包含指向有关设置数据源的更多信息的链接。阅读以下信息后,您或您的管理员可以参考前面的链接。

当您导航到 Data Wrangler 流程的 “导入” 选项卡时,您会在以下部分下看到数据源:

  • Available

  • 设置数据源

无需额外配置,即可连接到 “可用” 下的数据源。您可以选择数据源并导入数据。

设置数据源下的数据源要求您或您的管理员使用亚马逊将数据从 SaaS 平台传输AppFlow到 Amazon S3 或 Amazon Redshift。有关执行传输的信息,请参阅使用亚马逊AppFlow传输您的数据

执行数据传输后,SaaS 平台在 “可用” 下显示为数据源。你可以选择它并将你传输的数据导入到 Data Wrangler 中。您传输的数据显示为可供查询的表。

使用亚马逊AppFlow传输您的数据

亚马逊AppFlow是一个平台,您可以使用它将数据从 SaaS 平台传输到Amazon S3 或 Amazon Redshift,而无需编写任何代码。要执行数据传输,请使用Amazon Web Services Management Console。

重要

您必须确保已设置权限才能执行数据传输。有关更多信息,请参阅亚马逊 AppFlow 权限

添加权限后,您可以传输数据。在亚马逊内部AppFlow,您可以创建一个用于传输数据的流程。流程是一系列配置。您可以使用它来指定是按计划运行数据传输,还是要将数据分区为单独的文件。配置完流程后,运行它来传输数据。

有关创建流程的信息,请参阅在 Amazon 中创建流程AppFlow。有关运行流程的信息,请参阅激活 Amazon AppFlow 流程

传输数据后,使用以下步骤在 Data Wrangler 中访问数据。

重要

在尝试访问数据之前,请确保您的 IAM 角色具有以下策略:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "glue:SearchTables", "Resource": [ "arn:aws:glue:*:*:table/*/*", "arn:aws:glue:*:*:database/*", "arn:aws:glue:*:*:catalog" ] } ] }

默认情况下,您用于访问 Data Wrangler 的 IAM 角色是。SageMakerExecutionRole有关添加策略的更多信息,请参阅添加 IAM 身份权限(控制台)

要连接到数据源,请执行以下操作。

  1. 登录亚马逊SageMaker控制台

  2. 选择工作室

  3. 选择启动应用程序

  4. 从下拉列表中选择 Studio

  5. 选择主选标记标。

  6. 选择 Data (数据)

  7. 选择 Data Wrangler

  8. 选择导入数据

  9. 在 “可用” 下,选择数据源。

  10. Name 字段中,指定连接的名称。

  11. (可选)选择高级配置

    1. 选择一个工作组

    2. 如果您的工作组尚未强制执行 Amazon S3 输出位置,或者您未使用工作组,请为 Amazon S3 的查询结果位置指定一个值。

    3. (可选)对于数据保留期,选中复选框以设置数据保留期并指定在删除数据之前存储数据的天数。

    4. (可选)默认情况下,Data Wrangler 会保存连接。您可以选择取消选中该复选框而不保存连接。

  12. 选择 Connect(连接)。

  13. 指定查询。

    注意

    为了帮助您指定查询,可以在左侧导航面板上选择一个表。Data Wrangler 显示表名称和表格的预览。选择表名称旁边的图标复制名称。可以在查询中使用表名。

  14. 选择 运行

  15. 选择导入查询

  16. 对于数据集名称,指定数据集的名称。

  17. 选择 Add(添加)。

当你导航到导入数据屏幕时,你可以看到你创建的连接。您可以使用连接导入更多数据。

导入的数据存储

当您查询来自Amazon Athena 或Amazon Redshift ft 的数据时,查询的数据集会自动存储在 Amazon S3 中。数据存储在您使用 Studio 的Amazon地区的默认 SageMaker S3 存储桶中。

默认 S3 存储桶具有以下命名约定:sagemaker-region-account number。例如,如果您的账号是 111122223333 并且您使用的是 Studio,则导入的数据集将存储在 us-east-1 111122223333 中。sagemaker-us-east-1-

Data Wrangler 流依赖于此 Amazon S3 数据集位置,因此在使用依赖流时,您不应在 Amazon S3 中修改此数据集。如果您确实修改了此 S3 位置,并且想要继续使用数据流,则必须删除.flow 文件trained_parameters中的所有对象。为此,请从 Studio 下载.flow 文件,然后针对的trained_parameters每个实例删除所有条目。完成后,trained_parameters应该是一个空的 JSON 对象:

"trained_parameters": {}

当您导出并使用数据流处理数据时,您导出的.flow 文件引用 Amazon S3 中的此数据集。使用以下部分了解更多信息。

Amazon Redshift 导入存储

Data Wrangler 将您的查询结果的数据集存储在默认 SageMaker S3 存储桶中的 Parquet 文件中。

此文件存储在以下前缀(目录)下:redshift/ uuid /data/,其中 u uid 是为每个查询创建的唯一标识符。

例如,如果您的默认存储桶是sagemaker-us-east-1-111122223333,则从Amazon Redshift ft 查询的单个数据集位于 s3: //-111122223333/redshift/ sagemaker-us-east uuid /data/中。

Amazon Athena

当您查询 Athena 数据库并导入数据集时,Data Wrangler 将数据集以及该数据集的子集或预览文件存储在 Amazon S 3 中。

您通过选择导入数据集导入的数据集以 Parq uet 格式存储在 Amazon S3 中。

当您在 Athena 导入屏幕上选择 “运行” 时,预览文件将以 CSV 格式写入,并且最多包含来自查询数据集的 100 行。

您查询的数据集位于前缀(目录)下:athena/ uuid /data/,其中 uui d 是为每个查询创建的唯一标识符。

例如,如果您的默认存储桶是,则从 Athena/ uuid/sagemaker-us-east-1-111122223333data/ example_dataset.parquet 中查询的单个数据集位于 s3://sagemaker-us-east-1-111122223333 /athena/

在 Data Wrangler 中为预览数据框而存储的数据集子集存储在前缀下:athena/。