连接到数据来源 - 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:如果您将 AmazonSageMakerFullAccess 策略和 AmazonSageMakerCanvasFullAccess 策略附加到用户的执行角色,那么您将能够使用 Amazon Athena 查询 Amazon Glue Data Catalog。如果您是 Athena 工作组的成员,请确保 Canvas 用户有权对数据运行 Athena 查询。有关更多信息,请参阅《Amazon Athena 用户指南》中的使用工作组运行查询

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

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

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

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

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

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

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

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

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

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

对于 Amazon Athena,只要您拥有 Amazon Athena 工作组的权限,就可以访问 Amazon Glue Data Catalog 中的数据库。

对于 Amazon RDS,如果您将 AmazonSageMakerCanvasFullAccess 策略附加到用户角色,那么您就能够将数据从 Amazon RDS 数据库导入到 Canvas 中。

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

连接到 Amazon Redshift 数据库

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

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

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

  2. 选择要导入的数据。

  3. 导入数据。

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

  • SQL 查询

  • 联接

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

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

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

使用以下过程从 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 移动和写入数据时应代入的角色。有关此角色的更多信息,请参阅《Amazon Redshift 管理指南》中的授权 Amazon Redshift 代表您访问其他 Amazon 服务

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

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

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

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

    • 数据仓库

    • 数据库

    • 架构

  10. 选择导入数据

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

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

下图显示了用于在 Amazon Redshift 中编辑联接的 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 导入 SageMaker Canvas。有关 Snowflake 的更多信息,请参阅 Snowflake 文档

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

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

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

  3. 导入数据。

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

  • SQL 查询

  • 联接

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

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

使用以下过程将数据从 Snowflake 导入 Amazon SageMaker Canvas。

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

  2. 选择导入

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

  4. 选择添加连接

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

  6. 选择添加连接

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

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

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

    • 数据仓库

    • 数据库

    • 架构

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

  10. 选择导入数据

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

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

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

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

在 Canvas 中使用 SaaS 连接器

注意

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

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

如果您是首次使用 Amazon AppFlow 的管理员,请参阅《Amazon AppFlow 用户指南》中的入门

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