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

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

支持的数据源和输出连接

您可以连接到以下数据源以执行 DataBrew 配方作业。其中包括任何不是您要直接上传到的文件的数据源 DataBrew。您正在使用的数据源可能称为数据库、数据仓库或其他东西。我们将所有数据提供者称为数据源或连接。

您可以使用以下任何一种作为数据源来创建数据集。

您还可以使用 Amazon S3 或 Amazon RDS 支持的 JDBC 数据库来输出 DataBrew 配方任务。 Amazon Glue Data Catalog Amazon Web Services Data Exchange 不支持 Amazon AppFlow 和 Amazon 存储 DataBrew 食谱任务输出的数据存储。

  • Amazon S3

    您可以使用 S3 来存储和保护任意数量的数据。要创建数据集,请指定 DataBrew 可以访问数据文件的 S3 URL,例如:s3://your-bucket-name/inventory-data.csv

    DataBrew 还可以读取 S3 文件夹中的所有文件,这意味着您可以创建跨多个文件的数据集。为此,请使用以下形式指定 S3 URL:s3://your-bucket-name/your-folder-name/

    DataBrew 仅支持以下 Amazon S3 存储类别:标准、低冗余、标准 IA 和 S3 单区-IA。 DataBrew 忽略具有其他存储类别的文件。 DataBrew 还会忽略空文件(包含 0 字节的文件)。有关 Amazon S3 存储类的更多信息,请参阅 Amazon S3 控制台用户指南中的使用 Amazon S3 存储类别

  • Amazon Glue Data Catalog

    您可以使用数据目录来定义对存储在 Amazon 云中的数据的引用。使用数据目录,您可以建立与以下服务中各个表的连接:

    • 数据目录 Amazon S3

    • 数据目录 Amazon Redshift

    • 数据目录 Amazon RDS

    • Amazon Glue

    DataBrew 还可以读取 Amazon S3 文件夹中的所有文件,这意味着您可以创建跨多个文件的数据集。为此,请按以下格式指定 Amazon S3 网址:s3://your-bucket-name/your-folder-name/

    要与一起使用 DataBrew,中定义的 Amazon S3 表必须添加一个名为 a 的表属性classification,该属性将数据的格式标识为csvjsonparquet、或,以及 a typeOfData s file。 Amazon Glue Data Catalog如果在创建表时未添加表属性,则可以使用 Amazon Glue 控制台添加该属性。

    DataBrew 仅支持 Amazon S3 存储类别标准、低冗余、标准-IA 和 S3 单区-IA。 DataBrew 忽略具有其他存储类别的文件。 DataBrew 还会忽略空文件(包含 0 字节的文件)。有关 Amazon S3 存储类的更多信息,请参阅 Amazon S3 控制台用户指南中的使用 Amazon S3 存储类别

    DataBrew 如果创建了适当的资源策略,也可以从其他账户访问 Amazon Glue Data Catalog S3 表。您可以在 Amazon Glue 控制台的数据目录下方的设置选项卡上创建策略。以下是专门针对单个的策略示例 Amazon Web Services 区域。

    { "Version": "2012-10-17", "Statement": [ { "Effect" : "Allow", "Principal" : { "AWS" : "*$ACCOUNT_TO*" }, "Action" : "glue:*", "Resource" : "arn:aws:glue:*us-east-1*:*$ACCOUNT_FROM*:*" } ] }
    警告

    这是一项高度宽松的资源策略,可授予对数据目录的*$ACCOUNT_TO*无限制访问权限。*$ACCOUNT_FROM*在大多数情况下,我们建议您将资源策略锁定为特定的目录或表。有关更多信息,请参阅《Amazon Glue 开发人员指南》中的访问控制Amazon Glue 资源策略

    在某些情况下,您可能需要创建项目或在中运行任务,其中*$ACCOUNT_TO*包含指向也 Amazon Glue DataBrew 位于的 S3 位置*$ACCOUNT_FROM*的 Amazon Glue Data Catalog S3 表*$ACCOUNT_FROM*。在这种情况下,在中创建项目和任务时使用的 IAM 角色*$ACCOUNT_TO*必须有权列出和获取该 S3 位置中的对象*$ACCOUNT_FROM*。有关更多信息,请参阅Amazon Glue 开发者指南中的授予跨账户访问权限

  • 使用 JDBC 驱动程序连接数据

    您可以使用支持的 JDBC 驱动程序连接到数据,从而创建数据集。有关更多信息,请参阅将驱动程序与 Amazon Glue DataBrew

    DataBrew 使用 Java 数据库连接 (JDBC) 正式支持以下数据源:

    • Microsoft SQL Server

    • MySQL

    • Oracle

    • PostgreSQL

    • Amazon Redshift

    • 适用于 Spark 的雪花连接器

    数据源可以位于您可以从中连接到它们的任何地方 DataBrew。此列表仅包括我们测试过并因此可以支持的 JDBC 连接。

    适用于 Spark 数据源的 Amazon Redshift 和 Snowflake Connector 可以通过以下任一方式进行连接:

    • 带有表名。

    • 使用跨越多个表和操作的 SQL 查询。

    SQL 查询是在启动项目或作业运行时执行的。

    要连接到需要未列出的 JDBC 驱动程序的数据,请确保该驱动程序与 JDK 8 兼容。要使用该驱动程序,请将其存储在 S3 中的存储桶中,您可以在其中使用您的 IAM 角色对其进行访问 DataBrew。然后将您的数据集指向驱动程序文件。有关更多信息,请参阅将驱动程序与 Amazon Glue DataBrew

    基于 SQL 的数据集的查询示例:

    SELECT * FROM public.customer as c JOIN public.customer_address as ca on c.current_address=ca.current_address WHERE ca.address_id>0 AND ca.address_id<10001 ORDER BY ca.address_id

    自定义 SQL 的局限性

    如果您使用 JDBC 连接访问数据 DataBrew 集的数据,请记住以下几点:

    • Amazon Glue DataBrew 不会验证您在创建数据集时提供的自定义 SQL。SQL 查询将在您启动项目或作业运行时执行。 DataBrew 获取您提供的查询,并使用默认或提供的 JDBC 驱动程序将其传递给数据库引擎。

    • 使用无效查询创建的数据集在项目或作业中使用时将失败。在创建数据集之前验证您的查询。

    • 验证 SQL 功能仅适用于基于 Amazon Redshift 的数据源。

    • 如果要在项目中使用数据集,请将 SQL 查询运行时间限制在三分钟以内,以避免项目加载期间出现超时。在创建项目之前,请检查查询运行时间。

  • Amazon AppFlow

    使用亚马逊 AppFlow,你可以将数据从第三方 S oftware-as-a 服务 (SaaS) 应用程序传输到亚马逊 S3,例如 Salesforce、Zendesk、Slack 和。 ServiceNow然后,您可以使用这些数据来创建 DataBrew 数据集。

    在 Amazon 中 AppFlow,您可以创建连接和流程,以便在您的第三方应用程序和目标应用程序之间传输数据。使用亚马逊时 AppFlow DataBrew,请确保亚马逊的 AppFlow 目标应用程序是 Amazon S3。除了 Amazon S3 之外的亚马逊 AppFlow 目标应用程序不会出现在 DataBrew 控制台中。有关从第三方应用程序传输数据以及创建 Amazon AppFlow 连接和流程的更多信息,请参阅亚马逊 AppFlow 文档

    当您在的 “数据集” 选项卡中选择 “连接新数据集” DataBrew 并单击 Amazon 时 AppFlow,您将看到亚马逊 AppFlow 中所有配置为 Amazon S3 作为目标应用程序的流程。要将流程的数据用于您的数据集,请选择该流程。

    AppFlow 在 DataBrew 控制台中选择 “创建流程”、“管理流程” 和 “查看亚马逊详情” 将打开 Amazon AppFlow 控制台,以便您可以执行这些任务。

    从 Amazon 创建数据集后 AppFlow,您可以在查看数据集详细信息或任务详细信息时运行流程并查看最新的流程运行详情。当您在中运行流程时 DataBrew,数据集将在 S3 中更新并准备好在中使用 DataBrew。

    当您在 DataBrew 控制台中选择 Amazon AppFlow 流程来创建数据集时,可能会出现以下情况:

    • 数据尚未汇总-如果流量触发器为按需运行或按计划运行且具有完整数据传输,请务必在使用流程创建数据 DataBrew 集之前汇总该流程的数据。聚合流程会将流程中的所有记录合并到一个文件中。触发器类型为 “通过增量数据传输按计划运行” 或 “在事件上运行” 的流程不需要聚合。要在 Amazon 中聚合数据 AppFlow,请选择编辑流程配置 > 目标详情 > 其他设置 > 数据传输首选项

    • 流程尚未运行-如果流程的运行状态为空,则表示以下情况之一:

      • 如果运行流程的触发器是 “按需运行”,则该流程尚未运行。

      • 如果运行流程的触发器是 Run on ev ent,则触发事件尚未发生。

      • 如果运行流程的触发器是计划运行,则尚未进行计划运行。

      在创建包含流程的数据集之前,请为该流程选择运行流程。

      有关更多信息,请参阅《亚马逊 AppFlow 用户指南》中的亚马逊 AppFlow 流程

  • Amazon Web Services Data Exchange

    您可以从中提供的数百种第三方数据源中进行选择 Amazon Web Services Data Exchange。通过订阅这些数据源,您可以获得最大 up-to-date 版本的数据。

    要创建数据集,您需要指定您已订阅并有权使用的 Amazon Web Services Data Exchange 数据产品的名称。