本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
导入
您可以使用Amazon Amazon SageMaker Redshift Amazon Athena Wrangler 从以下数据源导入数据。您导入的数据集最多可以包含 1000 个列。
主题
一些数据源允许您添加多个数据连接:
-
您可以连接到多个 Amazon Redshift 集群。每个集群都会变成数据源。
-
您可以查询账户中的任何 Athena 数据库,从该数据库导入数据。
当您从数据源导入数据集时,它会出现在您的数据流中。Data Wrangler 会自动推断数据集中每列的数据类型。要修改这些类型,请选择数据类型步骤并选择编辑数据类型。
当您从 Athena 或 Amazon Redshift 导入数据时,导入的数据会自动存储在您使用 Studio 的Amazon地区的默认 SageMaker S3 存储桶中。此外,Athena 将你在 Data Wrangler 中预览的数据存储在这个存储桶中。要了解更多信息,请参阅 导入的数据存储。
重要
默认 Amazon S3 存储桶。我们强烈建议您添加存储桶策略以限制对导入到 Data Wrangler 的数据集的访问权限。
重要
此外,如果您将托管策略用于SageMaker,我们强烈建议您将其范围缩小到允许您执行用例的最严格的策略。有关更多信息,请参阅授予 IAM 角色使用 Data Wrangler 的权限:
除Amazon SimpSimple Storage Service (Amazon S3) 以外的所有数据源都需要您指定 SQL 查询才能导入数据。对于每个查询,必须指定以下内容:
-
数据目录
-
数据库。
-
表
您可以在下拉菜单或查询中指定数据库或数据目录的名称。以下是示例查询:
-
select * from
— 该查询不使用用户界面 (UI) 下拉菜单中指定的任何内容来运行。它example-data-catalog-name
.example-database-name
.example-table-name
example-table-name
在example-database-name
内部查询example-data-catalog-name
。 -
select * from
— 该查询使用您在数据目录下拉菜单中指定的数据目录来运行。它example-database-name
.example-table-name
example-table-name
example-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 任务、将数据提取到feature store 或创建SageMaker管道,请注意,这些集成要求 Amazon S3 输入数据位于同一区域。SageMaker Amazon
重要
如果您要导入 CSV 文件,请确保它满足以下要求:
-
数据集中的记录不能超过一行。
-
反斜杠是唯一有效的转义字符。
\
-
数据集必须使用以下分隔符之一:
-
逗号 —
,
-
结肠—
:
-
分号 —
;
-
管道 —
|
-
选项卡 —
[TAB]
-
为了节省空间,可以导入压缩的 CSV 文件。
Data Wrangler 使您能够导入整个数据集或对其中的一部分进行采样。对于 Amazon S3,它提供了以下采样选项:
-
无-导入整个数据集。
-
第一个 K-对数据集的前 K 行进行采样,其中 K 是您指定的整数。
-
随机化-抽取指定大小的随机样本。
-
分层 — 抽取分层的随机样本。分层样本会保留列中的值比率。
导入数据后,您还可以使用采样转换器从整个数据集中采集一个或多个样本。有关采样变压器的更多信息,请参阅采样。
您可以将单个文件或多个文件作为数据集导入。当您的数据集被分区为单独的文件时,可以使用多文件导入操作。它从 Amazon S3 目录中获取所有文件,并将它们导入为单个数据集。有关可以导入的文件类型以及如何导入它们的信息,请参阅以下各节。
您也可以使用参数导入与模式匹配的文件子集。参数可帮助您更有选择地选择要导入的文件。要开始使用参数,请编辑数据源并将其应用到用于导入数据的路径。有关更多信息,请参阅为不同的数据集重复使用数据流:
从 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 查询外,你还可以使用:
在 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
-
选择工作室。
-
选择启动应用程序。
-
从下拉列表中选择 Studio。
-
选择主选标记标。
-
选择 Data (数据)。
-
选择 Data Wrangler。
-
选择导入数据。
-
在 “可用” 下,选择 Amazon Athena。
-
对于数据目录,选择一个数据目录。
-
使用 D ataze 下拉列表选择要查询的数据库。选择数据库时,可以使用 “详细信息” 下列出的表预览数据库中的所有表。
-
(可选)选择高级配置。
-
选择一个工作组。
-
如果您的工作组尚未强制执行 Amazon S3 输出位置,或者您未使用工作组,请为 Amazon S3 的查询结果位置指定一个值。
-
(可选)对于数据保留期,选中复选框以设置数据保留期并指定在删除数据之前存储数据的天数。
-
(可选)默认情况下,Data Wrangler 会保存连接。您可以选择取消选中该复选框而不保存连接。
-
-
对于采样,请选择一种采样方法。选择 “无” 以关闭采样。
-
在查询编辑器中输入您的查询,然后使用 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
-
要导入查询结果,请选择导入。
完成上述步骤后,您查询和导入的数据集将出现在 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 执行角色授予管理存储桶生命周期配置的权限。可以按照以下步骤授予权限。
要授予管理生命周期配置的权限,请执行以下操作。
-
登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
选择 Roles(角色)。
-
在搜索栏中,指定亚马逊 SageMaker Studio 正在使用的亚马逊SageMaker执行角色。
-
选择角色。
-
选择 Add permissions(添加权限)。
-
选择创建内联策略。
-
对于服务,指定 S3 并选择它。
-
在 “阅读” 部分下,选择GetLifecycleConfiguration。
-
在 “写入” 部分下,选择PutLifecycleConfiguration。
-
对于资源,选择特定。
-
在 “操作” 中,选择 “权限管理” 旁边的箭头图标。
-
选择PutResourcePolicy。
-
对于资源,选择特定。
-
选中 “此账户中的任意” 旁边的复选框。
-
选择Review policy(查看策略)。
-
在 “名称” 中,指定一个名称。
-
选择 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 集群
-
选择工作室。
-
选择启动应用程序。
-
从下拉列表中选择 Studio。
-
选择主选标记标。
-
选择 Data (数据)。
-
选择 Data Wrangler。
-
选择导入数据。
-
在 “可用” 下,选择 Amazon Athena。
-
选择 Amazon Redshift ft。
-
为类型选择临时证书 (IAM)。
-
输入连接名称。这是 Data Wrangler 用来识别此连接的名称。
-
输入群集标识符以指定要连接的集群。注意:仅输入集群标识符,而不输入 Amazon Redshift 集群的完整终端节点。
-
输入要连接到的数据库的数据库名称。
-
输入数据库用户以标识要用于连接数据库的用户。
-
对于卸载 IAM 角色,输入 Amazon Redshift 集群在向 Amazon S3 移动和写入数据时应代入的角色的 IAM 角色 ARN。有关此角色的更多信息,请参阅《Amazon Redshift 管理指南》中的授权 Amazon Redshift 代表您访问其他Amazon服务。
-
选择 Connect(连接)。
-
(可选)对于 Amazon S3 的输出位置,请指定 S3 URI 来存储查询结果。
-
(可选)对于 KMS 密钥 ID,请指定Amazon KMS密钥或别名的 ARN。下图显示了在中可以找到任一密钥的位置Amazon Web Services Management Console。
下图显示了前面过程中的所有字段。

