数据源和输出支持的连接
您可以为 DataBrew 配方作业连接到以下数据源,其中包括不是您要直接上传到 DataBrew 的文件的任何数据源。您正在使用的数据源可能称为数据库、数据仓库或具有其他名称。我们将所有数据提供程序均称为数据源或连接。
您可以使用以下任何一种作为数据源来创建数据集。
您还可以使用 Amazon S3、Amazon Glue Data Catalog 或通过 Amazon RDS 提供支持的 JDBC 数据库来输出 DataBrew 配方作业。Amazon AppFlow 和 Amazon Web Services Data Exchange 不是 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
您可以使用 Data Catalog 定义对存储在 Amazon Cloud 中的数据的引用。使用 Data Catalog,可以与以下服务中的各表建立连接:
-
Data Catalog Amazon S3
-
Data Catalog Amazon Redshift
Data Catalog Amazon RDS
-
Amazon Glue
DataBrew 还可以读取 Amazon S3 文件夹中的所有文件,这意味着您可以创建一个跨多个文件的数据集。要执行此操作,请使用以下形式指定 Amazon S3 URL:
s3://your-bucket-name/your-folder-name/。要与 DataBrew 一起使用,Amazon Glue Data Catalog 中定义的 Amazon S3 表类数据存储服务必须添加一个名为
classification的表属性,该属性将数据的格式标识为csv、json或parquet,并将typeOfData标识为file。如果在创建表时未添加表属性,则可以使用 Amazon Glue 控制台添加它。DataBrew 仅支持标准、低冗余、标准-IA 和 S3 单区-IA Amazon S3 存储类。DataBrew 会忽略具有其他存储类的文件。DataBrew 还会忽略空文件(包含 0 字节的文件)。有关 Amazon S3 存储类的更多信息,请参阅《Amazon S3 控制台用户指南》中的使用 Amazon S3 存储类。
如果创建了适当的资源策略,DataBrew 还可以从其他账户访问 Amazon Glue Data Catalog S3 表类数据存储服务。您可以在 Amazon Glue 控制台设置选项卡的数据目录下创建策略。以下是专门针对单个 Amazon Web Services 区域的示例策略。
警告
这是一个高度宽松的资源策略,可授予
*$ACCOUNT_TO*对*$ACCOUNT_FROM*的数据目录进行无限制访问的权限。在大多数情况下,建议您将资源策略锁定在特定的目录或表中。有关更多信息,请参阅《Amazon Glue 开发人员指南》中的用于访问控制的 Amazon Glue 资源策略。在某些情况下,您可能需要在 Amazon Glue DataBrew 的
*$ACCOUNT_TO*中对*$ACCOUNT_FROM*中指向也位于*$ACCOUNT_FROM*中的 S3 位置的 Amazon Glue Data Catalog S3 表创建项目或运行作业。在这种情况下,在*$ACCOUNT_TO*中创建项目和作业时使用的 IAM 角色必须有权列出和获取来自*$ACCOUNT_FROM*的该 S3 位置的对象。有关更多信息,请参阅《Amazon Glue 开发人员指南》中的授予跨账户访问权限。 -
-
使用 JDBC 驱动程序连接的数据
您可以通过使用支持的 JDBC 驱动程序连接到数据来创建数据集。有关更多信息,请参阅 将驱动程序与 Amazon Glue DataBrew 配合使用。
DataBrew 使用 Java 数据库连接(JDBC)正式支持以下数据源:
-
Microsoft SQL Server
-
MySQL
Oracle
-
PostgreSQL
-
Amazon Redshift
-
Snowflake Connector for Spark
这些数据源可以位于可从 DataBrew 连接到它们的任何位置。此列表仅包括我们测试过且因此可以支持的 JDBC 连接。
可以通过以下任一方式连接 Amazon Redshift 和 Snowflake Connector for Spark 数据源:
使用表名称。
使用跨多个表和操作的 SQL 查询。
在启动项目或作业运行时执行 SQL 查询。
要连接到要求使用未列出的 JDBC 驱动程序的数据,请确保该驱动程序与 JDK 8 兼容。要使用该驱动程序,请将其存储在 S3 的存储桶中,在那里您可以使用 DataBrew 的 IAM 角色对其进行访问。然后,将您的数据集指向驱动程序文件。有关更多信息,请参阅 将驱动程序与 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
使用 Amazon AppFlow,您可以从第三方软件即服务(SaaS)应用程序(例如 Salesforce、Zendesk、Slack 和 ServiceNow)将数据传输到 Amazon S3。然后,您可以使用这些数据创建 DataBrew 数据集。
在 Amazon AppFlow 中,您可以创建连接和流,以便在第三方应用程序和目标应用程序之间传输数据。将 Amazon AppFlow 与 DataBrew 配合使用时,请确保 Amazon AppFlow 的目标应用程序是 Amazon S3。Amazon S3 以外的 Amazon AppFlow 目标应用程序不会显示在 DataBrew 控制台中。有关从第三方应用程序传输数据以及创建 Amazon AppFlow 连接和流的更多信息,请参阅 Amazon AppFlow 文档。
当您在 DataBrew 的数据集选项卡中选择连接新数据集并单击 Amazon AppFlow 时,您会看到 Amazon AppFlow 中所有将 Amazon S3 配置为目标应用程序的流。要将流数据用于您的数据集,请选择该流。
在 DataBrew 控制台中选择 Amazon AppFlow 的创建流、管理流和查看详细信息,将打开 Amazon AppFlow 控制台,以便您可以执行这些任务。
从 Amazon AppFlow 创建数据集后,您可以在查看数据集详细信息或作业详细信息时运行流并查看最新的流运行详细信息。当您在 DataBrew 中运行流时,数据集将在 S3 中得到更新并且随时可供在 DataBrew 中使用。
当您在 DataBrew 控制台中选择 Amazon AppFlow 流来创建数据集时,可能会出现以下情况:
数据尚未聚合:如果流触发器为按需运行或采用完整数据传输的按计划运行,请确保在使用流创建 DataBrew 数据集之前先聚合该流的数据。通过聚合流,可将流中的所有记录合并到一个文件中。触发器类型为采用增量数据传输的按计划运行或按事件运行的流不需要聚合。要在 Amazon AppFlow 中聚合数据,请选择编辑流配置 > 目标详细信息 > 其他设置 > 数据传输首选项。
流尚未运行:如果流的运行状态为空,则表示存在以下情况之一:
如果运行流的触发器是按需运行,则该流尚未运行。
如果运行流的触发器是按事件运行,则触发事件尚未发生。
如果运行流的触发器是按计划运行,则计划的运行尚未发生。
在通过流创建数据集之前,请针对该流选择运行流。
有关更多信息,请参阅《Amazon AppFlow 用户指南》中的 Amazon AppFlow 流。
-
Amazon Web Services Data Exchange
您可以从 Amazon Web Services Data Exchange 中提供的数百个第三方数据源中进行选择。通过订阅这些数据源,您可以获得最新版本的数据。
要创建数据集,请指定您已订阅并有权使用的 Amazon Web Services Data Exchange 数据产品的名称。