开发自定义连接器
您可以编写从数据存储中读取数据或向数据存储写入数据的代码,并将数据格式化以用于 AWS Glue Studio 任务。您可以为 Spark、Athena 和 JDBC 数据存储创建连接器。GitHub 上发布的示例代码概述了您需要实现的基本接口。
您需要用于创建连接器代码的本地开发环境。您可以使用任意 IDE,甚至只使用命令行编辑器来编写连接器。开发环境示例包括:
-
具有本地 AWS Glue ETL Maven 库的本地 Scala 环境,正如《AWS Glue 开发人员指南》中的使用 Scala 本地开发所述。
-
IntelliJ IDE,可从 https://www.jetbrains.com/idea/
下载 IDE。
主题
开发 Spark 连接器
您可以使用 Spark DataSource API V2(Spark 2.4)创建 Spark 连接器来读取数据。
若要创建自定义 Spark 连接器
按照 AWS Glue GitHub 示例库中的步骤开发 Spark 连接器,该库位于 https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Spark/README.md
开发 Athena 连接器
您可以创建 Athena 连接器,供 AWS Glue 和 AWS Glue Studio 查询自定义数据源。
若要创建自定义 Athena 连接器
按照 AWS Glue GitHub 示例库中的步骤开发 Athena 连接器,该库位于 https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena
开发 JDBC 连接器
您可以创建使用 JDBC 访问数据存储的连接器。
创建自定义 JDBC 连接器
-
在本地开发环境中安装 AWS Glue Spark 运行时库。请参阅 AWS Glue GitHub 示例库中的说明,该库位于 https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/GlueSparkRuntime/README.md
。 -
实施负责从数据源检索数据的 JDBC 驱动程序。请参阅适用于 Java SE 8 的 Java 文档
。 在您的代码内创建入口点,AWS Glue Studio 将其用于查找您的连接器。Class name (类名称) 字段应该是 JDBC 驱动程序的完整路径。
-
借助连接器使用
GlueContext
API 读取数据。用户可以在 AWS Glue Studio 控制台中添加更多输入选项,配置与数据源的连接(如有必要)。有关演示如何使用自定义 JDBC 连接器读取和写入 JDBC 数据库的代码示例,请参阅自定义和 AWS Marketplace connectionType 值。
将自定义连接器与 AWS Glue Studio 结合使用的示例
有关使用自定义连接器的示例,您可以参考以下博客:
-
Apache Hudi:使用 AWS Glue 自定义连接器写入 Apache Hudi 表
-
Google BigQuery:使用 AWS Glue 自定义连接器,将数据从 Google BigQuery 迁移到 Amazon S3
-
Snowflake(JDBC):使用 Snowflake 和 AWS Glue 执行数据转换
-
SingleStore:使用 SingleStore 和 AWS Glue 构建快速 ETL
Salesforce:使用 CData JDBC 自定义连接器和 AWS Glue 将 Salesforce 数据提取到 Amazon S3
- -
MongoDB:使用 Amazon DocumentDB(与 MongoDB 兼容)和 MongoDB 构建 AWS Glue Spark ETL 任务
-
Amazon Relational Database Service(Amazon RDS):使用您自己的适用于 Amazon RDS 的 JDBC 驱动程序构建 AWS Glue Spark ETL 任务
为 AWS Marketplace 开发 AWS Glue 连接器
作为 AWS 合作伙伴,您可以创建自定义连接器并将其上载到 AWS Marketplace 以销售给 AWS Glue 客户。
开发连接器代码的过程与自定义连接器相同,但上载和验证连接器代码的过程更为详细。请参阅 GitHub 网站上为 AWS Marketplace 创建连接器