本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用 AWS Glue Connector for Elasticsearch
Elasticsearch 是一个流行的开源搜索和分析引擎,其用例包括日志分析、实时应用程序监控和点击流分析等。您可以在 AWS Glue Studio 中配置 AWS Glue Connector for Elasticsearch,从而将 OpenSearch 用作提取、转换、加载(ETL)任务的数据存储。此连接器在 AWS Marketplace
在本教程中,我们将展示如何以最少的步骤连接到您的 Amazon OpenSearch Service 节点。
主题
先决条件
要使用本教程,您必须具备以下内容:
-
对 AWS Glue Studio 的访问权限
-
对 AWS 云中访问 OpenSearch 集群的访问权限
-
(可选)对 AWS Secrets Manager 的访问权限。
步骤 1:(可选)为您的 OpenSearch 集群信息创建 AWS 密钥
要安全地存储和使用您的连接凭证,请将您的凭证保存在 AWS Secrets Manager 中。您创建的密钥将在本教程稍后的连接中使用。凭证键值对将作为普通连接选项注入 AWS Glue Connector for Elasticsearch。
有关创建密钥的更多信息,请参阅 使用、创建和管理密钥 AWS Secrets Manager 于 《AWS Secrets Manager 用户指南》。
创建 AWS 密钥
-
在服务介绍页面或密钥列表页面上,选择 Store a new secret (存储新密钥)。
-
在 Store a new secret(存储新密钥)页上,选择 Other type of secret(其他密钥类型)。此选项意味着您必须提供您的密钥的结构和详细信息。
-
为 OpenSearch 集群用户名添加 Key(密钥)和 Value(值)对。例如:
es.net.http.auth.user
:username
(用户名) -
选择 + Add row(+ 添加行),然后为密码输入另一个键/值对。例如:
es.net.http.auth.pass
:password
-
选择 Next(下一步)。
-
输入密钥名称。例如:my-es-secret。您可以选择性地添加描述。
记录本教程稍后使用的密钥名称,然后选择 Next(下一步)。
-
再次选择 Next(下一步),然后选择 Store(存储)创建密钥。
后续步骤
步骤 2:订阅连接器
AWS Marketplace
在 AWS Marketplace 中订阅 AWS Glue Connector for Elasticsearch
-
如果您尚未配置 AWS 账户使用 License Manager,请执行以下操作:
-
访问 https://console.aws.amazon.com/license-manager
,打开 AWS License Manager 控制台。 -
选择 Create customer managed license (创建客户托管式许可证)。
-
在 IAM permissions (one-time setup) (IAM 权限 (一次性设置)) 窗口中,选择 I grant AWS License Manager the required permissions (我为 Amazon License Manager 授予所需的权限),然后选择 Grant permissions (授予权限)。
如果未看到此窗口,则表示您已配置所需的权限。
-
请访问 https://console.aws.amazon.com/gluestudio/
打开 AWS Glue Studio 控制台。 -
在 AWS Glue Studio 控制台,展开菜单图标( ),然后在导航窗格中选择 Connectors (连接器)。
-
在 Connectors (连接器) 页面上,选择 Go to AWS Marketplace (转到 Amazon Web Services Marketplace)。
-
在 AWS Marketplace 的 Search AWS Glue Studio products(搜索产品)部分中,在搜索字段中输入 AWS Glue Connector for Elasticsearch,然后按 Enter 键。
-
选择连接器的名称,AWS Glue Connector for Elasticsearch。
-
在连接器的产品页面上,使用选项卡查看有关连接器的信息。准备好继续使用后,选择 Continue to Subscribe (继续订阅)。
-
查看软件的使用条款。单击 Accept Terms(接受条款)。
-
订阅过程完成后,您将看到一条通知:“Thank you for subscribing to this product! You can now configure your software.”(感谢您订阅此产品!现在您可以配置软件。) 横幅上方将是按钮 Continue to Configuration(继续配置)。选择继续配置。
-
在 Configure this software(配置此软件)页面上,选择“Fulfillment”(执行)选项。您可以选择 AWS Glue 1.0/2.0 或 AWS Glue 3.0。然后选择 Continue to Launch(继续启动)。
后续步骤
步骤 3:激活 AWS Glue Studio 并创建连接
在您选择 Continue to Launch (继续启动) 后,您可以在 AWS Marketplace 中看到 Launch this software (启动此软件) 页面。您在 AWS Glue Studio 中使用链接激活连接器后,创建连接。
要在 AWS Glue Studio 中部署连接器并创建连接
-
在 AWS Marketplace 控制台的 Launch this software (启动此软件) 页面上,选择 Usage Instructions (使用说明),然后选择在窗口中显示的链接。
您的浏览器将重新定向到 AWS Glue Studio 控制台 Create marketplace connection (创建 Marketplace 连接) 页面。
-
为连接输入名称。例如:my-es-connection。
-
在 Connection access (连接访问) 部分,为 Connection credential type (连接凭证类型) 选择 User name and password (用户名和密码)。
-
对于 AWS secret (Amazon 密钥),输入您的密钥名称。例如:my-es-secret。
-
在 Network options(网络选项)部分中,输入 VPC 信息,以连接到 OpenSearch 集群。
-
选择 Create connection and activate connector (创建连接并激活连接器)。
后续步骤
步骤 4:为您的 ETL 任务配置 IAM 角色
在创建 AWS Glue ETL 任务时,您可以指定 AWS Identity and Access Management(IAM)角色以供任务使用。角色必须授予对任务使用的所有资源的访问权限,包括 Amazon S3(任何源、目标、脚本、驱动程序文件和临时目录)以及 AWS Glue Data Catalog 对象。
AWS Glue ETL 任务所担任的 IAM 角色还必须具有对在上一部分创建的密钥的访问权限。预设情况下,亚马逊云科技托管式角色 AWSGlueServiceRole
无法访问该密钥。要设置密钥的访问控制,请参阅 AWS Secrets Manager 的身份验证和访问控制以及限制对特定密钥的访问。
要为您的 ETL 任务配置 IAM 角色
-
配置审核 ETL 任务所需的 IAM 权限中所述的权限。
-
配置如使用连接器所需的权限中所述的使用 AWS Glue Studio 连接器时所需的其他权限。
后续步骤
步骤 5:创建使用 OpenSearch 连接的任务
为您的 ETL 任务创建角色后,您可以在 AWS Glue Studio 中创建一个任务,改任务使用 Open Spark ElasticSearch 的连接和连接器。
如果您的任务在 Amazon Virtual Private Cloud(Amazon VPC)中运行,请确保 VPC 配置正确。有关更多信息,请参阅 为 ETL 任务配置 VPC。
要创建使用 Elasticsearch Spark Connector 的任务
-
在 AWS Glue Studio 中,选择 Connectors(连接器)。
-
在 Your connections (您的连接) 列表中,选定您刚才创建的连接并选择 Create job (创建任务)。
-
在可视任务编辑器中,选择数据源节点。在右侧 Data source properties - Connector (数据源属性 – 连接器) 选项卡上,配置连接器的其他信息。
-
选择 Add schema (添加架构),然后输入数据源中的数据集架构。连接不使用存储在数据目录中的表,这意味着 AWS Glue Studio 不了解数据架构。您必须手动提供此架构信息。有关如何使用架构编辑器的说明,请参阅编辑自定义转换节点的架构。
-
展开 Connection options (连接选项)。
-
选择 Add new option (添加新选项),然后输入尚未在 AWS 密钥中输入的连接器所需的信息:
-
es.nodes: https://<OpenSearch domain endpoint>
-
es.port: 443
-
path: test
-
es.nodes.wan.only.: true
有关这些连接选项的说明,请参阅:https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html
。 -
-
-
将目标节点添加至图表中。
您的数据目标可以是 Amazon S3,也可以使用 AWS Glue Data Catalog 或连接器的信息将数据写入其他位置。例如,您可以使用数据目录表将数据库写入 Amazon RDS,也可以将连接器用作数据目标来写入 AWS Glue 中不支持的数据存储。
如果为数据目标选择连接器,则您必须选择为该连接器创建的连接。此外,如果连接器提供程序需要,则您必须添加选项以向连接器提供其他信息。如果您使用包含 AWS 密钥信息的连接,则无需在连接选项中提供用户名和密码身份验证。
-
(可选)添加如使用AWS Glue托管转换转换数据中所述的其他数据源和一个或多个转换节点。
-
从步骤 3 开始,配置如修改任务属性中所述的任务属性,然后保存任务。
后续步骤
步骤 6:运行任务
保存任务后,您可以运行任务来执行 ETL 操作。
运行您为 AWS Glue Connector for Elasticsearch 创建的任务
-
使用 AWS Glue Studio 控制台,在可视编辑器页面上,选择 Run (运行)。
-
在成功横幅中,选择 Run Details (运行详细信息),也可以选择可视化编辑器的 Runs (运行) 选项卡查看有关任务运行的信息。