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

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

连接到数据来源

在 Amazon SageMaker Canvas 中,您可以使用 JDBC 连接器通过 Amazon 服务、SaaS 平台或其他数据库从本地文件系统以外的位置导入数据。例如,您可能想从 Amazon Redshift 的数据仓库中导入表,或者想导入 Google Analytics 数据。

通过导入工作流在 Canvas 应用程序中导入数据时,您可以选择数据来源,然后选择要导入的数据。对于某些数据来源(如 Snowflake 和 Amazon Redshift),必须指定您的凭证并添加与数据来源的连接。

以下屏幕截图显示了导入工作流中的数据来源工具栏,其中突出显示了所有可用的数据来源。您只能从可用的数据来源中导入数据。如果您所需的数据来源不可用,请联系您的管理员。

Canvas 中导入数据页面上的数据来源下拉菜单。

以下几节提供有关建立与外部数据来源的连接以及从外部数据来源导入数据的信息。请先查看以下部分,以确定从数据来源导入数据所需的权限。

权限

查看以下信息,以确保您拥有从数据来源导入数据的必要权限:

  • Amazon S3:只要用户拥有访问 Amazon S3 存储桶的权限,就可以从任何这样的存储桶导入数据。有关使用 Amazon IAM 控制对 Amazon S3 存储桶的访问的更多信息,请参阅 Amazon S3 用户指南中的 Amazon S3 中的身份和访问管理

  • Amazon Athena:如果您AmazonSageMakerFull将访问策略和AmazonSageMakerCanvasFullAccess策略附加到用户的执行角色上,则可以通过 Amazon Glue Data Catalog Amazon Athena 查询您的策略。如果您是 Athena 工作组的成员,请确保 Canvas 用户有权对数据运行 Athena 查询。有关更多信息,请参阅《Amazon Athena 用户指南》中的使用工作组运行查询

  • Amazon DocumentDB:您可以从任何 Amazon DocumentDB 数据库导入数据,前提是您拥有连接数据库的凭证(用户名和密码),并且拥有与用户的执行角色关联的最低基本 Canvas 权限。有关 Canvas 权限的更多信息,请参阅设置 Amazon C SageMaker anvas 的先决条件

  • Amazon Redshift:要授予您自己从 Amazon Redshift 导入数据的必要权限,请参阅授予用户导入 Amazon Redshift 数据的权限

  • Amazon RDS:如果您将AmazonSageMakerCanvasFullAccess策略附加到用户的执行角色,那么您将能够从 Canvas 访问您的 Amazon RDS 数据库。

  • SaaS 平台:如果您将AmazonSageMakerFull访问策略和AmazonSageMakerCanvasFullAccess策略附加到用户的执行角色,则您拥有从 SaaS 平台导入数据的必要权限。有关连接到特定 SaaS 连接器的更多信息,请参阅在 Canvas 中使用 SaaS 连接器

  • JDBC 连接器:对于 Databricks、MySQL 或 MariaDB 等数据库源,在尝试从 Canvas 进行连接之前,必须先在源数据库上启用用户名和密码身份验证。如果要连接到 Databricks 数据库,必须有包含必要凭证的 JDBC URL。

Connect 连接到存储在中的数据库 Amazon

您可能需要导入存储在中的数据 Amazon。您可以从 Amazon S3 导入数据,使用 Amazon Athena 在中查询数据库,从 Amazon RDS 导入数据,或者连接到预配置的 Amazon Redshift 数据库(不 Amazon Glue Data Catalog是 Redshift Serverless)。

您可以创建多个到 Amazon Redshift 的连接。对于 Amazon Athena,您可以访问 Amazon Glue Data Catalog 中的任何数据库。对于 Amazon S3,只要您拥有必要的权限,就可以从存储桶导入数据。

请查看以下几节,了解更多详细信息。

连接 Amazon S3、Amazon Athena 或 Amazon RDS 中的数据

对于 Amazon S3,只要您拥有访问 Amazon S3 存储桶的权限,就可以从该存储桶导入数据。

