作者:来自 Elastic Andre Luiz
Airbyte 是一个数据集成工具,可自动化并可扩展地将信息从各种来源传输到不同的目的地。它使你能够从 API、数据库和其他系统提取数据,并将其加载到 Elasticsearch 等平台,以实现高级搜索和高效分析。
本文将介绍如何配置 Airbyte 将数据摄取到 Elasticsearch,涵盖关键概念、先决条件和分步集成过程。
Airbyte 基本概念
Airbyte 在使用过程中涉及多个核心概念,主要包括:
- 来源(Sources): 定义要提取数据的来源。
- 目的地(Destinations): 定义数据的发送和存储位置。
- 连接(Connections): 配置数据来源与目的地之间的关系,包括同步频率。
Airbyte 与 Elasticsearch 的集成
在本次演示中,我们将进行一个集成操作,把存储在 S3 存储桶中的数据迁移到 Elasticsearch 索引。我们将展示如何在 Airbyte 中配置数据来源(S3)和目的地(Elasticsearch)。
前提条件
要完成本次演示,需要满足以下前提条件:
- 在 AWS 中创建一个存储桶,用于存放包含数据的 JSON 文件。
- 使用 Docker 在本地安装 Airbyte。
- 在 Elastic Cloud 中创建一个 Elasticsearch 集群,用于存储摄取的数据。
接下来,我们将详细介绍每个步骤。
安装 Airbyte
Airbyte 可以在本地使用 Docker 运行,也可以在云端运行(云端使用会产生费用)。本次演示将使用 Docker 运行本地版本。
安装过程可能需要几分钟。按照安装说明完成后,Airbyte 将可通过以下地址访问:http://localhost:8000
登录后,我们即可开始配置集成。
创建存储桶
在此步骤中,你需要一个 AWS 账户来创建 S3 存储桶。此外,必须设置正确的权限,通过创建策略和 IAM 用户来允许访问该存储桶。
在存储桶中,我们将上传包含不同日志记录的 JSON 文件,这些文件稍后将被迁移到 Elasticsearch。日志文件的内容如下:
json
1. {
2. "timestamp": "2025-02-15T14:00:12Z",
3. "level": "INFO",
4. "service": "data_pipeline",
5. "message": "Pipeline execution started",
6. "details": {
7. "pipeline_id": "abc123",
8. "source": "MySQL",
9. "destination": "Elasticsearch"
10. }
11. }
以下是加载到存储桶中的文件:
Elastic Cloud 配置
为了简化演示,我们将使用 Elastic Cloud。如果你还没有账户,可以在此创建免费试用账户:Elastic Cloud 注册。
在 Elastic Cloud 配置部署后,你需要获取以下信息:
- Elasticsearch 服务器的 URL。
- 访问 Elasticsearch 的用户。
要获取 URL,请前往 Deployments > My deployment ,在应用程序中找到 Elasticsearch ,然后点击 "Copy endpoint" 复制端点。
要创建用户,请按照以下步骤操作:
- 访问 Kibana > Stack Management > Users。
- 创建一个具有 superuser 角色的新用户。
- 填写相关字段以完成用户创建。
现在我们已经完成所有设置,可以开始在 Airbyte 中配置连接器。
配置源连接器
在此步骤中,我们将为 S3 创建源连接器。为此,我们需要访问 Airbyte 界面并在菜单中选择 "Source" 选项。然后,搜索 S3 连接器。以下是配置连接器的详细步骤:
- 访问 Airbyte 并进入 "Sources" 菜单。
- 搜索并选择 S3 连接器。
- 配置以下参数:
- Source Name:定义数据源的名称。
- Delivery Method:选择 "Replicate Records"(推荐用于结构化数据)。
- Data Format:选择"JSON Format"。
- Stream Name:定义在 Elasticsearch 中的索引名称。
- Bucket Name:输入 AWS 中的存储桶名称。
- AWS Access Key 和 AWS Secret Key:输入访问凭证。
点击 Set up source 并等待验证完成。
配置目标连接器
在此步骤中,我们将配置目标连接器,即 Elasticsearch。为此,我们需要访问 Airbyte 菜单并选择 "Destination" 选项。然后,搜索 Elasticsearch 并点击搜索结果。接下来,按照以下步骤进行配置:
- 访问 Airbyte 并进入 "Destinations" 菜单。
- 搜索并选择 Elasticsearch 连接器。
- 配置以下参数:
- Authentication Method:选择 "Username/Password"。
- Username and Password:使用在 Kibana 中创建的凭证。
- Server Endpoint:粘贴从 Elastic Cloud 复制的 URL。
- 点击 Set up destination 并等待验证完成。
创建 Source 和 Destination 连接
一旦 Source 和 Destination 都已创建,我们就可以建立它们之间的连接,从而完成集成的创建。
以下是创建连接的步骤:
1)在菜单中,进入 Connections 并点击 Create First Connection。
2)在接下来的页面中,你可以选择一个已有的 Source 或创建一个新的 Source。由于我们已经创建了 Source,因此选择 Source S3。
3)下一步是选择 Destination。由于我们已经创建了 Elasticsearch 连接器,因此选择它以完成配置。
在下一步,需要定义 Sync Mode 以及使用的 schema。由于只创建了日志 schema,因此它将是唯一可供选择的选项。
4)接下来进入"配置连接"步骤。在这里,我们可以定义连接的名称以及集成执行的频率。频率可以通过以下三种方式进行配置:
- Cron :根据用户定义的 cron 表达式运行同步(例如
0 0 15 * * ?
,表示每天 15:00 运行); - Scheduled:按指定的时间间隔运行同步(例如每 24 小时、每 2 小时执行一次);
- Manual:手动运行同步。
在本次演示中,我们将选择 Manual 选项。
最后,点击 Set up Connection,即可建立数据源与目标之间的连接。
从 S3 同步数据到 Elasticsearch
返回到 Connections (连接)界面后,你可以看到已创建的连接。要执行同步过程,只需点击 Sync(同步)。此时,数据从 S3 迁移到 Elasticsearch 的过程将开始。
如果一切顺利,你会看到状态显示为 synced(已同步)。
在 Kibana 中可视化数据
现在,我们将进入 Kibana 以分析数据并检查其是否正确索引。在 Kibana 的 Discovery 部分,我们将创建一个名为 logs 的 Data View 。这样,我们就可以仅探索同步后创建的 logs 索引中的数据。
现在,我们可以可视化索引后的数据并对其进行分析。通过这种方式,我们验证了使用 Airbyte 进行的整个迁移流程,其中包含从存储桶加载数据并将其索引到 Elasticsearch。
结论
Airbyte 被证明是一种高效的数据集成工具,使我们能够以自动化方式连接多个数据源和目标。在本教程中,我们演示了如何将 S3 存储桶中的数据摄取到 Elasticsearch 索引中,并重点介绍了该过程的主要步骤。
这种方法有助于摄取大规模数据,并允许在 Elasticsearch 中进行分析,例如复杂搜索、聚合和数据可视化。
参考资料
Airbyte 快速入门 :
docs.airbyte.com/using-airby...
核心概念 :
docs.airbyte.com/using-airby...
想获得 Elastic 认证?了解下一期 Elasticsearch 工程师培训的时间!
Elasticsearch 拥有大量新功能,帮助你为特定用例构建最佳搜索解决方案。探索我们的示例笔记本以了解更多信息,开始免费云试用,或立即在本地尝试 Elastic!
原文:How to ingest data to Elasticsearch through Airbyte - Elasticsearch Labs