本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
连接到数据来源
在 Amazon SageMaker Canvas 中,您可以使用JDBC连接器通过 AWS 服务、SaaS 平台或其他数据库从本地文件系统以外的位置导入数据。例如,您可能想从 Amazon Redshift 的数据仓库中导入表,或者想导入 Google Analytics 数据。
通过导入工作流在 Canvas 应用程序中导入数据时,您可以选择数据来源,然后选择要导入的数据。对于某些数据来源(如 Snowflake 和 Amazon Redshift),必须指定您的凭证并添加与数据来源的连接。
以下屏幕截图显示了导入工作流中的数据来源工具栏,其中突出显示了所有可用的数据来源。您只能从可用的数据来源中导入数据。如果您所需的数据来源不可用,请联系您的管理员。
以下几节提供有关建立与外部数据来源的连接以及从外部数据来源导入数据的信息。请先查看以下部分,以确定从数据来源导入数据所需的权限。
权限
查看以下信息,以确保您拥有从数据来源导入数据的必要权限:
Amazon S3:只要用户拥有访问 Amazon S3 存储桶的权限,就可以从任何这样的存储桶导入数据。有关使用 AWS IAM控制对 Amazon S3 存储桶的访问的更多信息,请参阅 Amazon S3 用户指南中的 Amazon S3 中的身份和访问管理。
Amazon Athena:如果您AmazonSageMakerFullAccess将策略和AmazonSageMakerCanvasFullAccess策略附加到用户的执行角色上,则可以通过 A AWS Glue Data Catalog mazon Athena 查询您的策略。如果您是 Athena 工作组的成员,请确保 Canvas 用户有权对数据运行 Athena 查询。有关更多信息,请参阅《Amazon Athena 用户指南》中的使用工作组运行查询。
Amazon DocumentDB:您可以从任何 Amazon DocumentDB 数据库导入数据,前提是您拥有连接数据库的凭证(用户名和密码),并且拥有与用户执行角色关联的最低基本 Canvas 权限。有关 Canvas 权限的更多信息,请参阅设置 Amazon C SageMaker anvas 的先决条件。
Amazon Redshift:要授予您自己从 Amazon Redshift 导入数据的必要权限,请参阅授予用户导入 Amazon Redshift 数据的权限。
亚马逊RDS:如果您将AmazonSageMakerCanvasFullAccess策略附加到用户的执行角色,那么您将能够从 Canvas 访问您的亚马逊RDS数据库。
SaaS 平台:如果您将AmazonSageMakerFullAccess策略和AmazonSageMakerCanvasFullAccess策略附加到用户的执行角色,那么您就拥有从 SaaS 平台导入数据的必要权限。有关连接到特定 SaaS 连接器的更多信息,请参阅在 Canvas 中使用 SaaS 连接器。
JDBC连接器:对于 Databricks、SQL My 或 MariaDB 等数据库源,在尝试从 Canvas 进行连接之前,必须先在源数据库上启用用户名和密码身份验证。如果您要连接到 Databricks 数据库,则必须拥有JDBCURL包含必要凭据的。
Connect 连接到存储在中的数据库 AWS
您可能需要导入存储在中的数据 AWS。您可以从 Amazon S3 导入数据,使用亚马逊 Athena 在中查询数据库,从亚马逊导入数据,或者连接到预配置的 A RDSmazon Redshift 数据库(不 AWS Glue Data Catalog是 Redshift Serverless)。
您可以创建多个到 Amazon Redshift 的连接。对于 Amazon Athena,您可以访问 AWS Glue Data Catalog 中的任何数据库。对于 Amazon S3,只要您拥有必要的权限,就可以从存储桶导入数据。
请查看以下几节,了解更多详细信息。
连接亚马逊 S3、亚马逊 Athena 或亚马逊中的数据 RDS
对于 Amazon S3,只要您拥有访问 Amazon S3 存储桶的权限,就可以从该存储桶导入数据。
对于亚马逊 Athena,只要您拥有通过亚马逊 A thena 工作组的权限,您就可以访问 AWS Glue Data Catalog 自己的数据库。
对于亚马逊RDS,如果您将AmazonSageMakerCanvasFullAccess策略附加到用户的角色,则可以将数据从亚马逊RDS数据库导入到Canvas中。
要从 Amazon S3 存储桶导入数据,或使用 Amazon Athena 运行查询和导入数据表,请参阅创建数据集。您只能从 Amazon Athena 导入表格数据,但可以从 Amazon S3 导入表格和图像数据。
连接 Amazon DocumentDB 数据库
Amazon DocumentDB 是一项完全托管、无服务器的文档数据库服务。您可以将存储在 Amazon DocumentDB 数据库中的非结构化文档数据作为表格数据集导 SageMaker 入 Canvas,然后使用这些数据构建机器学习模型。
重要
您的 SageMaker 域名必须配置为VPC仅限模式才能添加与 Amazon DocumentDB 的连接。您只能在与您的 Canvas 应用程序VPC相同的亚马逊中访问亚马逊文档数据库集群。此外,Canvas 只能连接到TLS启用了 Amazon DocumentDB 集群。有关如何在VPC仅限模式下设置 Canvas 的更多信息,请参阅在VPC没有互联网访问权限的情况下配置 Amazon SageMaker Canvas。
要从 Amazon DocumentDB 数据库导入数据,您必须拥有访问亚马逊 DocumentDB 数据库的凭证,并在创建数据库连接时指定用户名和密码。您可以通过修改 Amazon DocumentDB 用户权限来配置更精细的权限并限制访问权限。要了解有关 Amazon DocumentDB 中访问控制的更多信息,请参阅 Amazon DocumentDB 开发者指南中的使用基于角色的访问控制进行数据库访问。
当您从 Amazon DocumentDB 导入时,Canvas 会通过将字段映射到表中的列,将您的非结构化数据转换为表格数据集。为数据中的每个复杂字段(或嵌套结构)创建其他表,其中列对应于复杂字段的子字段。有关此过程的更多详细信息以及架构转换示例,请参阅 Amazon DocumentDB JDBC 驱动程序架构发现 GitHub 页面
Canvas 只能连接到 Amazon DocumentDB 中的单个数据库。要从其他数据库导入数据,必须创建一个新连接。
您可以使用以下方法将数据从 Amazon DocumentDB 导入 Canvas:
要继续导入数据,请按照前面列表中链接的方法之一的步骤进行操作。
当您在任一工作流程中进入选择数据源的步骤(步骤 6 用于创建数据集,或步骤 8 用于创建数据流)时,请执行以下操作:
对于 “数据源”,打开下拉菜单并选择 D ocumen tDB。
选择添加连接。
-
在对话框中,指定您的亚马逊 DocumentDB 凭证:
输入连接名称。这是 Canvas 用来识别此连接的名称。
对于集群,在 Amazon DocumentDB 中选择存储您的数据的集群。Canvas 会自动使用与您的 Canvas 应用程序VPC相同的亚马逊文档数据库集群填充下拉菜单。
输入您的亚马逊文档数据库集群的用户名。
输入您的亚马逊文档数据库集群的密码。
输入要连接的数据库的名称。
-
读取首选项选项决定了集群 Canvas 上从哪些类型的实例中读取数据。选择以下选项之一:
首选辅助实例 — Canvas 默认为从集群的辅助实例中读取,但如果辅助实例不可用,则 Canvas 会从主实例读取。
S@@ ec ondary — Canvas 仅从集群的辅助实例中读取,这样可以防止读取操作干扰集群的常规读取和写入操作。
-
选择添加连接。下图显示了带有上述字段的对话框,用于连接 Amazon DocumentDB。
现在,您应该有亚马逊文档数据库连接,并且可以在 Canvas 中使用您的 Amazon DocumentDB 数据来创建数据集或数据流。
连接到 Amazon Redshift 数据库
您可以从组织保存数据的数据仓库 Amazon Redshift 中导入数据。在从 Amazon Redshift 导入数据之前,您使用的 AWS IAM角色必须附加AmazonRedshiftFullAccess
托管策略。有关如何附加此策略的说明,请参阅授予用户导入 Amazon Redshift 数据的权限。
要从 Amazon Redshift 导入数据,您需要执行以下操作:
-
创建与 Amazon Redshift 数据库的连接。
-
选择要导入的数据。
-
导入数据。
您可以使用 Amazon Redshift 编辑器将数据集拖到导入窗格上,然后将其导入到 Canvas 中 SageMaker 。要更好地控制数据集中返回的值,可以使用以下方法:
-
SQL查询
-
联接
通过SQL查询,您可以自定义如何导入数据集中的值。例如,您可以指定数据集中返回的列或列的值范围。
您可以使用联接将来自 Amazon Redshift 的多个数据集合并到一个数据集中。您可以将数据集从 Amazon Redshift 拖动到面板中,以便您能够联接数据集。
您可以使用SQL编辑器编辑已连接的数据集,并将连接的数据集转换为单个节点。您可以将另一个数据集联接到该节点。你可以将你选择的数据导入 SageMaker 画布。
使用以下过程从 Amazon Redshift 导入数据。
在 SageMaker Canvas 应用程序中,转到 “数据集” 页面。
选择 “导入数据”,然后从下拉菜单中选择 “表格”。
-
输入数据集的名称,然后选择创建。
对于数据来源,打开下拉菜单并选择 Redshift。
-
选择添加连接。
-
在对话框中指定您的 Amazon Redshift 凭证:
-
对于身份验证方法,选择IAM。
-
输入集群标识符以指定要连接到哪个集群。只输入集群标识符,不输入 Amazon Redshift 集群的完整端点。
-
输入要连接的数据库的数据库名称。
-
输入数据库用户以识别要用来连接到数据库的用户。
-
对于 ARN,输入 Amazon Redshift 集群在向 Amazon S3 移动和写入数据时应扮演的角色角色。IAM ARN有关此角色的更多信息,请参阅《亚马逊 Redshift 管理指南》中的授权亚马逊 Reds hift 代表您访问 AWS 其他服务。
-
输入连接名称。这是 Canvas 用来识别此连接的名称。
-
-
从显示连接名称的选项卡中,将要导入的 .csv 文件拖动到拖放表以导入窗格。
-
可选:将其他表拖到导入窗格中。您可以使用GUI来联接表。要了解联接的更多细节,请选择 “编辑”。SQL
-
可选:如果您使用SQL查询数据,则可以选择 Conte x t,通过为以下内容指定值来为连接添加上下文:
-
数据仓库
-
数据库
-
架构
-
-
选择导入数据。
下图显示了为 Amazon Redshift 连接指定的字段的示例。
下图显示了用于在 Amazon Redshift 中联接数据集的页面。
下图显示了用于在 Amazon Redshift 中编辑联接的SQL查询。
使用连接JDBC器连接到您的数据
使用JDBC,你可以从 Databricks、My SQL、Postgre、SQL MariaDB SQLServer、Amazon 和 RDS Amazon Aurora 等来源连接到数据库。
您必须确保拥有从 Canvas 创建连接所需的凭证和权限。
对于 Databricks,你必须提供一个。JDBC URL在 Databricks 实例之间,URL格式可能会有所不同。有关查找URL和在其中指定参数的信息,请参阅 Databricks 文档中的JDBC配置和连接参数
。以下是如何格式化的示例:URL jdbc:spark://aws-sagemaker-datawrangler.cloud.databricks.com:443/default;transportMode=http;ssl=1;httpPath=sql/protocolv1/o/3122619508517275/0909-200301-cut318;AuthMech=3;UID=token;PWD=personal-access-token
对于其他数据库源,必须设置用户名和密码身份验证,然后在从 Canvas 连接到数据库时指定这些凭证。
此外,您的数据源必须可通过公共 Internet 访问,或者如果您的 Canvas 应用程序在VPC仅限模式下运行,则数据源必须以相同的模式运行VPC。有关在中配置亚马逊RDS数据库的更多信息VPC,请参阅亚马逊RDS用户指南RDS中的亚马逊VPCVPCs和亚马逊。
配置数据来源凭证后,您可以登录 Canvas 应用程序并创建与数据来源的连接。在创建连接时指定您的凭据(或者,对于 Databricks,则为URL)。
使用 Connect 连接到数据源 OAuth
Canvas 支持使用OAuth身份验证方法来连接你在 Snowflake 和 Salesforce Data Cloud 中的数据。OAuth
注意
只能为每个数据源建立一个OAuth连接。
要授权连接,必须按照使用设置与数据源的连接 OAuth中所述的初始设置进行操作。
设置OAuth凭据后,您可以执行以下操作来添加 Snowflake 或 Salesforce Data Cloud 连接:OAuth
登录到 Canvas 应用程序。
创建表格数据集。当系统提示上传数据时,请选择 Snowflake 或 Salesforce Data Cloud 作为数据来源。
创建与 Snowflake 或 Salesforce Data Cloud 数据来源的新连接。指定OAuth为身份验证方法并输入您的连接详细信息。
现在,您应该能够从 Snowflake 或 Salesforce Data Cloud 中的数据库导入数据。
连接到 SaaS 平台
您可以从 Snowflake 和其他 40 多个外部 SaaS 平台导入数据。有关连接器的完整列表,请参阅数据导入中的表。
注意
您只能从 SaaS 平台导入表格数据,例如数据表。
在 Canvas 中使用 Snowflake
Snowflake 是一项数据存储和分析服务,你可以将数据从 Snowflake 导入 Canvas。 SageMaker 有关 Snowflake 的更多信息,请参阅 Snowflake 文档
您可以通过执行以下操作从 Snowflake 账户导入数据:
-
创建与 Snowflake 数据库的连接。
-
通过将表格从左侧导航菜单拖放到编辑器中来选择要导入的数据。
-
导入数据。
您可以使用 Snowflake 编辑器将数据集拖到导入窗格上,然后将其导入到 Canvas 中 SageMaker 。要更好地控制数据集中返回的值,可以使用以下方法:
-
SQL查询
-
联接
通过SQL查询,您可以自定义如何导入数据集中的值。例如,您可以指定数据集中返回的列或列的值范围。
在使用SQL或 Canvas 接口导入 Canvas 之前,您可以将多个 Snowflake 数据集联接到单个数据集中。您可以将数据集从 Snowflake 拖到允许您连接数据集的面板中,也可以编辑连接SQL并将其SQL转换为单个节点。您可以将其他节点联接到已转换的节点。然后,您可以将已联接的数据集合并到一个节点,并将节点联接到不同的 Snowflake 数据集。最后,您可以将所选数据导入 Canvas。
使用以下步骤将数据从 Snowflake 导入到 Ama SageMaker zon Canvas。
在 SageMaker Canvas 应用程序中,转到 “数据集” 页面。
选择 “导入数据”,然后从下拉菜单中选择 “表格”。
-
输入数据集的名称,然后选择创建。
对于数据来源,打开下拉菜单并选择 Snowflake。
-
选择添加连接。
-
在添加新的 Snowflake 连接对话框中,指定您的 Snowflake 凭证。对于身份验证方法,请选择以下选项之一:
基本-用户名密码-提供您的 Snowflake 帐户 ID、用户名和密码。
-
ARN— 为了更好地保护您的 Snowflake 凭据,请提供包含您的凭据ARN的 AWS Secrets Manager 密钥。有关更多信息,请参阅AWS Secrets Manager 用户指南中的创建 AWS Secrets Manager 密钥。
您的密钥应以以下JSON格式存储您的 Snowflake 凭据:
{"accountid": "
ID
", "username": "username
", "password": "password
"} OAuth— OAuth 允许您在不提供密码的情况下进行身份验证,但需要额外的设置。有关为 Snowflake 设置OAuth凭据的更多信息,请参阅。使用设置与数据源的连接 OAuth
-
选择添加连接。
-
从显示连接名称的选项卡中,将要导入的 .csv 文件拖动到拖放表以导入窗格。
-
可选:将其他表拖到导入窗格中。您可以使用用户界面来联接表。要了解联接的更多细节,请选择 “编辑”。SQL
-
可选:如果您使用SQL查询数据,则可以选择 Conte x t,通过为以下内容指定值来为连接添加上下文:
-
数据仓库
-
数据库
-
架构
向连接添加上下文可以更容易地指定未来的查询。
-
-
选择导入数据。
下图显示了为 Snowflake 连接指定的字段的示例。
下图显示了用于向连接添加上下文的页面。
下图显示了用于在 Snowflake 中联接数据集的页面。
下图显示了在 Snowflake 中编辑联接时使用的SQL查询。
在 Canvas 中使用 SaaS 连接器
注意
对于除 Snowflake 之外的 SaaS 平台,每个数据来源只能有一个连接。
管理员必须先进行身份验证并创建与数据来源的连接,然后您才能从 SaaS 平台导入数据。有关管理员如何创建与 SaaS 平台的连接的更多信息,请参阅《亚马逊 AppFlow 用户指南》中的 “管理亚马逊 AppFlow 连接”。
如果您是首次使用亚马逊 AppFlow 的管理员,请参阅《亚马逊 AppFlow 用户指南》中的入门。
要从 SaaS 平台导入数据,您可以按照标准的导入表格数据过程进行操作,该过程向您展示了如何将表格数据集导入到 Canvas 中。