对于亚马逊 Athena,只要您拥有通过亚马逊 A thena 工作组的权限,您就可以访问 Amazon Glue Data Catalog 自己的数据库。

对于 Amazon RDS,如果您将AmazonSageMakerCanvasFullAccess策略附加到用户的角色,则可以将数据从 Amazon RDS 数据库导入到 Canvas。

要从 Amazon S3 存储桶导入数据,或使用 Amazon Athena 运行查询和导入数据表,请参阅创建数据集。您只能从 Amazon Athena 导入表格数据,但可以从 Amazon S3 导入表格和图像数据。

连接 Amazon DocumentDB 数据库

Amazon DocumentDB 是一项完全托管、无服务器的文档数据库服务。您可以将存储在 Amazon DocumentDB 数据库中的非结构化文档数据作为表格数据集导 SageMaker 入 Canvas,然后使用这些数据构建机器学习模型。

重要

您的 SageMaker 域必须配置为仅限 VPC 模式才能添加与 Amazon DocumentDB 的连接。您只能在与 Canvas 应用程序相同的亚马逊 VPC 中访问亚马逊 DocumentDB 集群。此外,Canvas 只能连接到支持 TLS 的亚马逊 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:

  • 创建数据集。 您可以导入您的 Amazon DocumentDB 数据并在 Canvas 中创建表格数据集。如果选择此方法,请确保按照导入表格数据过程进行操作。

  • 创建数据流。 您可以在 Canvas 中创建数据准备管道,并将您的 Amazon DocumentDB 数据库添加为数据源。

要继续导入数据,请按照上述列表中链接的方法之一的步骤进行操作。

当您在任一工作流程中选择数据源(步骤 6 用于创建数据集或步骤 8 用于创建数据流)时,请执行以下操作:

  1. 对于 “数据源”,打开下拉菜单并选择 D ocumen tDB。

  2. 选择添加连接

  3. 在对话框中,指定您的亚马逊 DocumentDB 凭证:

    1. 输入连接名称。这是 Canvas 用来识别此连接的名称。

    2. 对于集群,在 Amazon DocumentDB 中选择存储您的数据的集群。Canvas 会自动使用与您的 Canvas 应用程序位于同一 VPC 中的 Amazon DocumentDB 集群填充下拉菜单。

    3. 输入您的亚马逊文档数据库集群的用户名

    4. 输入您的亚马逊文档数据库集群的密码

    5. 输入要连接的数据库的名称。

    6. 读取首选项选项决定了集群 Canvas 上从哪些类型的实例中读取数据。选择以下选项之一:

      • 首选辅助实例 — Canvas 默认为从集群的辅助实例中读取,但如果辅助实例不可用,则 Canvas 会从主实例读取。

      • S@@ ec ondary — Canvas 仅从集群的辅助实例中读取,这样可以防止读取操作干扰集群的常规读取和写入操作。

    7. 选择添加连接。下图显示了带有上述字段的对话框,用于连接 Amazon DocumentDB。

      Canvas 中 “添加新的文档数据库连接” 对话框的屏幕截图。

现在,您应该有亚马逊文档数据库连接,并且可以在 Canvas 中使用您的 Amazon DocumentDB 数据来创建数据集或数据流。

连接到 Amazon Redshift 数据库

您可以从组织保存数据的数据仓库 Amazon Redshift 中导入数据。在从 Amazon Redshift 导入数据之前,您使用 Amazon 的 IAM 角色必须附加AmazonRedshiftFullAccess托管策略。有关如何附加此策略的说明,请参阅授予用户导入 Amazon Redshift 数据的权限

要从 Amazon Redshift 导入数据,您需要执行以下操作:

  1. 创建与 Amazon Redshift 数据库的连接。

  2. 选择要导入的数据。

  3. 导入数据。

您可以使用 Amazon Redshift 编辑器将数据集拖到导入窗格上,然后将其导入到 Canvas 中 SageMaker 。要更好地控制数据集中返回的值,可以使用以下方法:

  • SQL 查询

  • 联接

使用 SQL 查询,您可以自定义如何导入数据集中的值。例如,您可以指定数据集中返回的列或列的值范围。

