本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
支持的数据源和输出连接
您可以连接到以下数据源: DataBrew 配方工作。其中包括任何不是直接上传到 DatabTreW 的文件的数据来源。您使用的数据源可能被称为数据库、数据仓库或其他东西。我们将所有数据提供商称为数据源或连接。
您可以使用以下任一内容创建数据集作为数据源。
您也可以使用 Amazon S3Amazon Glue Data Catalog,或者通过 Amazon RDS 支持的 JDBC 数据库,用于 DataBrew 配方工作。亚马逊 AppFlow 和Amazon Web Services Data Exchange输出不支持的数据存储 DataBrew 配方工作。
-
Amazon S3
您可以使用 S3 存储和保护任何数量的数据。要创建数据集,请指定 S3 URL,其中 DataBrew 可以访问数据文件,例如:
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 URL:
s3://your-bucket-name/your-folder-name/
要与 DatabreW 一 Amazon S3 使用,在Amazon Glue Data Catalog必须添加有名为的表属性
classification
,它将数据的格式标识为csv
、json
,或者parquet
,以及typeOfData
如同file
. 如果在创建表时未添加表属性,则可以使用 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上的控制台设置选项卡下Data Catalog. 下面是专门针对单个策略的示例策略。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开发人员指南.在某些情况下,您可能需要创建项目或运行作业Amazon Glue DataBrew在
*$ACCOUNT_TO*
用一个Amazon Glue中的数据目录 S3 表*$ACCOUNT_FROM*
这指向也在中的 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 连接器:
使用表名称。
使用跨多个表和操作的 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,您可以将数据从 Salesforce、Zendesk、Slack 和 ServiceNow 等第三方软件即服务 (SaaS) 应用程序传输到 Amazon S3。然后,您可以使用数据创建 DataBrew 数据集。
在 Amazon AppFlow 中,您可以创建连接和流程,以便在第三方应用程序和目标应用程序之间传输数据。使用亚马逊时 AppFlow 使用 DataBreW,请确保 Amazon AppFlow 目标应用程序是 Amazon S3。亚马逊 AppFlow Amazon S3 以外的目标应用程序不会显示在 DataBrew 控制台。有关从第三方应用程序传输数据和创建亚马逊的更多信息 AppFlow 连接和流程,请参阅亚马逊 AppFlow 文档.
当你选择Connect 新数据集中的数据集选项卡 DataBrew 然后点击 Amazon AppFlow,你可以看到亚马逊中的所有流 AppFlow 将 Amazon S3 配置为目标应用程序。要将流的数据用于数据集,请选择该流程。
选择创建流、管理流, 和查看详细信息针对 Amazon AppFlow 中的 DataBrew 控制台将打开 Amazon AppFlow 控制台以便执行这些任务。
从 Amazon AppFlow 创建数据集后,您可以在查看数据集详细信息或任务详细信息时运行流程并查看最新的流程运行详细信息。当您在 DatabreW 中运行流程时,数据集将在 S3 中更新,并准备好在 DatabreW 中使用。
当您选择亚马逊时,可能会出现以下情况: AppFlow 流入 DataBrew 控制台以创建数据集:
数据尚未汇总-如果流量触发器是按需运行或者是按计划运行使用完整的数据传输,请务必先聚合流程的数据,然后再使用流程创建 DataBrew 数据集。聚合流程将流程中的所有记录合并到一个文件中。触发器类型的流按计划运行使用增量数据传输,或者在活动中运行不需要聚合。要在 Amazon AppFlow 中聚合数据,请选择编辑流配置 >目标详细信息 >其他设置 >数据传输首选项.
流程尚未运行-如果流程的运行状态为空,则表示以下内容之一:
如果运行流程的触发器是按需运行,该流程尚未运行。
如果运行流程的触发器是在活动中运行,触发事件尚未发生。
如果运行流程的触发器是按计划运行,尚未进行计划的运行。
在使用流程创建数据集之前,请选择运行流对于那个流程。
有关更多信息,请参阅 。亚马逊 AppFlow 流动在 Amazon 中 AppFlow 用户指南。
-
Amazon Web Services Data Exchange
您可以从中可用的数百个第三方数据源中进行选择Amazon Web Services Data Exchange. 通过订阅这些数据源,您可以获得最大收益 up-to-date 数据的版本。
要创建数据集,请指定Amazon Web Services Data Exchange您已订阅并有权使用的数据产品。