成功建立连接后,它会在 “数据导入” 下显示为数据源。选择此数据源来查询您的数据库和导入数据。
从Amazon Redshift ft 查询和导入数据
-
从数据源中选择要查询的连接。
-
选择架构。要了解有关Amazon Redshift 架构的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的架构。
-
(可选)在 “高级配置” 下,指定要使用的采样方法。
-
在查询编辑器中输入您的查询,然后选择 R un 来运行查询。成功查询后,您可以在编辑器下预览结果。
-
选择导入数据集以导入已查询的数据集。
-
输入数据集名称。如果您添加包含空格的数据集名称,则导入数据集时,这些空格将替换为下划线。
-
选择 Add(添加)。
要编辑数据集,请执行以下操作。
-
导航到您的 Data Wrangler 流程。
-
选择 “来源-抽样” 旁边的 +。
-
更改您要导入的数据。
-
选择 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,请执行以下操作。
-
导航到SageMaker控制台,网址为 https://console.aws.amazon.com/sagemaker/
。 -
选择启动SageMaker工作室。
-
选择标准设置。
-
对于默认执行角色,选择 IAM 角色来设置 Studio。
-
选择您启动亚马逊 EMR 集群的 VPC。
-
对于子网,选择私有子网。
-
对于安全组,请指定您用于在 VPC 之间控制的安全组
-
选择 “仅限 VPC”。
-
(可选)Amazon使用默认加密密钥。您可以指定密Amazon Key Management Service钥来加密数据。
-
选择下一步。
-
在 Studio 设置下,选择最适合您的配置。
-
选择 “下一步” 跳过SageMaker画布设置。
-
选择 “下一步” 跳过 RStudio 设置。
如果您还没有 Amazon EMR 集群准备就绪,可以使用以下步骤创建。有关更多信息,请参阅什么是Amazon EMR?
要创建集群,请执行以下操作。
-
导航到 Amazon Web Services Management Console。
-
在搜索栏中指定
Amazon EMR
。 -
选择创建集群。
-
对于集群名称,指定集群的名称。
-
在 “发布” 中,选择集群的发行版本。
注意
Amazon EMR 支持auto 终止以下版本:
-
对勾版本 6.1.0 或更高版本
-
对勾版本 5.30.0 或更高版本
自动终止会阻止空闲集群运行并防止您产生成本。
-
-
(可选)对于应用程序,选择 Presto。
-
选择您在集群上运行的应用程序。
-
在 “网络” 下的 “硬件配置” 中,指定硬件配置设置。
重要
对于网络,选择运行 Amazon SageMaker Studio 的 VPC,然后选择私有子网。
-
在 “安全和访问权限” 下,指定安全设置。
-
选择创建。
有关创建亚马逊 EMR 集群的教程,请参阅 Am azon EMR 入门。有关配置集群的最佳实践的信息,请参阅注意事项和最佳实践。
注意
出于安全最佳实践,Data Wrangler 只能连接到私有子网上的 VPC。除非您用Amazon Systems Manager于 EMR 实例,否则您将无法连接到主节点。有关更多信息,请参阅使用Amazon Systems Manager保护对 EMR 集群的访问权限
目前,您可以使用以下方法访问 Amazon EMR 集群:
-
没有身份验证
-
轻型目录访问协议 (LDAP)
使用以下部分创建激活 LDAP 的 Presto 或 Hive 亚马逊 EMR 集群。
使用以下部分对您已经创建的 Amazon EMR 集群使用 LDAP 身份验证。
使用以下过程从集群导入数据。
要从集群中导入数据,请执行以下操作。
-
打开 Data Wrangler 流程。
-
选择 Create Connection (创建连接)。
-
选择亚马逊 EMR。
-
请执行以下任一操作。
-
(可选)对于密钥 ARN,请指定集群内数据库的亚马逊资源号 (ARN)。机密提供了额外的安全性。有关机密的更多信息,请参阅什么是Amazon Secrets Manager? 有关为集群创建密钥的信息,请参阅为您的集群创建Amazon Secrets Manager密钥。
-
从下拉表中选择一个集群。
-
-
选择下一步。
-
在为
example-cluster-name
集群选择终端节点中,选择查询引擎。 -
(可选)选择保存连接。
-
选择 “下一步”,选择 “登录”,然后选择以下选项之一:
-
没有身份验证
-
LDAP
-
-
在 “登录到
example-cluster-name
群集” 中,指定群集的用户名和密码。 -
选择 Connect(连接)。
-
在查询编辑器中指定 SQL 查询。
-
选择 运行。
-
选择 Import (导入)。
为您的集群创建Amazon Secrets Manager密钥
密Secrets Manager 密钥将亚马逊 EMR 集群的 JDBC URL 存储为密钥。使用密钥比直接输入您的凭证更安全。
使用以下步骤将 JDBC URL 存储为密钥。
要将 JDBC URL 存储为密钥,请执行以下操作。
-
导航到 Amazon Web Services Management Console。
-
在搜索栏中指定 Secrets Manager。
-
选择 Amazon Secrets Manager。
-
选择 Store a new secret (存储新密钥)。
-
对于 Secret type(密钥类型),请选择 Other type of secret(其他密钥类型)。
-
对于键/值对,请指定
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 授予权限,请执行以下操作。
-
登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
选择 Roles(角色)。
-
在搜索栏中,指定亚马逊 SageMaker Studio 正在使用的亚马逊SageMaker执行角色。
-
选择角色。
-
选择 Add permissions(添加权限)。
-
选择创建内联策略。
-
对于 “服务”,指定 “S ecrets Manager” 并将其选中。
-
在 “操作” 中,选择 “权限管理” 旁边的箭头图标。
-
选择PutResourcePolicy。
-
对于资源,选择特定。
-
选中 “此账户中的任意” 旁边的复选框。
-
选择Review policy(查看策略)。
-
在 “名称” 中,指定一个名称。
-
选择 Create policy(创建策略)。
您可以使用分区更快地导入数据。分区使 Data Wrangler 能够parallel 处理数据。默认情况下,Data Wrangler 使用 2 个分区。对于大多数用例,2 个分区可为您提供近乎最佳的数据处理速度。
如果您选择指定 2 个以上的分区,也可以指定一列对数据进行分区。列中值的类型必须是数字或日期。
我们建议只有在您了解数据的结构及其处理方式的情况下才使用分区。
您可以导入整个数据集或对其中的一部分进行采样。对于 Databricks 数据库,它提供以下采样选项:
-
无-导入整个数据集。
-
第一个 K-对数据集的前 K 行进行采样,其中 K 是您指定的整数。
-
随机化-抽取指定大小的随机样本。
-
分层 — 抽取分层的随机样本。分层样本会保留列中的值比率。
使用以下过程从 Databricks 数据库导入数据。
要从 Databricks 导入数据,请执行以下操作。
-
选择工作室。
-
选择启动应用程序。
-
从下拉列表中选择 Studio。
-
在 Data Wrangler 流程的导入数据选项卡中,选择 Databricks。
-
指定以下字段:
-
数据集名称-您想要在 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:
有关更多信息,请参阅什么是Secrets Manager? 。JDBC-URL
-
-
指定 SQL SELECT 语句。
注意
Data Wrangler 不支持查询中的公用表表达式 (CTE) 或临时表。
-
对于采样,请选择一种采样方法。
-
选择 运行。
-
(可选)对于预览,请选择齿轮以打开分区设置。
-
指定分区的数量。如果您指定分区数,则可以按列分区:
-
输入分区数-指定一个大于 2 的值。
-
(可选)按列分区-指定以下字段。只有为输入分区数指定了值,才能按列进行分区。
-
选择列-选择您用于数据分区的列。列的数据类型必须为数字或日期。
-
上限-根据您指定的列中的值,上限是您在分区中使用的值。您指定的值不会更改您要导入的数据。它只会影响导入的速度。为获得最佳性能,请指定一个接近列最大值的上限。
-
下限-根据您指定的列中的值,下限是您在分区中使用的值。您指定的值不会更改您要导入的数据。它只会影响导入的速度。为获得最佳性能,请指定一个接近该列最小值的下限。
-
-
-
-
选择 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 注册为身份提供商中的应用程序:
-
选择启动将 Data Wrangler 注册为应用程序的过程的配置。
-
向身份提供商中的用户提供对 Data Wrangler 的访问权限。
-
通过将客户端凭据存储为密钥来开启 OAuth 客户端身份Amazon Secrets Manager验证。
-
使用以下格式指定重定向 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 连接。
-
确保 Data Wrangler 应用程序允许使用授权码和刷新令牌授予类型。
在您的身份提供商中,您必须设置一台服务器,在用户级别向 Data Wrangler 发送 OAuth 令牌。服务器发送以 Snowflake 为受众的代币。
Snowflake 使用角色的概念,这些角色与 IAM 角色所使用的角色截然不同。Amazon必须将身份提供者配置为使用任何角色才能使用与 Snowflake 帐户关联的默认角色。例如,如果用户在其 Snowflake 个人资料中使用默认角色,则从 Data Wrangler 到 Snowflake 的连接将用systems administrator
作该角色。systems administrator
可以按照以下步骤设置服务器。
要设置服务器,请执行以下操作。你正在在 Snowflake 中执行除最后一个步骤之外的所有步骤。
-
开始设置服务器或 API。
-
将授权服务器配置为使用授权码和刷新令牌授予类型。
-
指定访问令牌的生命周期。
-
设置刷新令牌空闲超时。空闲超时是指刷新令牌在未使用时过期的时间。
注意
如果您在 Data Wrangler 中调度作业,我们建议将空闲超时时间设置为大于处理作业的频率。否则,某些处理任务可能会失败,因为刷新令牌在运行之前已过期。刷新令牌到期后,用户必须通过访问他们通过 Data Wrangler 与 Snowflake 建立的连接来重新进行身份验证。
-
指定
session:role-any
为新范围。注意
对于 Azure AD,复制作用域的唯一标识符。Data Wrangler 要求您向其提供标识符。
-
重要
在 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 帐户最多可能需要两个工作日。
设置 Snowflake Amazon PrivateLink 集成
激活后Amazon PrivateLink,通过在 Amazon PrivateLink Snowflake 工作表中运行以下命令来检索您所在地区的配置。登录您的 Snowflake 控制台,然后在 “工作表” 下输入以下内容:select
SYSTEM$GET_PRIVATELINK_CONFIG();
-
privatelink_ocsp-url
从生成的 JSON 对象中检索以下:privatelink-account-name
privatelink_ocsp-url
privatelink-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
-
切换到您的Amazon控制台并导航到 VPC 菜单。
-
从左侧面板中,选择终端节点链接导航到 VPC 终端节点设置。
到达那里后,选择创建端点。
-
选择按名称查找服务的单选按钮,如以下屏幕截图所示。
-
在 “服务名称” 字段中,粘贴您在上一步中检索到的值
privatelink-vpce-id
,然后选择 “验证”。如果连接成功,屏幕上会出现一条绿色警报,提示已找到服务名称,并且 VPC 和子网选项会自动展开,如以下屏幕截图所示。根据您的目标区域,生成的屏幕可能会显示其他Amazon区域名称。
-
从 VPC 下拉列表中选择与您发送给 Snowflake 的相同 VPC ID。
-
如果您尚未创建子网,请执行以下有关创建子网的说明集。
-
从 VPC 下拉列表中选择子网。然后选择创建子网并按照提示在您的 VPC 中创建子集。确保选择您发送给 Snowflake 的 VPC ID。
-
在 “安全组配置” 下,选择 “创建新安全组” 以在新选项卡中打开默认的安全组屏幕。在此新选项卡中,选择创建安全组。
-
为新安全组提供名称(例如
datawrangler-doc-snowflake-privatelink-connection
)和描述。请务必选择您在前面的步骤中使用的 VPC ID。 -
添加两条规则以允许从您的 VPC 内部流向此 VPC 终端节点。
在单独的选项卡中导航到您的 V PC 下方的 VPC,并检索您的 VPC 的 CIDR 区块。然后在 “入站规则” 部分中选择 “添加规则”。选择
HTTPS
类型,在表单中将 S ou rce 保留为 “自定义”,然后粘贴从前一次describe-vpcs
调用中检索到的值(例如10.0.0.0/16
)。 -
选择 Create Security Group(创建安全组)。从新创建的安全组(例如
sg-xxxxxxxxxxxxxxxxx
)检索安全组 ID。 -
在 VPC 终端节点配置屏幕中,删除默认安全组。将安全组 ID 粘贴到搜索字段中,然后选中该复选框。
-
选择创建端点。
-
如果终端节点创建成功,您将看到一个页面,其中包含由 VPC ID 指定的 VPC 终端节点配置的链接。选择该链接以查看完整配置。
检索 DNS 名称列表中最上面的记录。这可以与其他 DNS 名称区分开来,因为它仅包含区域名称(例如
us-west-2
),不包含可用区字母表示法(例如us-west-2a
)。存储此信息以供将来使用。
为您的 VPC 中的雪花终端节点配置 DNS
本部分介绍如何为您的 VPC 中的 Sowflake 终端节点配置 DNS。这允许您的 VPC 解析对 Snowflake Amazon PrivateLink 终端节点的请求。
-
在您的Amazon主机中导航到 Route 53 菜单
。 -
选择 “托管区域” 选项(如有必要,请展开左侧菜单以找到此选项)。
-
选择 Create Hosted Zone(创建托管区域)。
-
在域名字段中,引用前面步骤
privatelink-account-url
中存储的值。在此字段中,您的 Snowflake 账户 ID 已从 DNS 名称中删除,仅使用以区域标识符开头的值。稍后还会为子域创建资源记录集,region.privatelink.snowflakecomputing.com
例如。 -
在 “类型” 部分中选择 “私有托管区域” 的单选按钮。您的区域代码可能不是
us-west-2
。引用 Snowflake 返回给你的 DNS 名称。 -
在要与托管区域关联的 VPC 部分中,选择您的 VPC 所在的区域以及前面步骤中使用的 VPC ID。
-
选择 Create Hosted Zone(创建托管区域)。
-
-
接下来,创建两条记录,一条为 fo
privatelink-account-url
r,一条为privatelink_ocsp-url
。-
在 “托管区域” 菜单中,选择 “创建记录集”。
-
在 “记录名称” 下,仅输入您的 Snowflake 账户 ID(中的前 8 个字符
privatelink-account-url
)。 -
在 “记录类型” 下,选择 CNAME。
-
在 “值” 下,输入您在设置 Snowflake Amazon PrivateLink 集成部分的最后一步中检索到的区域 VPC 终端节点的 DNS 名称。
-
选择创建记录。
-
对我们注解为
privatelink-ocsp-url
的 OCSP 记录重复上述步骤,从记录名称的 8 个字符的 Snowflake ID 开始(例如)。ocsp
ocsp.xxxxxxxx
-
-
为您的 VPC 配置 Route 53 解析器入站终端节点
本部分介绍如何为您的 VPC 配置 Route 53 解析器入站终端节点。
-
在您的Amazon主机中导航到 Route 53 菜单
。 -
在 “安全” 部分的左侧面板中,选择 “安全组” 选项。
-
-
选择 Create Security Group(创建安全组)。
-
为您的安全组提供名称(例如
datawranger-doc-route53-resolver-sg
)和描述。 -
选择前面步骤中使用的 VPC ID。
-
创建允许在 VPC CIDR 块内通过 UDP 和 TCP 进行 DNS 的规则。
-
选择 Create Security Group(创建安全组)。记下安全组 ID,因为添加了允许流向 VPC 终端节点安全组的规则。
-
-
在您的Amazon主机中导航到 Route 53 菜单
。 -
在 “解析器” 部分中,选择 “入站端点” 选项。
-
-
选择创建入站终端节点。
-
提供端点名。
-
从区域下拉列表中的 VPC 中,选择您在之前所有步骤中使用的 VPC ID。
-
在此端点的安全组下拉列表中,选择本节步骤 2 中的安全组 ID。
-
在 IP 地址部分中,选择一个可用区域,选择一个子网,然后将无线电选择器保留为 “使用为每个 IP 地址自动选择的 IP 地址”。
-
选择 Submit(提交)。
-
-
创建入站端点后选择该端点。
-
创建入站端点后,记下解析器的两个 IP 地址。
SageMaker VPC 终端节点
本节介绍如何为以下内容创建 VPC 终端节点:亚马逊SageMaker工作室、SageMaker笔记本电脑、SageMaker API、SageMaker运行时和亚马逊SageMaker功能存储运行时。
创建应用于所有端点的安全组。
-
在Amazon控制台中导航到 EC2 菜单
。 -
在 “网络和安全” 部分中,选择 “安全组” 选项。
-
选择Create security group(创建安全组)。
-
提供安全组名称和描述(例如
datawrangler-doc-sagemaker-vpce-sg
)。稍后会添加一条规则,允许通过 HTTPS 传输SageMaker到此组。
创建端点
-
在Amazon控制台中导航到 VPC 菜单
。 -
选择 “端点” 选项。
-
选择 Create Endpoint(创建端点)。
-
通过在搜索字段中输入服务名称来搜索服务。
-
从 VPC 下拉列表中,选择您的 Snowflake Amazon PrivateLink 连接所在的 VPC。
-
在子网部分中,选择可以访问 Snow PrivateLink flake 连接的子网。
-
选中 “启用 DNS 名称” 复选框。
-
在 Sec urit y groups 部分,选择您在上一部分中创建的安全组。
-
选择 Create Endpoint(创建端点)。
配置 Studio 和 Data Wrangl
本部分介绍如何配置 Studio 和 Data Wrangler。
-
配置安全组。
-
在Amazon控制台中导航到 Amazon EC2 菜单。
-
在 “网络和安全” 部分中选择 “安全组” 选项。
-
选择 Create Security Group(创建安全组)。
-
为您的安全组提供名称和描述(例如
datawrangler-doc-sagemaker-studio
)。 -
创建以下入站规则。
-
与您在设置 Snowflake 集成步骤中创建的 Snowflake PrivateLink 连接配置的安全组的 HTTPS 连接。PrivateLink
-
与您在设置 Snowflake 集成步骤中创建的 Snowflake PrivateLink 连接配置的安全组的 HTTP 连接。PrivateLink
-
您在为您的 VPC 配置 Route 53 解析器入站终端节点的步骤 2 中创建的 UDP 和 TCP for DNS(端口 53)到 Route 53 解析器入站终端节点。
-
-
选择右下角的创建安全组按钮。
-
-
配置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(提交)。
-
-
编辑SageMaker安全组。
-
创建以下入站规则:
-
端口 2049 到在步骤 2 SageMaker 中自动创建的入站和出站 NFS 安全组(安全组名称包含 Studio 域 ID)。
-
访问自身的所有 TCP 端口(仅限 VPC SageMaker 是必需的)。
-
-
-
编辑 VPC 终端节点安全组:
-
在Amazon控制台中导航到 Amazon EC2 菜单。
-
找到您在前面的步骤中创建的安全组。
-
添加允许来自步骤 1 中创建的安全组的 HTTPS 流量的入站规则。
-
-
创建用户配置文件。
-
从 SageMakerStudio 控制面板中选择添加用户。
-
提供用户名称。
-
在执行角色,选择创建新角色或使用先前存在的角色。
-
如果您选择创建新角色,则系统会为您提供提供 Amazon S3 存储桶名称的选项,系统会为您生成策略。
-
如果您已经创建了一个拥有您需要访问的 Amazon S3 存储桶权限的角色,请从下拉列表中选择该角色。应将
AmazonSageMakerFullAccess
策略附加于此。
-
-
选择 Submit(提交)。
-
-
创建数据流(遵循前一节中概述的数据科学家指南)。
-
添加 Snowflake 连接时,在 Snowfla ke 帐户名称
privatelink-account-name
(字母数字)字段中输入(来自设置 Snowflake PrivateLink 集成步骤)的值,而不是普通的 Snowflake 帐户名称。其他一切都保持不变。
-
向数据科学家提供信息
向数据科学家提供从亚马逊 SageMaker Data Wrangler 访问 Snowflake 所需的信息。
-
要允许您的数据科学家从 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 密钥添加基于资源的额外权限。有关您可以使用的条件密钥,请参阅管理密钥策略。
有关创建密钥的信息,请参阅创建密钥。你需要为自己创建的秘密付费。
-
-
向数据科学家提供您在步骤 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 并检查其版本,请参阅以下步骤。
-
使用中的步骤通过亚马逊SageMaker工作先决条件室访问 Data Wrangler。
-
在您要用来启动 Studio 的用户旁边,选择启动应用程序。
-
选择工作室。
-
加载 Studio 后,依次选择文件、新建和终端。
-
启动 Studio 后,依次选择文件、新建和终端。
-
输入
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。
连接到 Snowflake 后,您可以开始从 Snowflake 导入数据的过程。
在 Data Wrangler 中,您可以查看您的数据仓库、数据库和架构,还可以使用眼睛图标预览表。选择 “预览表” 图标后,将生成该表的架构预览。必须先选择仓库,然后才能预览表格。
重要
如果您要导入的列类型为TIMESTAMP_TZ
或的数据集TIMESTAMP_LTZ
,请将其::string
添加到查询的列名中。有关更多信息,请参见如何:将 TIMESTAMP_TZ 和 TIMESTAMP_LTZ 数据卸载到 Parque
选择数据仓库、数据库和架构后,您现在可以编写查询并运行它们。您的查询输出显示在查询结果下。
确定查询的输出后,您可以将查询的输出导入到 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 身份权限(控制台)。
要连接到数据源,请执行以下操作。
-
选择工作室。
-
选择启动应用程序。
-
从下拉列表中选择 Studio。
-
选择主选标记标。
-
选择 Data (数据)。
-
选择 Data Wrangler。
-
选择导入数据。
-
在 “可用” 下,选择数据源。
-
在 Name 字段中,指定连接的名称。
-
(可选)选择高级配置。
-
选择一个工作组。
-
如果您的工作组尚未强制执行 Amazon S3 输出位置,或者您未使用工作组,请为 Amazon S3 的查询结果位置指定一个值。
-
(可选)对于数据保留期,选中复选框以设置数据保留期并指定在删除数据之前存储数据的天数。
-
(可选)默认情况下,Data Wrangler 会保存连接。您可以选择取消选中该复选框而不保存连接。
-
-
选择 Connect(连接)。
-
指定查询。
注意
为了帮助您指定查询,可以在左侧导航面板上选择一个表。Data Wrangler 显示表名称和表格的预览。选择表名称旁边的图标复制名称。可以在查询中使用表名。
-
选择 运行。
-
选择导入查询。
-
对于数据集名称,指定数据集的名称。
-
选择 Add(添加)。
当你导航到导入数据屏幕时,你可以看到你创建的连接。您可以使用连接导入更多数据。
导入的数据存储
重要
我们强烈建议您遵循安全最佳实践,遵循有关保护 Amazon S3 存储桶的最佳实践。
当您查询来自Amazon Athena 或Amazon Redshift ft 的数据时,查询的数据集会自动存储在 Amazon S3 中。数据存储在您使用 Studio 的Amazon地区的默认 SageMaker S3 存储桶中。
默认 S3 存储桶具有以下命名约定:sagemaker-
。例如,如果您的账号是 111122223333 并且您使用的是 Studio,则导入的数据集将存储在 region
-account
number
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-111122223333
data/ example_dataset.parquet 中查询的单个数据集位于 s3://sagemaker-us-east-1-111122223333
/athena/
在 Data Wrangler 中为预览数据框而存储的数据集子集存储在前缀下:athena/。