您可以使用联接将来自 Amazon Redshift 的多个数据集合并到一个数据集中。您可以将数据集从 Amazon Redshift 拖动到面板中,以便您能够联接数据集。

您可以使用 SQL 编辑器编辑已联接的数据集,并将联接的数据集转换为单个节点。您可以将另一个数据集联接到该节点。你可以将你选择的数据导入 SageMaker 画布。

使用以下过程从 Amazon Redshift 导入数据。

  1. 在 SageMaker Canvas 应用程序中,转到 “数据集” 页面。

  2. 选择 “导入数据”,然后从下拉菜单中选择 “表格”。

  3. 输入数据集的名称,然后选择创建

  4. 对于数据来源,打开下拉菜单并选择 Redshift

  5. 选择添加连接

  6. 在对话框中指定您的 Amazon Redshift 凭证:

    1. 对于身份验证方法,请选择 IAM

    2. 输入集群标识符以指定要连接到哪个集群。只输入集群标识符,不输入 Amazon Redshift 集群的完整端点。

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

    4. 输入数据库用户以识别要用来连接到数据库的用户。

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

    6. 输入连接名称。这是 Canvas 用来识别此连接的名称。

  7. 从显示连接名称的选项卡中,将要导入的 .csv 文件拖动到拖放表以导入窗格。

  8. 可选:将其他表拖到导入窗格中。您可以使用 GUI 来联接表。要使联接更具体,请选择在 SQL 中编辑

  9. 可选:如果您使用 SQL 查询数据,则可以选择上下文通过指定以下内容的值来向连接添加上下文:

    • 数据仓库

    • 数据库

    • 架构

  10. 选择导入数据

下图显示了为 Amazon Redshift 连接指定的字段的示例。

画布中 “添加新 Redshift 连接” 对话框的屏幕截图。

下图显示了用于在 Amazon Redshift 中联接数据集的页面。

Canvas 中导入页面的屏幕截图,显示正在连接的两个数据集。

下图显示了用于在 Amazon Redshift 中编辑联接的 SQL 查询。

画布导入页面上编辑 S QL 编辑器中的 SQL 查询的屏幕截图。

使用 JDBC 连接器连接数据

通过 JDBC,您可以从 Databricks、SQLServer、MySQL、PostgreSQL、MariaDB、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 连接到数据库时指定这些凭证。

此外,您的数据源必须可通过公共互联网访问,或者如果您的 Canvas 应用程序在仅限 VPC 模式下运行,则数据源必须在同一 VPC 中运行。有关在 VPC 中配置 Amazon RDS 数据库的更多信息,请参阅《Amazon RDS 用户指南》中的 Amazon VPC 和 Amazon RDS

配置数据来源凭证后,您可以登录 Canvas 应用程序并创建与数据来源的连接。在创建连接时指定您的凭证(对于 Databricks,则指定 URL)。

使用 OAuth 连接到数据来源

Canvas 支持使用 OAuth 作为连接到 Snowflake 和 Salesforce Data Cloud 中数据的身份验证方法。OAuth 是一种通用的身份验证平台,用于在不共享密码的情况下授予对资源的访问权。

注意

每个数据来源只能建立一个 OAuth 连接。

要授权连接,必须按照使用 OAuth 设置与数据来源的连接中所述的初始设置进行操作。

设置完 OAuth 凭证后,您可以执行以下操作,通过 OAuth 添加 Snowflake 或 Salesforce Data Cloud 连接:

  1. 登录到 Canvas 应用程序。

  2. 创建表格数据集。当系统提示上传数据时,请选择 Snowflake 或 Salesforce Data Cloud 作为数据来源。

  3. 创建与 Snowflake 或 Salesforce Data Cloud 数据来源的新连接。指定 OAuth 作为身份验证方法并输入您的连接详细信息。

现在,您应该能够从 Snowflake 或 Salesforce Data Cloud 中的数据库导入数据。

连接到 SaaS 平台

您可以从 Snowflake 和其他 40 多个外部 SaaS 平台导入数据。有关连接器的完整列表,请参阅将数据导入至 Canvas中的表。

