本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
导入
您可以使用 Amazon SageMaker Data Wrangler 从以下数据源导入数据:亚马逊简单存储服务 (Amazon S3)、亚马逊雅典娜、亚马逊 Redshift 和 Snowflake。您导入的数据集最多可以包含 1000 列。
主题
使用某些数据来源可以添加多个数据连接:
-
可以连接到多个 Amazon Redshift 集群。每个集群会变成一个数据来源。
-
您可以查询账户中的任何 Athena 数据库,从该数据库导入数据。
从数据来源导入数据集时,该数据集将显示在数据流中。Data Wrangler 会自动推断数据集内每个列的数据类型。要修改这些类型,请选择数据类型步骤,然后选择编辑数据类型。
当您从 Athena 或 Amazon Redshift 导入数据时,导入的数据会自动存储在默认 S3 存储桶中 SageMaker Amazon 您正在使用 Studio Classic 的区域。此外,Athena 会将您在 Data Wrangler 中预览的数据存储在此存储桶中。要了解更多信息,请参阅 导入的数据存储。
重要
默认 Amazon S3 存储桶可能没有最不允许的安全设置,例如存储桶策略和服务器端加密 () SSE。我们强烈建议您添加存储桶策略,来限制对导入到 Data Wrangler 的数据集的访问。
重要
此外,如果您将托管策略用于 SageMaker,我们强烈建议您将其范围缩小到允许您执行用例的最严格的策略。有关更多信息,请参阅 向IAM角色授予使用 Data Wrangler 的权限。
除亚马逊简单存储服务 (Amazon S3) 以外的所有数据源都要求您指定SQL查询才能导入数据。对于每个查询,必须指定以下内容:
-
数据目录
-
数据库
-
表
可以在下拉菜单或查询中指定数据库或数据目录的名称。下面是示例查询:
-
select * from
– 查询不使用用户界面 (UI) 下拉菜单中指定的任何项来运行。它在example-data-catalog-name
.example-database-name
.example-table-name
example-data-catalog-name
内部的example-database-name
中查询example-table-name
。 -
select * from
– 查询使用您在数据目录下拉菜单中指定的数据目录来运行。它会在您指定的数据目录内的example-database-name
.example-table-name
example-database-name
中查询example-table-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 Web Services Management Console,这是一个简单直观的网络界面,还有 Amazon S3 API。如果您已将数据集存储在本地,我们建议您将数据集添加到 S3 存储桶中,以便导入到 Data Wrangler 中。要了解具体方法,请参阅《Amazon Simple Storage Service 用户指南》中的将对象上传到存储桶。
Data Wrangler 使用 S3 Select
重要
如果您计划导出数据流并启动 Data Wrangler 作业、将数据提取到 SageMaker功能存储或创建 SageMaker 管道,请注意这些集成要求 Amazon S3 输入数据位于同一个功能存储中 Amazon 区域。
重要
如果您要导入CSV文件,请确保它满足以下要求:
-
数据集内的记录不能超过一行。
-
反斜杠
\
是唯一有效的转义字符。 -
您的数据集必须使用以下分隔符之一:
-
逗号 –
,
-
冒号 –
:
-
分号 –
;
-
竖线 –
|
-
Tab 键 –
[TAB]
-
为了节省空间,您可以导入压缩CSV文件。
使用 Data Wrangler,您能够导入整个数据集或对其中的一部分进行采样。对于 Amazon S3,它提供了以下采样选项:
-
无 – 导入整个数据集。
-
前 K 行 – 对数据集的前 K 行进行采样,其中 K 是您指定的整数。
-
随机化 – 随机提取指定大小的样本。
-
分层 – 随机提取分层样本。分层样本保持列中的值比例。
导入数据后,您还可以使用采样转换器,从整个数据集内提取一个或多个样本。有关采样转换器的更多信息,请参阅 采样。
您可以使用以下资源标识符之一来导入数据:
-
使用亚马逊 S3 URI 存储桶或亚马逊 S3 接入点的 Amazon S3
-
Amazon S3 接入点别名
-
使用亚马逊 S3 接入点或 Amazon S3 存储桶的亚马逊资源名称 (ARN)
Amazon S3 接入点是附加到存储桶的命名网络端点。每个接入点都有您可配置的不同的权限和网络控制。有关接入点的更多信息,请参阅使用 Amazon S3 接入点管理数据访问。
重要
如果您使用 Amazon 资源名称 (ARN) 来导入数据,则该名称必须用于位于该名称中的资源 Amazon Web Services 区域 你正在使用它来访问 Amazon SageMaker Studio Classic。
可以将单个文件或多个文件作为数据集导入。如果您有分为多个单独文件的数据集,可以使用多文件导入操作。该操作从 Amazon S3 目录中获取所有文件,并将这些文件作为单个数据集导入。有关您可导入的文件类型以及如何导入这些文件的信息,请参阅以下各个部分。
您也可以使用参数来导入与模式匹配的文件子集。使用参数有助于您更有选择性地选择要导入的文件。要开始使用参数,请编辑数据来源,并将其应用于您用于导入数据的路径。有关更多信息,请参阅 针对不同数据集重用数据流。
从 Athena 导入数据
使用 Amazon Athena 将您的数据从 Amazon Simple Storage Service (Amazon S3) 导入到 Data Wrangler。在 Athena 中,您可以编写SQL标准查询来选择要从 Amazon S3 导入的数据。有关更多信息,请参阅什么是 Amazon Athena?
您可以使用 Amazon Web Services Management Console 来设置亚马逊 Athena。开始运行查询之前,必须在 Athena 中至少创建一个数据库。有关开始使用 Athena 的更多信息,请参阅入门。
Athena 直接与 Data Wrangler 集成。无需离开 Data Wrangler UI,即可编写 Athena 查询。
除了在 Data Wrangler 中编写简单的 Athena 查询之外,您还可以使用:
在 Data Wrangler 中查询 Athena
注意
Data Wrangler 不支持联合查询。
如果你使用 Amazon Lake Formation 使用 Athena,请确保你的 Lake Formati IAM on 权限不会IAM覆盖数据库的权限。sagemaker_data_wrangler
使用 Data Wrangler,您能够导入整个数据集或对其中的一部分进行采样。对于 Athena,提供了以下采样选项:
-
无 – 导入整个数据集。
-
前 K 行 – 对数据集的前 K 行进行采样,其中 K 是您指定的整数。
-
随机化 – 随机提取指定大小的样本。
-
分层 – 随机提取分层样本。分层样本保持列中的值比例。
以下过程介绍如何将 Athena 中的数据集导入到 Data Wrangler。
将数据集从 Athena 导入到 Data Wrangler
-
选择 Studio。
-
选择启动应用程序。
-
从下拉列表中选择 Studio。
-
选择主页图标。
-
选择数据。
-
选择 Data Wrangler。
-
选择导入数据。
-
在可用下,选择 Amazon Athena。
-
对于数据目录,选择一个数据目录。
-
使用数据库下拉列表选择要查询的数据库。选择数据库后,您可以使用详细信息下列出的表预览数据库中的所有表。
-
(可选)选择高级配置。
-
选择一个工作组。
-
如果您的工作组尚未强制使用 Amazon S3 输出位置,或者您没有使用工作组,请为查询结果的 Amazon S3 位置指定一个值。
-
(可选)对于数据留存期,选中该复选框以设置数据留存期,并指定在删除数据之前存储数据的天数。
-
(可选)默认情况下,Data Wrangler 会保存连接。可以选择取消选中该复选框,此时不保存连接。
-
-
对于采样,选择一种采样方法。选择无可关闭采样。
-
在查询编辑器中输入您的查询,然后使用运行按钮运行查询。查询成功后,可以在编辑器下预览您的结果。
注意
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 account。可以为每个工作组指定 Amazon S3 输出位置。您还可以指定查询输出是否可以保存到不同的 Amazon S3 位置。有关更多信息,请参阅使用工作组控制查询访问和成本。
您的工作组可能已配置为强制使用 Amazon S3 查询输出位置。您无法更改这些工作组的查询结果输出位置。
如果您不使用工作组或为查询指定输出位置,Data Wrangler 将使用同一个工作组中的默认 Amazon S3 存储桶 Amazon 您的 Studio Classic 实例所在的区域,用于存储 Athena 查询结果。它会在此数据库中创建临时表,以将查询输出移至此 Amazon S3 存储桶。它会在导入数据后删除这些表;不过数据库 sagemaker_data_wrangler
仍然存在。要了解更多信息,请参阅 导入的数据存储。
要使用 Athena 工作组,请设置授予工作组访问IAM权限的策略。如果您使用 SageMaker-Execution-Role
,我们建议将策略添加到角色中。有关工作组IAM策略的更多信息,请参阅工作组访问IAM策略。有关工作组策略示例,请参阅工作组示例策略。
设置数据留存期
Data Wrangler 会自动为查询结果设置数据留存期。留存期过后,结果将被删除。例如,默认留存期为五天。查询结果将在五天后被删除。此配置可以协助您清理不再使用的数据。清理您的数据可以防止未授权用户获得访问权限。该操作还有助于控制在 Amazon S3 上存储数据的成本。
如果您未设置留存期,Amazon S3 生命周期配置将决定对象的存储期限。您为生命周期配置指定的数据留存策略会删除任何超过指定生命周期配置的查询结果。有关更多信息,请参阅设置存储桶的生命周期配置。
Data Wrangler 使用 Amazon S3 生命周期配置来管理数据留存和过期。您必须授予您的 Amazon SageMaker Studio Classic IAM 执行角色权限才能管理存储桶生命周期配置。可以通过以下步骤授予权限。
要授予管理生命周期配置的权限,请执行以下操作。
-
登录 Amazon Web Services Management Console 然后打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
选择角色。
-
在搜索栏中,指定 Amazon SageMaker Studio Classic 正在使用的亚马逊 SageMaker 执行角色。
-
选择角色 。
-
选择添加权限。
-
选择创建内联策略。
-
对于服务,指定 S3 并选择该项。
-
在 “阅读” 部分下,选择GetLifecycleConfiguration。
-
在 “写入” 部分下,选择PutLifecycleConfiguration。
-
对于资源,选择特定。
-
对于操作,选择权限管理旁边的箭头图标。
-
选择PutResourcePolicy。
-
对于资源,选择特定。
-
选中此账户中的任何资源旁边的复选框。
-
选择查看策略。
-
对于名称,指定一个名称。
-
选择创建策略。
从 Amazon Redshift 中导入数据
Amazon Redshift 是云中一种完全托管的 PB 级数据仓库服务。创建数据仓库的第一步是启动一组节点(称为 Amazon Redshift 集群)。预置集群后,您可以上传数据集,然后执行数据分析查询。
可以在 Data Wrangler 中连接并查询一个或多个 Amazon Redshift 集群。要使用此导入选项,必须在 Amazon Redshift 中至少创建一个集群。要了解操作方法,请参阅 Amazon Redshift 入门。
可以将 Amazon Redshift 查询结果输出到以下位置之一:
-
Amazon S3 存储桶
-
指定的 Amazon S3 输出位置
可以导入整个数据集,或者对其中一部分进行采样。对于 Amazon Redshift,它提供了以下采样选项:
-
无 – 导入整个数据集。
-
前 K 行 – 对数据集的前 K 行进行采样,其中 K 是您指定的整数。
-
随机化 – 随机提取指定大小的样本。
-
分层 – 随机提取分层样本。分层样本保持列中的值比例。
默认 Amazon S3 存储桶在同一个存储桶中 Amazon 您的 Studio Classift 实例所在的区域,用于存储 Amazon Redshift 查询结果。有关更多信息,请参阅 导入的数据存储。
对于默认 Amazon S3 存储桶或您指定的存储桶,都可以使用以下加密选项:
-
默认 Amazon 使用 Amazon S3 托管密钥进行服务端加密 (SSE-S3)
-
网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的 Amazon Key Management Service (Amazon KMS) 您指定的密钥
网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的 Amazon KMS 密钥是您创建和管理的加密密钥。有关KMS密钥的更多信息,请参阅 Amazon Key Management Service.
你可以指定 Amazon KMS 使用您的密钥ARN或您的密钥ARN进行密钥 Amazon account。
如果您使用IAM托管策略授予角色在 Studio Classic 中使用 Data Wrangler 的权限,则您的数据库用户名必须带有前缀。AmazonSageMakerFullAccess
sagemaker_access
通过以下过程,了解如何添加新集群。
注意
Data Wrangler 使用带有临时证书的 Amazon Redshift API 数据。要了解更多相关信息API,请参阅亚马逊 Reds hift 管理指南API中的使用亚马逊 Redshift 数据。
连接到 Amazon Redshift 集群
-
选择 Studio。
-
选择启动应用程序。
-
从下拉列表中选择 Studio。
-
选择主页图标。
-
选择数据。
-
选择 Data Wrangler。
-
选择导入数据。
-
在可用下,选择 Amazon Athena。
-
选择 Amazon Redshift。
-
在 “类型” 中选择 “临时证书” (IAM)。
-
输入连接名称。这是 Data Wrangler 用来标识该连接的名称。
-
输入集群标识符以指定要连接的集群。注意:仅输入集群标识符,而不要输入 Amazon Redshift 集群的完整端点。
-
输入要连接到的数据库的数据库名称。
-
输入数据库用户以标识要用于连接数据库的用户。
-
对于UNLOADIAM角色,输入 Amazon Redshift 集群在向 Amazon S3 移动和写入数据时应扮演的角色角色。IAM ARN有关此角色的更多信息,请参阅授权 Amazon Redshift 访问其他 Amazon 在《亚马逊 Redshift 管理指南》中为您提供的服务。
-
选择连接。
-
(可选)对于 Amazon S3 的输出位置,请指定URI用于存储查询结果的 S3。
-
(可选)对于KMS密钥 ID,请ARN指定 Amazon KMS 密钥或别名。下图显示了在哪里可以找到任一密钥 Amazon Web Services Management Console.
下图显示了前述过程中的所有字段。
成功建立连接后,它将作为数据来源显示在数据导入下。选择此数据来源可以查询您的数据库并导入数据。
从 Amazon Redshift 查询和导入数据
-
从数据来源中选择要查询的连接。
-
选择架构。要了解有关 Amazon Redshift 架构的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的架构。
-
(可选)在高级配置下,指定要使用的采样方法。
-
在查询编辑器中输入您的查询,然后选择运行以运行查询。查询成功后,可以在编辑器下预览您的结果。
-
选择导入数据集以导入已查询的数据集。
-
输入数据集名称。如果您添加的数据集名称中包含空格,则在导入您的数据集时,这些空格将替换为下划线。
-
选择添加。
要编辑数据集,请执行以下操作。
-
导航到您的 Data Wrangler 流。
-
选择来源 – 采样旁边的 + 号。
-
更改要导入的数据。
-
选择应用
从亚马逊导入数据 EMR
您可以EMR将亚马逊用作亚马逊数据管理程序流程 SageMaker 的数据源。Amazon EMR 是一个托管集群平台,您可以使用它来处理和分析大量数据。有关亚马逊的更多信息EMR,请参阅什么是亚马逊EMR? 。要从中导入数据集EMR,您需要连接到该数据集并对其进行查询。
重要
要连接到 Amazon EMR 集群,您必须满足以下先决条件:
先决条件
-
网络配置
-
你所在的地区有一家亚马逊VPC,用来推出 Amazon SageMaker Studio Classic 和亚马逊EMR。
-
Amazon EMR 和 Amazon SageMaker Studio Classic 都必须在私有子网中启动。它们可位于相同的子网中,也可以位于不同的子网中。
-
Amazon SageMaker Studio Classic 必须处于VPC仅限模式。
有关创建的更多信息VPC,请参阅创建VPC。
有关创建的更多信息VPC,请参阅 a 中的 Connect SageMaker Studio Classic 笔记本VPC连接到外部资源。
-
您正在运行的亚马逊EMR集群必须位于同一个亚马逊中VPC。
-
Amazon EMR 集群和 Amazon 集群VPC必须位于同一个集群中 Amazon account。
-
您的亚马逊EMR集群正在运行 Hive 或 Presto。
-
Hive 集群必须允许端口 10000 上来自 Studio Classic 安全组的入站流量。
-
Presto 集群必须允许端口 8889 上来自 Studio Classic 安全组的入站流量。
注意
使用IAM角色的 Amazon EMR 集群的端口号不同。有关更多信息,请导航到先决条件部分的结尾。
-
-
-
SageMaker 经典工作室
-
亚马逊 SageMaker Studio Classic 必须运行 Jupyter Lab 版本 3。有关更新 Jupyter Lab 版本的信息,请参阅 从控制台查看和更新应用程序的 JupyterLab 版本。
-
Amazon SageMaker Studio Classic 具有控制用户访问权限的IAM角色。您用于运行 Amazon SageMaker Studio Classic 的默认IAM角色没有允许您访问亚马逊EMR集群的策略。您必须附加向该IAM角色授予权限的策略。有关更多信息,请参阅 配置列出 Amazon EMR 集群。
-
该IAM角色还必须附加以下策略
secretsmanager:PutResourcePolicy
。 -
如果您使用的是已经创建的 Studio Classic 域名,请确保其
AppNetworkAccessType
处于VPC仅限模式。有关将域更新为使用VPC仅限模式的信息,请参见关闭并更新 SageMaker Studio 经典版。
-
-
亚马逊EMR集群
-
您的集群上必须已安装 Hive 或 Presto。
-
Amazon EMR 版本必须是 5.5.0 或更高版本。
注意
亚马逊EMR支持自动终止。自动终止功能会阻止空闲集群运行,可防止产生成本。下面是支持自动终止功能的版本:
-
对于 6.x 发行版,版本 6.1.0 或更高版本。
-
对于 5.x 发行版,版本 5.30.0 或更高版本。
-
-
-
使用IAM运行时角色的 Amazon EMR 集群
-
使用以下页面为 Amazon EMR 集群设置IAM运行时角色。在使用运行时角色时,必须启用传输中加密功能:
-
您必须将 Lake Formation 用作监管数据库中数据的工具。您还必须使用外部数据筛选功能进行访问控制。
-
有关 Lake Formation 的更多信息,请参阅什么是 Amazon Lake Formation?
-
有关将 Lake Formation 集成到亚马逊的更多信息EMR,请参阅将第三方服务与 Lake Formation 集成。
-
-
集群的版本必须是 6.9.0 或更高版本。
-
访问权限 Amazon Secrets Manager。 有关 Secrets Manager 的更多信息,请参阅什么是 Amazon Secrets Manager?
-
Hive 集群必须允许端口 10000 上来自 Studio Classic 安全组的入站流量。
-
Amazon VPC 是一个虚拟网络,在逻辑上与该网络上的其他网络隔离 Amazon 云。Amazon SageMaker Studio Classic 和您的亚马逊EMR集群仅存在于亚马逊内VPC。
使用以下步骤在亚马逊上启动 Amazon SageMaker Studio Classic VPC。
要在中启动 Studio ClassicVPC,请执行以下操作。
-
导航到 SageMaker 控制台,网址为https://console.aws.amazon.com/sagemaker/
。 -
选择启动 SageMaker 工作室经典版。
-
选择标准设置。
-
对于默认执行角色,选择要设置 Studio Classic 的IAM角色。
-
选择您启动亚马逊集EMR群VPC的位置。
-
对于子网,选择私有子网。
-
对于安全组,请指定您用于在安全组之间进行控制的安全组VPC。
-
VPC仅选择。
-
(可选) Amazon 使用默认加密密钥。你可以指定 Amazon Key Management Service 加密数据的密钥。
-
选择下一步。
-
在 Studio 设置下,选择最适合您的配置。
-
选择 “下一步” 可跳过 “ SageMaker 画布” 设置。
-
选择 “下一步” 跳过RStudio设置。
如果您尚未准备好 Amazon EMR 集群,则可以使用以下步骤创建一个。有关亚马逊的更多信息EMR,请参阅什么是亚马逊EMR?
要创建集群,请执行以下操作。
-
导航到 Amazon Web Services Management Console.
-
在搜索栏中指定
Amazon EMR
。 -
选择创建集群。
-
对于集群名称,指定您的集群名称。
-
对于版本,选择集群的发布版本。
注意
Amazon EMR 支持以下版本的自动终止:
-
对于 6.x 发行版,版本 6.1.0 或更高版本
-
对于 5.x 发行版,版本 5.30.0 或更高版本
自动终止功能会阻止空闲集群运行,可防止产生成本。
-
-
(可选)对于应用程序,选择 Presto。
-
选择您在集群上运行的应用程序。
-
在联网下,对于硬件配置,指定硬件配置设置。
重要
对于网络,请选择正在运行 Amazon SageMaker Studio Classic 的,然后选择私有子网。VPC
-
在安全和访问权限下,指定安全设置。
-
选择创建。
有关创建 Amazon EMR 集群的教程,请参阅 Amazon 入门EMR。有关配置集群的最佳实践的信息,请参阅注意事项和最佳实践。
注意
出于安全最佳实践,Data Wrangler 只能通过私有子网VPCs进行连接。除非使用,否则无法连接到主节点 Amazon Systems Manager 适用于您的 Amazon EMR 实例。有关更多信息,请参阅使用保护对EMR集群的访问权限 Amazon Systems Manager
目前,您可以使用以下方法访问 Amazon EMR 集群:
-
不使用身份验证
-
轻量级目录访问协议 (LDAP)
-
IAM(运行时角色)
不使用身份验证或使用LDAP可能需要您创建多个集群和 Amazon EC2 实例配置文件。如果您是管理员,则可能需要为用户组提供不同级别的数据访问权限。这些方法可能会导致管理开销,从而使管理您的用户变得更加困难。
我们建议使用允许多个用户连接到同一 Amazon EMR 集群的IAM运行时角色。运行时IAM角色是您可以分配给连接到 Amazon EMR 集群的用户的角色。您可以将运行时IAM角色配置为具有特定于每组用户的权限。
使用以下部分创建已激活的 Presto 或 Hive Amazon EMR 集群。LDAP
使用以下部分对您已经创建的 Amazon EMR 集群使用LDAP身份验证。
可以通过以下步骤,从集群导入数据。
要从集群导入数据,请执行以下操作。
-
打开 Data Wrangler 流。
-
选择 Create Connection (创建连接)。
-
选择亚马逊EMR。
-
请执行以下操作之一。
-
(可选)对于密钥 ARN,请指定集群内数据库的 Amazon 资源号 (ARN)。密钥可提供额外的安全措施。有关密钥的更多信息,请参阅什么是 Amazon Secrets Manager? 有关为集群创建密钥的信息,请参阅创建一个 Amazon Secrets Manager 你的集群的秘密。
重要
如果您使用IAM运行时角色进行身份验证,则必须指定密钥。
-
从下拉列表中,选择一个集群。
-
-
选择下一步。
-
对于选择终端节点
example-cluster-name
集群,选择查询引擎。 -
(可选)选择保存连接。
-
选择下一步,选择登录,然后选择以下项之一:
-
不使用身份验证
-
LDAP
-
IAM
-
-
用于登录
example-cluster-name
集群中,指定群集的用户名和密码。 -
选择连接。
-
在查询编辑器中指定SQL查询。
-
选择运行。
-
选择 Import(导入)。
创建一个 Amazon Secrets Manager 你的集群的秘密
如果您使用IAM运行时角色访问您的亚马逊EMR集群,则必须将用于访问亚马逊的证书存储EMR为 Secrets Manager 密钥。您将用于访问集群的所有凭证都存储在密钥中。
必须在密钥中存储以下信息:
-
JDBC端点 —
jdbc:hive2://
-
DNS名称 — 您的 Amazon EMR 集群的DNS名称。这要么是主节点的端点,要么是主机名。
-
端口 –
8446
您还可以在密钥中存储以下附加信息:
-
IAMrole — 您用于访问集群的IAM角色。默认情况下,Data Wrangler 使用你的 SageMaker 执行角色。
-
信任库路径 – 默认情况下,Data Wrangler 会为您创建信任库路径。您还可以使用自己的信任库路径。有关信任库路径的更多信息,请参阅 2 中的传输中加密。 HiveServer
-
信任库密码 – 默认情况下,Data Wrangler 会为您创建信任库密码。您还可以使用自己的信任库路径。有关信任库路径的更多信息,请参阅 2 中的传输中加密。 HiveServer
通过以下步骤将凭证存储在 Secrets Manager 密钥中。
要将您的凭证存储为密钥,请执行以下操作。
-
导航到 Amazon Web Services Management Console.
-
在搜索栏中,指定 Secrets Manager。
-
选择 Amazon Secrets Manager.
-
选择存储新密钥。
-
对于密钥类型,请选择其他密钥类型。
-
在键/值对下,选择纯文本。
-
对于运行 Hive 的集群,您可以使用以下模板进行IAM身份验证。
{"jdbcURL": "" "iam_auth": {"endpoint": "jdbc:hive2://", #required "dns": "ip-
xx-x-xxx-xxx
.ec2.internal", #required "port": "10000", #required "cluster_id": "j-xxxxxxxxx
", #required "iam_role": "arn:aws:iam::xxxxxxxx:role/xxxxxxxxxxxx", #optional "truststore_path": "/etc/alternatives/jre/lib/security/cacerts", #optional "truststore_password": "changeit" #optional }}注意
导入数据后,可以对数据进行转换。然后,将转换后的数据导出到特定位置。如果您使用 Jupyter 笔记本将转换后的数据导出到 Amazon S3,则必须使用上述示例中指定的信任库路径。
Secrets Manager 密钥将亚马逊EMR集群JDBCURL的密钥存储为密钥。相比直接输入凭证,使用密钥更加安全。
按照以下步骤将存储JDBCURL为密钥。
要将JDBCURL作为密钥存储,请执行以下操作。
-
导航到 Amazon Web Services Management Console.
-
在搜索栏中,指定 Secrets Manager。
-
选择 Amazon Secrets Manager.
-
选择存储新密钥。
-
对于密钥类型,请选择其他密钥类型。
-
对于键/值对,请指定
jdbcURL
为键,将有效值指定JDBCURL为值。有效的格式JDBCURL取决于您是否使用身份验证以及是使用 Hive 还是 Presto 作为查询引擎。以下列表显示了不同可能配置的有效JBDCURL格式。
-
Hive,不进行身份验证 –
jdbc:hive2://
emr-cluster-master-public
-dns:10000/; -
Hive,LDAP身份验证 —
jdbc:hive2://
emr-cluster-master-public-dns-name
:10000/;AuthMech=3;UID=david;PWD=welcome123; -
对于SSL启用的 Hive,JDBCURL格式取决于您是否使用 Java 密钥库文件进行配置。TLSJava 密钥库文件有助于验证 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 的有效JDBCURL格式:
-
没有 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://
emr-cluster-master-public-dns
:8889/; -
对于启用LDAP身份验证并SSL启用身份验证的 Presto,JDBCURL格式取决于您是否使用 Java 密钥库文件进行配置。TLSJava 密钥库文件有助于验证 Amazon EMR 集群主节点的身份。要使用 Java 密钥库文件,请在EMR集群上生成该文件并将其上传到 Data Wrangler。要上传文件,请选择 Data Wrangler UI 左侧导航栏上的向上箭头。有关为 Presto 创建 Java 密钥库文件的信息,请参阅的 Java 密钥库
文件。TLS有关在 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 作为 Amazon Data Wrangler 流程 SageMaker 的数据源。要从 Databricks 导入数据集,请使用JDBC(Java 数据库连接)导入功能访问您的 Databricks 数据库。访问数据库后,指定SQL查询以获取数据并将其导入。
我们假设你有一个正在运行的 Databricks 集群,并且你已经为它配置了JDBC驱动程序。有关更多信息,请参阅以下 Databricks 文档页面:
Data Wrangler 会将你的存储在 JDBC URL Amazon Secrets Manager。 您必须授予您的 Amazon SageMaker Studio Classic IAM 执行角色权限才能使用 Secrets Manager。可以通过以下步骤授予权限。
要向 Secrets Manager 授予权限,请执行以下操作。
-
登录 Amazon Web Services Management Console 然后打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
选择角色。
-
在搜索栏中,指定 Amazon SageMaker Studio Classic 正在使用的亚马逊 SageMaker 执行角色。
-
选择角色 。
-
选择添加权限。
-
选择创建内联策略。
-
对于服务,指定 Secrets Manager 并选择该项。
-
对于操作,选择权限管理旁边的箭头图标。
-
选择PutResourcePolicy。
-
对于资源,选择特定。
-
选中此账户中的任何资源旁边的复选框。
-
选择查看策略。
-
对于名称,指定一个名称。
-
选择创建策略。
可以使用分区更快地导入您的数据。利用分区,Data Wrangler 能够并行处理数据。默认情况下,Data Wrangler 使用 2 个分区。对于大多数使用案例而言,2 个分区能够为您提供近乎最佳的数据处理速度。
如果选择指定 2 个以上的分区,还可以指定一列来对数据进行分区。列中值的类型必须是数字或日期。
我们建议只有在您了解数据的结构及其处理方式的情况下,才使用分区。
可以导入整个数据集,或者对其中一部分进行采样。对于 Databricks 数据库,提供了以下采样选项:
-
无 – 导入整个数据集。
-
前 K 行 – 对数据集的前 K 行进行采样,其中 K 是您指定的整数。
-
随机化 – 随机提取指定大小的样本。
-
分层 – 随机提取分层样本。分层样本保持列中的值比例。
可以通过以下步骤,从 Databricks 数据库导入数据。
要从 Databricks 导入数据,请执行以下操作。
-
选择 Studio。
-
选择启动应用程序。
-
从下拉列表中选择 Studio。
-
从 Data Wrangler 流的导入数据选项卡中,选择 Databricks。
-
指定以下字段:
-
数据集名称 – 要在 Data Wrangler 流中用于数据集的名称。
-
驱动程序 – com.simba.spark.jdbc.Driver。
-
JDBCURL— Databricks 数据库的。URL在 Databricks 实例之间,URL格式可能会有所不同。有关查找URL和在其中指定参数的信息,请参阅JDBC配置和连接参数
。以下是如何格式化的示例:jdbc: spark: //.c aws-sagemaker-datawrangler loud.databricks.co URL m: 443/default;=http;ssl=1;=sql/protocolv1/o/3122619508517275/0909-200301-cut318;=3;= transportMode httpPath AuthMech UID token
;PWD=personal-access-token
.注意
您可以指定包含的密钥ARN,JDBCURL而不必指定其本JDBCURL身。密钥必须包含以下格式的键/值对:
jdbcURL:
。有关更多信息,请参阅什么是 Secrets Manager?JDBC-URL
-
-
指定SQLSELECT语句。
注意
Data Wrangler 不支持查询中的公用表表达式 (CTE) 或临时表。
-
对于采样,选择一种采样方法。
-
选择运行。
-
(可选)对于 PREVIEW,选择开启分区设置的齿轮。
-
指定分区的数量。如果指定分区数,可以按列进行分区:
-
输入分区数 – 指定一个大于 2 的值。
-
(可选)按列分区 – 指定以下字段。只有在输入分区数中指定值后,才能按列进行分区。
-
选择列 – 选择要用于数据分区的列。列的数据类型必须为数字或日期。
-
上限 – 根据您指定的列中的值,上限是正在分区中使用的值。指定的值不会更改正在导入的数据。只会影响导入的速度。为了获得最佳性能,请指定接近列最大值的上限。
-
下限 – 根据您指定的列中的值,下限是正在分区中使用的值。指定的值不会更改正在导入的数据。只会影响导入的速度。为了获得最佳性能,请指定接近列最小值的下限。
-
-
-
-
选择 Import(导入)。
从 Salesforce Data Cloud 导入数据
您可以使用 Salesforce 数据云作为 Amazon Data Wrangler 中的 SageMaker 数据源,为机器学习准备 Salesforce 数据云中的数据。
使用 Salesforce Data Cloud 作为 Data Wrangler 中的数据来源,您不需要编写一行代码,即可快速连接到 Salesforce 数据。在 Data Wrangler 中,可以将您的 Salesforce 数据与来自任何其他数据来源的数据联接起来。
连接到数据云后,可以执行以下操作:
-
使用内置的可视化效果可视化您的数据
-
了解数据并标识潜在的错误和极端值
-
使用 300 多种内置转换功能转换数据
-
导出转换后的数据
管理员设置
重要
在开始之前,请确保您的用户运行的是 Amazon SageMaker Studio Classic 版本 1.3.0 或更高版本。有关检查 Studio Classic 版本并对其进行更新的信息,请参阅使用 Amazon Data Wrangler 准备机器学习 SageMaker 数据。
设置对 Salesforce Data Cloud 的访问权限时,您必须完成以下任务:
-
获取你的 Salesforce 域名URL。Salesforce 还将域名URL称为您的组织。URL
-
从 Salesforce 获取OAuth证书。
-
获取您的 Salesforce 域名的授权URL和令牌URL。
-
创建一个 Amazon Secrets Manager OAuth配置的秘密。
-
创建 Data Wrangler 用来从密钥中读取凭证的生命周期配置。
-
向 Data Wrangler 授予读取密钥的权限。
执行上述任务后,您的用户可以使用登录到 Salesforce 数据云。OAuth
注意
在完成所有设置后,您的用户可能会遇到问题。有关排查故障的信息,请参阅 Salesforce 故障排除。
使用以下步骤获取域名URL。
-
导航到 Salesforce 登录页面。
-
对于快速查找,指定我的域。
-
将 “当前我的域名” 的值复制URL到文本文件中。
-
https://
添加到的开头URL。
获得 Salesforce 域名后URL,你可以使用以下过程从 Salesforce 获取登录凭证,并允许 Data Wrangler 访问你的 Salesforce 数据。
要从 Salesforce 获取登录凭证并提供对 Data Wrangler 的访问权限,请执行以下操作。
-
导航到你的 Salesforce 域名URL并登录到你的账户。
-
选择齿轮图标。
-
在显示的搜索栏中,指定应用程序管理器。
-
选择新建连接的应用程序。
-
指定以下字段:
-
连接的应用程序名称 – 您可以指定任何名称,但我们建议选择包含 Data Wrangler 的名称。例如,可以指定 Salesforce Data Cloud Data Wrangler Integration。
-
API名称-使用默认值。
-
联系人电子邮件 – 指定电子邮件地址。
-
在 “API标题(启用OAuth设置)” 下,选中复选框以激活OAuth设置。
-
对于回调,URL请指定 Amazon SageMaker Studio 经典版URL。要获取 Stud URL io Classic 版,请从 Amazon Web Services Management Console 然后复制URL.
-
-
在 “选定OAuth范围” 下,将以下内容从 “可用OAuth范围” 移至 “选定OAuth范围”:
-
通过 APIs (
api
) 管理用户数据 -
随时执行请求 (
refresh_token
,offline_access
) -
对 Salesforce 数据云数据执行ANSISQL查询 ()
cdp_query_api
-
管理 Salesforce 客户数据平台配置文件数据 (
cdp_profile_api
)
-
-
选择保存。保存更改后,Salesforce 会打开一个新页面。
-
选择继续。
-
导航到使用者密钥和私有密钥。
-
选择管理使用者详细信息。Salesforce 会将您重定向到一个新页面,其中您可能需要通过双因素身份验证。
-
重要
将使用者密钥和私有密钥复制到文本编辑器中。您需要该信息,才能将数据云连接到 Data Wrangler。
-
导航回管理连接的应用程序。
-
导航到连接的应用程序名称和您的应用程序名称。
-
选择管理。
-
选择编辑策略。
-
将 IP 放宽更改为放宽 IP 限制。
-
选择保存。
-
在提供对 Salesforce Data Cloud 的访问权限后,您需要为用户提供权限。可以通过以下步骤为他们提供权限。
要为您的用户提供权限,请执行以下操作。
-
导航到设置主页。
-
在左侧导航栏中,搜索用户,然后选择用户菜单项。
-
选择包含您的用户名的超链接。
-
导航到权限集分配。
-
选择编辑分配。
-
添加以下权限:
-
客户数据平台管理员
-
客户数据平台数据感知专家
-
-
选择保存。
获得 Salesforce 域名的信息后,您必须获得该域URL名的授权URL和令牌 Amazon Secrets Manager 你正在创建的秘密。
使用以下过程获取授权URL和令牌URL。
获取授权URL和令牌 URL
-
导航到你的 Salesforce 域名URL。
-
使用以下方法之一获取URLs. 如果您使用的是安装有
curl
和jq
的 Linux 发行版,我们建议您使用仅适用于 Linux 的方法。-
(仅限 Linux)在终端中指定以下命令。
curl
salesforce-domain-URL
/.well-known/openid-configuration | \ jq '. | { authorization_url: .authorization_endpoint, token_url: .token_endpoint }' | \ jq '. += { identity_provider: "SALESFORCE", client_id: "example-client-id
", client_secret: "example-client-secret
" }' -
-
导航到
在您的浏览器中。example-org-URL
/.well-known/openid-configuration -
将
authorization_endpoint
和token_endpoint
复制到文本编辑器中。 -
创建以下JSON对象:
{ "identity_provider": "SALESFORCE", "authorization_url": "
example-authorization-endpoint
", "token_url": "example-token-endpoint
", "client_id": "example-consumer-key
", "client_secret": "example-consumer-secret
" }
-
-
创建OAuth配置对象后,您可以创建一个 Amazon Secrets Manager 存储它的秘密。通过以下过程创建密钥。
要创建密钥,请执行以下操作。
-
选择存储密钥。
-
选择其他密钥类型。
-
在键/值对下,选择纯文本。
-
将空JSON项替换为以下配置设置。
{ "identity_provider": "SALESFORCE", "authorization_url": "
example-authorization-endpoint
", "token_url": "example-token-endpoint
", "client_id": "example-consumer-key
", "client_secret": "example-consumer-secret
" } -
选择下一步。
-
对于密钥名称,指定密钥的名称。
-
在标签下,选择添加。
-
对于键,指定 sagemaker:partner。对于值,我们建议指定一个可能对您的使用案例有用的值。不过,可以指定任何值。
重要
您必须创建键。如果不创建键,则无法从 Salesforce 导入数据。
-
-
选择下一步。
-
选择 Store (存储)。
-
选择您创建的密钥。
-
记录以下字段:
-
机密的 Amazon 资源编号 (ARN)
-
密钥的名称
-
创建密钥后,必须为 Data Wrangler 添加读取密钥的权限。通过以下过程添加权限。
要为 Data Wrangler 添加读取权限,请执行以下操作。
-
导航至 Amazon SageMaker 控制台
。 -
选择域名。
-
选择您用于访问 Data Wrangler 的域。
-
选择您的用户配置文件。
-
在详细信息下,找到执行角色。ARN它采用以下格式:
arn:aws:iam::111122223333:role/
. 记下 SageMaker 执行角色。在里ARN面,就是之后的一切example-role
role/
。 -
导航到 IAM 控制台
。 -
在 “IAM搜索” 搜索栏中,指定 SageMaker 执行角色的名称。
-
选择角色 。
-
选择添加权限。
-
选择创建内联策略。
-
选择JSON选项卡。
-
在编辑器中指定以下策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:*", "Condition": { "ForAnyValue:StringLike": { "aws:ResourceTag/sagemaker:partner": "*" } } }, { "Effect": "Allow", "Action": [ "secretsmanager:UpdateSecret" ], "Resource": "arn:aws:secretsmanager:*:*:secret:AmazonSageMaker-*" } ] }
-
选择查看策略。
-
对于名称,指定一个名称。
-
选择创建策略。
在您授予 Data Wrangler 读取密钥的权限后,您必须将使用您的 Secrets Manager 密钥的生命周期配置添加到您的 Amazon SageMaker Studio Classic 用户个人资料中。
使用以下过程创建生命周期配置并将其添加到 Studio Classic 配置文件中。
要创建生命周期配置并将其添加到 Studio Classic 配置文件中,请执行以下操作。
-
导航至 Amazon SageMaker 控制台。
-
选择域名。
-
选择您用于访问 Data Wrangler 的域。
-
选择您的用户配置文件。
-
如果您看到以下应用程序,请将其删除:
-
KernelGateway
-
JupyterKernel
注意
删除应用程序会更新 Studio 经典版。更新操作可能需要一段时间才能生效。
-
-
在等待更新生效时,选择生命周期配置。
-
确保你所在的页面显示 Studio Classic 生命周期配置。
-
选择创建配置。
-
确保已选择 Jupyter 服务器应用程序。
-
选择下一步。
-
对于名称,指定配置的名称。
-
对于脚本,指定以下脚本:
#!/bin/bash set -eux cat > ~/.sfgenie_identity_provider_oauth_config <<EOL { "secret_arn": "
secrets-arn-containing-salesforce-credentials
" } EOL -
选择提交。
-
在左侧导航栏中,选择域名。
-
选择您的域。
-
选择环境。
-
在个人 Studio Classic 应用程序的生命周期配置下,选择附加。
-
选择现有配置。
-
在 Studio Classic 生命周期配置下,选择您创建的生命周期配置。
-
选择附加到域。
-
选中附加的生命周期配置旁边的复选框。
-
选择设为默认值。
设置生命周期配置时,可能会遇到问题。有关调试生命周期配置的信息,请参阅 调试生命周期配置。
《数据科学家指南》
使用以下方法连接 Salesforce Data Cloud,并在 Data Wrangler 中访问您的数据。
重要
您的管理员需要使用上述部分中的信息来设置 Salesforce Data Cloud。如果您遇到问题,请与他们联系,以获得故障排除帮助。
要打开 Studio Classic 并查看其版本,请参阅以下步骤。
-
按照中的先决条件 步骤通过 Amazon SageMaker Studio Classic 访问 Data Wrangler。
-
在要用于启动 Studio Classic 的用户旁边,选择启动应用程序。
-
选择 Studio。
在 Data Wrangler 中使用 Salesforce Data Cloud 的数据创建数据集
-
选择 Studio。
-
选择启动应用程序。
-
从下拉列表中选择 Studio。
-
选择主页图标。
-
选择数据。
-
选择 Data Wrangler。
-
选择导入数据。
-
在可用下,选择 Salesforce Data Cloud。
-
对于连接名称,为与 Salesforce Data Cloud 的连接指定一个名称。
-
对于组织URL,请在您的 Salesf or ce 账户URL中指定组织。你可以URL从管理员那里获取。
-
选择连接。
-
指定用于登录 Salesforce 的凭证。
连接到 Salesforce Data Cloud 后,即可开始使用其中的数据创建数据集。
选择表后,可以编写查询并运行。查询输出显示在查询结果下方。
确定查询输出后,可以将查询的输出导入到 Data Wrangler 流中,以执行数据转换。
创建数据集后,导航到数据流屏幕,开始转换数据。
从 Snowflake 导入数据
您可以在 Data Wrangler 中使用 Snowflake 作为 SageMaker 数据源,在 Snowflake 中为机器学习准备数据。
利用 Snowflake 作为 Data Wrangler 中的数据来源,您可以快速连接到 Snowflake,而无需编写一行代码。在 Data Wrangler 中,可以将 Snowflake 中的数据与来自任何其他数据来源的数据联接起来。
连接后,您可以交互式查询存储在 Snowflake 中的数据,使用 300 多种预配置的数据转换方式来转换数据,使用一组强大的预配置可视化模板了解数据并识别潜在的错误和极端值,快速识别数据准备工作流中的不一致性,并在将模型部署到生产环境之前诊断问题。最后,您可以将数据准备工作流程导出到 Amazon S3,以用于其他 SageMaker 功能,例如亚马逊 SageMaker 自动驾驶、亚马逊 SageMaker 功能商店和亚马逊 SageMaker 管道。
您可以使用对查询输出进行加密 Amazon Key Management Service 您创建的密钥。有关 Amazon KMS,请参阅 Amazon Key Management Service.
管理员指南
重要
要了解有关细粒度访问控制和最佳实践的更多信息,请参阅安全访问控制
本节适用于在 Data Wrangler 中设置对 Snowflake 的访问权限的 Snowflake 管理员。 SageMaker
重要
您负责管理和监控 Snowflake 中的访问控制。Data Wrangler 不会添加与 Snowflake 相关的访问控制层。
访问控制包括以下内容:
-
用户访问的数据
-
(可选)使 Snowflake 能够将查询结果写入到 Amazon S3 存储桶的存储集成
-
用户可以运行的查询
(可选)配置 Snowflake 数据导入权限
默认情况下,Data Wrangler 会查询 Snowflake 中的数据,而不在 Amazon S3 位置中创建数据的副本。如果要配置与 Snowflake 的存储集成,请使用以下信息。您的用户可以使用存储集成,将查询结果存储在 Amazon S3 位置。
您的用户对敏感数据的访问权限可能会有所不同。为了获得最佳的数据安全性,请为每位用户提供各自的存储集成。每个存储集成都应具有各自的数据监管策略。
该功能目前在您所选择的区域中不可用。
Snowflake 需要对 S3 存储桶和目录具有以下权限,才能访问目录中的文件:
-
s3:GetObject
-
s3:GetObjectVersion
-
s3:ListBucket
-
s3:ListObjects
-
s3:GetBucketLocation
创建IAM策略
您必须创建IAM策略来配置 Snowflake 从 Amazon S3 存储桶加载和卸载数据的访问权限。
以下是您用来创建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重要
您正在指定 Amazon SageMaker 域名 ID 和 Amazon Web Services 区域 你用来运行 Data Wrangler 的。
重要
您必须URL为每个 Amazon SageMaker 域名注册一个 Amazon Web Services 区域 你在哪里运行 Data Wrangler。来自网域的用户和 Amazon Web Services 区域 未为其URLs设置重定向的用户将无法通过身份提供商进行身份验证以访问 Snowflake 连接。
-
确保 Data Wrangler 应用程序允许使用授权代码和刷新令牌授予类型。
在您的身份提供商中,您必须设置一台服务器,以便在用户级别向 Data Wrangler 发送OAuth令牌。该服务器应发送以 Snowflake 为受众的令牌。
Snowflake 使用的角色概念与所使用的IAM角色截然不同 Amazon。 您必须将身份提供商配置为使用任何角色才能使用与 Snowflake 账户关联的默认角色。例如,如果用户在 Snowflake 配置文件中使用 systems administrator
作为默认角色,则从 Data Wrangler 到 Snowflake 的连接会将 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 secret 并将其添加到你用于 Data Wrangler 的 Amazon SageMaker Studio Classic 生命周期配置中。生命周期配置是一个 shell 脚本。使用它使 Data Wrangler 可以访问密钥的 Amazon 资源名称 (ARN)。有关创建密钥的信息,请参见将硬编码密钥移至 Amazon Secrets Manager。 有关在 Studio Classic 中使用生命周期配置的信息,请参阅使用生命周期配置自定义 Studio 经典版。
重要
在创建 Secrets Manager 密钥之前,请确保你在 Amazon SageMaker Studio Classic 中使用的 SageMaker 执行角色有权在 Secrets Manager 中创建和更新密钥。有关添加权限的更多信息,请参阅示例:创建密钥的权限。
对于 Okta 和 Ping 联合身份验证,密钥格式如下:
{ "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
)" }
生命周期配置必须使用已创建的 Secrets Manager 密钥。可以创建生命周期配置,也可以修改已创建的生命周期配置。配置必须使用以下脚本。
#!/bin/bash set -eux ## Script Body cat > ~/.snowflake_identity_provider_oauth_config <<EOL { "secret_arn": "
example-secret-arn
" } EOL
有关设置生命周期配置的信息,请参阅 创建并关联生命周期配置。完成设置过程时,请执行以下操作:
-
将配置的应用程序类型设置为
Jupyter Server
。 -
将配置附加到拥有您的用户的 Amazon SageMaker 域中。
-
让配置在默认情况下运行。它必须在用户每次登录 Studio Classic 时运行。否则,您的用户在使用 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身份证
-
Amazon 账户 ID
-
URL你用于访问 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身份证件。
-
如果您尚未创建子网,请按照以下有关创建子网的说明执行操作。
-
从VPC下拉列表中选择 “子网”。然后选择 “创建子网”,然后按照提示在中创建子集VPC。请务必选择发送给 Snowflake 的 VPC ID。
-
在安全组配置下,选择创建新安全组,在新选项卡中打开默认安全组屏幕。在这个新选项卡中,选择创建安全组。
-
提供新安全组的名称(例如
datawrangler-doc-snowflake-privatelink-connection
)和描述。请务必选择您在前面的步骤中使用的 VPC ID。 -
添加两条规则以允许流量从您的内部流VPC向此VPC终端节点。
在单独的选项卡VPCs中导航到你的 “你的” VPC 下,然后为你检索你的CIDR屏蔽VPC。在入站规则部分中,选择添加规则。为类型选择
HTTPS
,在表单中将源保留为自定义,然后粘贴从上一个describe-vpcs
调用中检索到的值(例如10.0.0.0/16
)。 -
选择创建安全组。从新创建的安全组中检索安全组 ID(例如
sg-xxxxxxxxxxxxxxxxx
)。 -
在VPC终端节点配置屏幕中,删除默认安全组。在搜索字段中粘贴安全组 ID,然后选中该复选框。
-
选择创建端点。
-
如果终端节点创建成功,您将看到一个页面,其中包含指向您的VPC终端节点配置的链接,该链接由 VPC ID 指定。选择该链接可以查看完整配置。
检索DNS姓名列表中最上面的记录。这可以与其他DNS名称区分开来,因为它只包含区域名称(例如
us-west-2
),不包含可用区字母符号(例如us-west-2a
)。存储此信息以供以后使用。
DNS在你的 Snowflake 终端节点中配置 VPC
本节介绍如何在您的中为 Snow DNS flake 端点进行配置。VPC这允许你解析VPC对 Snowflake 的请求 Amazon PrivateLink 端点。
-
导航到您的 Route 53 菜单
Amazon console。 -
选择托管区域选项(如有必要,展开左侧菜单以找到此选项)。
-
选择创建托管区域。
-
在域名字段中,引用在前述步骤中为
privatelink-account-url
存储的值。在此字段中,您的 Snowflake 账户 ID 将从DNS名称中删除,并且仅使用以地区标识符开头的值。后面还会为子域创建一个资源记录集,例如region.privatelink.snowflakecomputing.com
。 -
在类型部分中,选择私有托管区域的单选按钮。您的区域代码可能不是
us-west-2
。引用 S DNS nowflake 返回给你的名字。 -
在VPCs要与托管区域关联部分中,选择您VPC所在的区域以及前面步骤中使用的 VPC ID。
-
选择创建托管区域。
-
-
接下来,创建两个记录,一条用于
privatelink-account-url
,另一个用于privatelink_ocsp-url
。-
在托管区域菜单中,选择创建记录集。
-
在记录名称下,只输入您的 Snowflake 账户 ID(
privatelink-account-url
中的前 8 个字符)。 -
在 “记录类型” 下,选择CNAME。
-
在 “值” 下,输入您在设置 Snowflake 的最后一步中检索到的区域VPC终端节点的DNS名称 Amazon PrivateLink 集成部分。
-
选择创建记录。
-
对我们标注为的OCSP记录重复上述步骤
privatelink-ocsp-url
,从记录名称的 8 个字符的 Snowflake ID 开始(例如)。ocsp
ocsp.xxxxxxxx
-
-
为您配置 Route 53 解析器入站终端节点 VPC
本节介绍如何为您VPC配置 Route 53 解析器入站终端节点。
-
导航到您的 Route 53 菜单
Amazon console。 -
在左侧面板的安全部分中,选择安全组选项。
-
-
选择创建安全组。
-
提供您的安全组的名称(例如
datawranger-doc-route53-resolver-sg
)和描述。 -
选择前面步骤中使用的 VPC ID。
-
创建允许在VPCCIDR区块DNS内UDPTCP来回的规则。
-
选择创建安全组。请注意安全组 ID,因为添加了允许流向VPC端点安全组的流量的规则。
-
-
导航到您的 Route 53 菜单
Amazon console。 -
在解析器部分中,选择入站端点选项。
-
-
选择创建入站端点。
-
提供端点名称。
-
从 “区域” 下拉列表中,选择您在之前所有步骤中使用的 VPC ID。VPC
-
在此端点的安全组下拉列表中,选择本节步骤 2 中的安全组 ID。
-
在 IP 地址部分中,选择可用区,选择一个子网,然后保留为每个 IP 地址选择的使用自动选择的 IP 地址单选按钮。
-
选择提交。
-
-
创建入站端点后,选择入站端点。
-
创建入站端点后,记录解析器的两个 IP 地址。
SageMaker VPC端点
本节介绍如何为以下内容创建VPC终端节点:Amazon SageMaker Studio Classic SageMaker API、 SageMaker 笔记本电脑、 SageMaker 运行时和亚马逊 SageMaker 功能商店运行时。
创建应用于所有端点的安全组。
-
导航到中的EC2菜单
Amazon 控制台。 -
在网络和安全部分中,选择安全组选项。
-
选择创建安全组。
-
提供安全组的名称和描述(例如
datawrangler-doc-sagemaker-vpce-sg
)。稍后会添加一条规则,允许HTTPS来自该群组 SageMaker 的流量。
创建端点
-
导航到中的VPC菜单
Amazon console。 -
选择端点选项。
-
选择创建端点。
-
通过在搜索字段中输入服务名称,来搜索服务。
-
从VPC下拉列表中,选择你的 Snow VPC flake 所在的 Amazon PrivateLink 连接存在。
-
在子网部分中,选择有权访问 Snow PrivateLink flake 连接的子网。
-
保持 “启用DNS名称” 复选框处于选中状态。
-
在安全组部分中,选择您在上一节中创建的安全组。
-
选择 Create Endpoint(创建端点)。
配置 Studio Classic 和数据牧马人
本节介绍如何配置 Studio Classic 和 Data Wrangler。
-
配置安全组。
-
导航到 Amazon EC2 菜单中的 Amazon 控制台。
-
在网络和安全部分中,选择安全组选项。
-
选择创建安全组。
-
提供您的安全组(例如
datawrangler-doc-sagemaker-studio
)的名称和描述。 -
创建以下入站规则。
-
HTTPS与您在设置 Snowflake 集成步骤中创建的 Snowflake PrivateLink 连接配置的安全组的连接。 PrivateLink
-
HTTP与您在设置 Snowflake 集成步骤中创建的 Snowflake PrivateLink 连接配置的安全组的连接。 PrivateLink
-
你在UDPTCP为你配置 Route 53 解析器入站终端节点的步骤 2 中创建的DNS(端口 53)到 Route 53 解析器入站终端节点安全组。VPC
-
-
选择右下角的创建安全组按钮。
-
-
配置 Studio 经典版。
-
导航到中的 SageMaker 菜单 Amazon console。
-
在左侧控制台中,选择 SageMakerStudio Classic 选项。
-
如果您未配置任何域,则会出现开始使用菜单。
-
从开始使用菜单中,选择标准安装选项。
-
在 “身份验证方法” 下,选择 Amazon Identity and Access Managemen IAM t () 。
-
从权限菜单中,可以创建新角色或使用预先存在的角色,具体取决于您的使用案例。
-
如果选择创建新角色,则可以选择提供 S3 存储桶名称,并且系统会为您生成策略。
-
如果已经创建了一个角色,该角色对您需要访问的 S3 存储桶拥有权限,请从下拉列表中选择该角色。该角色应附加有
AmazonSageMakerFullAccess
策略:
-
-
选择 “网络和存储” 下拉列表以配置VPC、安全和子网的 SageMaker用途。
-
在下方 VPC,选择存在您的 Snowflake PrivateLink 连接的。VPC
-
在 “子网” 下,选择有权访问 S nowfl PrivateLink ake 连接的子网。
-
在 Studio Classic 的网络访问下,选择VPC仅限。
-
在安全组下,选择在步骤 1 中创建的安全组。
-
-
选择提交。
-
-
编辑 SageMaker 安全组。
-
创建以下入站规则:
-
将端口 2049 连接到步骤 2 SageMaker 中自动创建的入站和出站NFS安全组(安全组名称包含 Studio Classic 域 ID)。
-
自己可以访问所有TCP端口(VPC仅限 “需要”)。 SageMaker
-
-
-
编辑VPC端点安全组:
-
导航到 Amazon EC2 菜单中的 Amazon console。
-
找到您在前一个步骤中创建的安全组。
-
添加一条入站规则,允许来自步骤 1 中创建的安全组的HTTPS流量。
-
-
创建用户配置文件。
-
从 SageMaker Studio Classic 控制面板中,选择添加用户。
-
提供用户名称。
-
然后,对于执行角色,选择创建新的角色或使用现有角色。
-
如果选择创建新角色,则可以选择提供 Amazon S3 存储桶名称,并且系统会为您生成策略。
-
如果已经创建了一个角色,该角色对您需要访问的 Amazon S3 存储桶拥有权限,请从下拉列表中选择该角色。该角色应附加有
AmazonSageMakerFullAccess
策略:
-
-
选择提交。
-
-
创建数据流(按照上一节中概述的数据科学家指南执行操作)。
-
添加 Snowflake 连接时,在 Snowflake 帐户名
privatelink-account-name
(字母数字)字段中输入(来自设置 Snowflake PrivateLink 集成步骤)的值,而不是普通的 Snowflake 帐户名。其他所有内容都保持不变。
-
向数据科学家提供信息
向数据科学家提供从亚马逊 SageMaker 数据牧马人访问 Snowflake 所需的信息。
重要
您的用户需要运行 Amazon SageMaker Studio 经典版 1.3.0 或更高版本。有关检查 Studio Classic 版本并对其进行更新的信息,请参阅使用 Amazon Data Wrangler 准备机器学习 SageMaker 数据。
-
要允许您的数据科学家从 SageMaker Data Wrangler 访问 Snowflake,请为他们提供以下内容之一:
-
对于基本身份验证,提供 Snowflake 账户名称、用户名和密码。
-
对于OAuth,身份提供者中的用户名和密码。
-
对于ARN,Secrets Manager 的秘密亚马逊资源名称 (ARN)。
-
使用创建的秘密 Amazon Secrets Manager 和秘密中的一员。ARN如果您选择此选项,请通过以下步骤为 Snowflake 创建密钥。
重要
如果您的数据科学家使用 Snowflake 凭证(用户名和密码)选项连接到 Snowflake,则可以使用 Secrets Manager 将凭证存储在密钥中。Secrets Manager 会作为最佳实践安全计划的一部分轮换密钥。只有在设置 Studio Classic 用户配置文件时配置了 Studio Classic 角色后,才能访问在 Secrets Manager 中创建的密钥。这要求您将此权限添加到附加到您的 Studio Classic 角色的策略中。
secretsmanager:PutResourcePolicy
我们强烈建议您将角色策略范围限定为对不同的 Studio Classic 用户组使用不同的角色。可以为 Secrets Manager 密钥添加其他基于资源的权限。有关您可以使用的条件密钥,请参阅管理密钥策略。
有关创建密钥的信息,请参阅创建密钥。您需要为自己创建的密钥付费。
-
-
(可选)向数据科学家提供您使用以下过程创建的存储集成的名称:在 Snowflake 中创建云存储集成
。这是新集成的名称,在您运行的 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/') ]
《数据科学家指南》
通过以下过程在 Data Wrangler 中连接 Snowflake 并访问您的数据。
重要
您的管理员需要使用上述部分中的信息来设置 Snowflake。如果您遇到问题,请与他们联系,以获得故障排除帮助。
可以使用以下方法之一连接到 Snowflake:
-
在 Data Wrangler 中指定 Snowflake 凭证(账户名称、用户名称和密码)。
-
提供包含凭证的密钥的 Amazon 资源名称 (ARN)。
-
使用开放标准连接到 Snowflake 的访问委托 (OAuth) 提供商。您的管理员可以授予您访问以下OAuth提供商之一的权限:
请咨询您的管理员,了解连接到 Snowflake 要使用的方法。
下面各个部分提供了有关您如何使用上述方法连接到 Snowflake 的信息。
连接到 Snowflake 后,可以开始从 Snowflake 导入数据。
在 Data Wrangler 中,可以查看您的数据仓库、数据库和架构,还会看到可用于预览表的眼睛图标。选择预览表图标后,将生成该表的架构预览。必须先选择数据仓库,然后才能预览表。
重要
如果您要导入的数据集包含的列类型为 TIMESTAMP_TZ
或 TIMESTAMP_LTZ
,请在查询的列名中添加 ::string
。有关更多信息,请参见如何:将 TIMESTAMP _TZ 和 TIMESTAMP _ LTZ 数据卸载到 Parquet 文件
选择数据仓库、数据库和架构后,现在可以编写并运行查询。查询输出显示在查询结果下方。
确定查询输出后,可以将查询的输出导入到 Data Wrangler 流中,以执行数据转换。
在导入数据后,导航到 Data Wrangler 流,并开始向该流中添加转换。有关可用转换的列表,请参阅 转换数据。
从软件即服务 (SaaS) 平台导入数据
可以使用 Data Wrangler,从四十多个软件即服务 (SaaS) 平台导入数据。要从 SaaS 平台导入数据,您或您的管理员必须使用亚马逊 AppFlow 将数据从该平台传输到亚马逊 S3 或 Amazon Redshift。有关亚马逊的更多信息 AppFlow,请参阅什么是亚马逊 AppFlow? 如果不需要使用 Amazon Redshift,我们建议您将数据传输到 Amazon S3,以便简化流程。
Data Wrangler 支持从以下 SaaS 平台传输数据:
上述列表包含指向有关设置数据来源的更多信息的链接。阅读以下信息后,您或您的管理员可以参考前面的链接。
导航到 Data Wrangler 流的导入选项卡时,您将在以下部分下看到数据来源:
-
可用
-
设置数据来源
不需要进行额外配置,即可连接到可用下的数据来源。您可以选择数据来源并导入数据。
“设置数据源” 下的数据源要求您或您的管理员使用亚马逊将数据从 SaaS 平台传输 AppFlow 到 Amazon S3 或 Amazon Redshift。有关执行传输的信息,请参阅 使用 Amazon AppFlow 传输您的数据。
执行数据传输后,SaaS 平台将作为数据来源显示在可用下。可以选择该数据来源,然后将您传输的数据导入到 Data Wrangler 中。您传输的数据会以表形式出现,可供您查询。
使用 Amazon AppFlow 传输您的数据
亚马逊 AppFlow 是一个无需编写任何代码即可将数据从 SaaS 平台传输到 Amazon S3 或 Amazon Redshift 的平台。要执行数据传输,可以使用 Amazon Web Services Management Console.
重要
必须确保已设置执行数据传输的权限。有关更多信息,请参阅 亚马逊 AppFlow 权限。
添加权限后,可以传输数据。在 Amazon 中 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。
-
选择启动应用程序。
-
从下拉列表中选择 Studio。
-
选择主页图标。
-
选择数据。
-
选择 Data Wrangler。
-
选择导入数据。
-
在可用下,选择数据来源。
-
在名称字段中,指定连接名称。
-
(可选)选择高级配置。
-
选择一个工作组。
-
如果您的工作组尚未强制使用 Amazon S3 输出位置,或者您没有使用工作组,请为查询结果的 Amazon S3 位置指定一个值。
-
(可选)对于数据留存期,选中该复选框以设置数据留存期,并指定在删除数据之前存储数据的天数。
-
(可选)默认情况下,Data Wrangler 会保存连接。可以选择取消选中该复选框,此时不保存连接。
-
-
选择连接。
-
指定查询。
注意
为了协助您指定查询,可以在左侧导航面板上选择一个表。Data Wrangler 将显示表名和表的预览。选择表名称旁边的图标来复制名称。可以在查询中使用表名。
-
选择运行。
-
选择导入查询。
-
对于数据集名称,指定数据集的名称。
-
选择添加。
导航到导入数据屏幕时,您会看到已创建的连接。可以使用该连接来导入更多数据。
导入的数据存储
重要
我们强烈建议您采用安全最佳实践,遵循有关保护 Amazon S3 存储桶的最佳实践。
当您查询来自 Amazon Athena 或 Amazon Redshift 的数据时,查询的数据集会自动存储在 Amazon S3 中。数据存储在默认 SageMaker S3 存储桶中 Amazon 您正在使用 Studio Classic 的区域。
默认 S3 存储桶的命名约定如下:sagemaker-
。例如,如果你的账号是 111122223333,并且你在中使用 Studio Classic,则导入的数据集将存储在 region
-account
number
us-east-1
111122223333 中。sagemaker-us-east-1-
Data Wrangler 流依赖于此 Amazon S3 数据集位置,因此在使用依赖流时,不应在 Amazon S3 中修改此数据集。如果您确实修改了此 S3 位置,并且希望继续使用您的数据流,则必须移除 .flow 文件的 trained_parameters
中的所有对象。为此,请从 Studio Classic 下载.flow 文件,然后针对的每个实例trained_parameters
,删除所有条目。完成后,trained_parameters
应该是一个空JSON对象:
"trained_parameters": {}
当您导出数据流并使用数据流来处理数据时,导出的 .flow 文件会引用 Amazon S3 中的此数据集。使用以下部分了解更多信息。
Amazon Redshift 导入存储
Data Wrangler 将您的查询结果的数据集存储在默认 SageMaker S3 存储桶中的 Parquet 文件中。
此文件存储在以下前缀(目录)下:redshift/uuid
/data/,其中 uuid
是为每个查询创建的唯一标识符。
例如,如果您的默认存储桶是sagemaker-us-east-1-111122223333
,则从 Amazon Redshift 查询的单个数据集位于 s3: //-1-111122223333/redshift/ sagemaker-us-eastuuid
/data/。
Amazon Athena 导入存储
在查询 Athena 数据库并导入数据集时,Data Wrangler 会将数据集以及该数据集的子集(或称预览文件)存储在 Amazon S3 中。
您通过选择导入数据集导入的数据集,将以 Parquet 格式存储在 Amazon S3 中。
当您在 Athena 导入屏幕上选择 “运行” 时,预览文件将以CSV格式写入,并且最多包含来自所查询数据集的 100 行。
您查询的数据集位于前缀(目录)下:athena/uuid
/data/,其中 uuid
是为每个查询创建的唯一标识符。
例如,如果您的默认存储桶是sagemaker-us-east-1-111122223333
,则从 Athena 查询的单个数据集位于 /athena/ s3://sagemaker-us-east-1-111122223333
uuid
/data/example_dataset.parquet
.
用于在 Data Wrangler 中预览数据框架的数据集子集则存储在以下前缀下:athena/。