创建自定义连接器
您还可以构建自己的连接器,然后将连接器代码上载到 AWS Glue Studio。
自定义连接器通过 AWS Glue Spark 运行时 API 集成到 AWS Glue Studio。AWS Glue Spark 运行时允许您插入兼容 Spark、Athena 或 JDBC 接口的连接器。它允许您传递自定义连接器可用的连接选项。
您可以使用 AWS Glue 连接封装所有连接属性并为 ETL 任务提供连接名称。与数据目录连接集成,您可以在单个 Spark 应用程序中或跨不同应用程序的多个调用使用相同的连接属性。
您可以指定连接的其他选项。AWS Glue Studio 生成的任务脚本包含 Datasource
条目,该条目使用连接通过指定的连接选项插入连接器。例如:
Datasource = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"dbTable":"Account","connectionName":"my-custom-jdbc- connection"}, transformation_ctx = "DataSource0")
将自定义连接器添加到 AWS Glue Studio
-
为自定义连接器创建代码。有关更多信息,请参阅 开发自定义连接器。
-
连接器增加了对 AWS Glue 功能的支持。下面举例说明了这些功能,以及如何在 AWS Glue Studio 生成的任务脚本内使用这些功能。
-
数据类型映射 – 连接器可以在从基础数据存储中读取列的同时对列进行类型化。例如,解析记录并构造
DynamicFrame
时,dataTypeMapping
的{"INTEGER":"STRING"}
会将所有类型为Integer
的列转换为类型为String
的列。这有助于用户将列转换为他们选择的类型。DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"dataTypeMapping":{"INTEGER":"STRING"}", connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
-
分区以进行并行读取 – AWS Glue 允许对列上的数据进行分区,以便从数据存储中读取并行数据。您必须指定分区列、下分区界限、上分区界限和分区数。此功能使您能够利用数据并行性以及为 Spark 应用程序分配的多个 Spark 执行程序。
DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"upperBound":"200","numPartitions":"4", "partitionColumn":"id","lowerBound":"0","connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
-
使用 AWS Secrets Manager 存储凭证 – 数据目录连接还可以包含 AWS Secrets Manager 中所存储密钥的
secretId
。AWS 密钥可以安全地存储身份验证和凭证信息,并在运行时将其提供给 AWS Glue。或者,您还可以在 Spark 脚本中指定secretId
,如下所示:DataSource = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"connectionName":"test-connection-jdbc", "secretId"-> "my-secret-id"}, transformation_ctx = "DataSource0")
-
使用行谓词和列投影筛选源数据 – AWS Glue Spark 运行时还允许用户向下推送 SQL 查询,以使用行谓词和列投影在源处筛选数据。这样一来,ETL 任务能够更快地从支持推送的数据存储加载筛选的数据。向下推送到 JDBC 数据源的 SQL 查询示例如下:
SELECT id, name, department FROM department WHERE id < 200.
DataSource = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"query":"SELECT id, name, department FROM department WHERE id < 200","connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
-
任务书签 – AWS Glue 支持从 JDBC 源增量加载数据。AWS Glue 从数据存储中跟踪上次处理的记录,并在后续 ETL 任务运行中处理新的数据记录。任务书签使用主键作为书签键的默认列,前提是此列按顺序增加或减少。有关任务书签的更多信息,请参阅《AWS Glue 开发人员指南》中的任务书签。
DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"jobBookmarkKeys":["empno"], "jobBookmarkKeysSortOrder" :"asc", "connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
-
-
将自定义连接器打包为 JAR 文件,然后将文件上载到 Amazon S3。
-
测试您的自定义连接器。有关更多信息,请参阅 Glue 自定义连接器:本地验证测试指南
处 GitHub 上的说明。 -
在 AWS Glue Studio 控制台中,在导航窗格中选择 Connectors (连接器)。
-
在 Connectors (连接器) 页面上,选择 Create custom connector (创建自定义连接器)。
-
在 Create custom connector (创建自定义连接器) 页面上,输入以下信息:
-
指向 Amazon S3 中自定义代码 JAR 文件位置的路径。
-
AWS Glue Studio 将使用的连接器的名称。
-
您的连接器类型,可以是 JDBC、Spark 或者 Athena。
-
自定义代码中入口点的名称,AWS Glue Studio 将调用以使用连接器。
-
对于 JDBC 连接器,此字段应该是 JDBC 驱动程序的类名称。
-
对于 Spark 连接器,此字段应该是完全限定的数据源类名称或其别名,您可以使用
format
运算符。
-
-
(仅限 JDBC)JDBC 连接用于数据存储的基本 URL。
-
(可选)自定义连接器的描述。
-
-
选择 Create connector (创建连接器)。
-
在 Connectors (连接器) 页面中,创建使用此连接器的连接,如为连接器创建连接中所示。
将连接器添加到 AWS Glue Studio
连接器是一段代码,便于您在数据存储和 AWS Glue 之间通信。您可以订阅 AWS Marketplace 中提供的连接器,或者您还可以创建自己的自定义连接器。
订阅 AWS Marketplace 连接器
AWS Glue Studio 助力轻松地从 AWS Marketplace 添加连接器。
将连接器从 AWS Marketplace 添加到 AWS Glue Studio
-
在 AWS Glue Studio 控制台中,在导航窗格中选择 Connectors (连接器)。
-
在 Connectors (连接器) 页面上,选择 Go to AWS Marketplace (转到 Amazon Web Services Marketplace)。
-
在 AWS Marketplace 中的 Featured products (特色产品) 中,选择要使用的连接器。您可以选择其中一个特色连接器,也可以进行搜索。您可以搜索连接器的名称或类型,也可以使用选项来优化搜索结果。
如果您要使用其中一个特色连接器,请选择 View product (查看产品)。如果通过搜索来查找连接器,请选择连接器的名称。
-
在连接器的产品页面上,使用选项卡查看有关连接器的信息。如果您决定购买此连接器,请选择 Continue to Subscribe (继续订阅)。
-
提供付款信息,然后选择 Continue to Configure (继续配置)。
-
在 Configure this software (配置此软件) 页面上,选择部署方法和要使用的连接器版本。然后选择 Continue to Launch (继续启动) 以继续。
-
在 Launch this software (启动此软件) 页面上,您可以查看连接器提供程序提供的 Usage Instructions (使用说明)。准备就绪后,选择 Activate connection in AWS Glue Studio (激活 AWS Glue Studio Glue Studio 中的连接)。
一小段时间后,控制台将显示 AWS Glue Studio 中的 Create marketplace connection (创建 Marketplace 连接) 页面。
-
创建使用此连接器的连接,如为连接器创建连接中所述。
或者,您可以选择 Activate connector only (仅激活连接器) 以跳过此时创建连接。您稍后必须创建连接才能使用该连接器。