注意

您只能从 SaaS 平台导入表格数据,例如数据表。

在 Canvas 中使用 Snowflake

Snowflake 是一项数据存储和分析服务,你可以将数据从 Snowflake 导入 Canvas。 SageMaker 有关 Snowflake 的更多信息,请参阅 Snowflake 文档

您可以通过执行以下操作从 Snowflake 账户导入数据:

  1. 创建与 Snowflake 数据库的连接。

  2. 通过将表格从左侧导航菜单拖放到编辑器中来选择要导入的数据。

  3. 导入数据。

您可以使用 Snowflake 编辑器将数据集拖到导入窗格上,然后将其导入到 Canvas 中 SageMaker 。要更好地控制数据集中返回的值,可以使用以下方法:

  • SQL 查询

  • 联接

使用 SQL 查询,您可以自定义如何导入数据集中的值。例如,您可以指定数据集中返回的列或列的值范围。

在使用 SQL 或 Canvas 界面导入 Canvas 之前,您可以将多个 Snowflake 数据集联接到单个数据集中。您可以将数据集从 Snowflake 拖动到面板中,以便可以联接数据集,也可以在 SQL 中编辑联接,并将 SQL 转换为单个节点。您可以将其他节点联接到已转换的节点。然后,您可以将已联接的数据集合并到一个节点,并将节点联接到不同的 Snowflake 数据集。最后,您可以将所选数据导入 Canvas。

使用以下步骤将数据从 Snowflake 导入到 Ama SageMaker zon Canvas。

  1. 在 SageMaker Canvas 应用程序中,转到 “数据集” 页面。

  2. 选择 “导入数据”,然后从下拉菜单中选择 “表格”。

  3. 输入数据集的名称,然后选择创建

  4. 对于数据来源,打开下拉菜单并选择 Snowflake

  5. 选择添加连接

  6. 添加新的 Snowflake 连接对话框中,指定您的 Snowflake 凭证。对于身份验证方法,您可以选择基本 - 用户名密码ARNOAuth。OAuth 允许您在不提供密码的情况下进行身份验证,但需要额外的设置。有关为 Snowflake 设置 OAuth 凭证的更多信息,请参阅使用 OAuth 设置与数据来源的连接

  7. 选择添加连接

  8. 从显示连接名称的选项卡中,将要导入的 .csv 文件拖动到拖放表以导入窗格。

  9. 可选:将其他表拖到导入窗格中。您可以使用用户界面来联接表。要使联接更具体,请选择在 SQL 中编辑

  10. 可选:如果您使用 SQL 查询数据,则可以选择上下文通过指定以下内容的值来向连接添加上下文:

    • 数据仓库

    • 数据库

    • 架构

    向连接添加上下文可以更容易地指定未来的查询。

  11. 选择导入数据

下图显示了为 Snowflake 连接指定的字段的示例。

Canv as 中添加新的 Snowflake 连接对话框的屏幕截图。

下图显示了用于向连接添加上下文的页面。

画布中导入页面的屏幕截图,显示了 “上下文” 对话框。

下图显示了用于在 Snowflake 中联接数据集的页面。

Canvas 中导入页面的屏幕截图,显示正在连接的数据集。

下图显示了用于在 Snowflake 中编辑联接的 SQL 查询。

画布导入页面上编辑 S QL 编辑器中的 SQL 查询的屏幕截图。

在 Canvas 中使用 SaaS 连接器

注意

对于除 Snowflake 之外的 SaaS 平台,每个数据来源只能有一个连接。

管理员必须先进行身份验证并创建与数据来源的连接,然后您才能从 SaaS 平台导入数据。有关管理员如何创建与 SaaS 平台的连接的更多信息,请参阅亚马逊 AppFlow 用户指南中的管理亚马逊 AppFlow 连接

如果您是首次使用亚马逊 AppFlow 的管理员,请参阅亚马逊 AppFlow 用户指南中的入门

要从 SaaS 平台导入数据,您可以按照标准的导入表格数据过程进行操作,该过程向您展示了如何将表格数据集导入到 Canvas 中。