博客

如何通过 Airbyte 将数据导入 Elasticsearch

使用 Airbyte 将数据导入 Elasticsearch。我们将介绍前提条件、Airbyte 配置和逐步集成。

Check out the different ways to ingest data into Elasticsearch and dive into practical examples to try something new.

Elasticsearch is packed with new features to help you build the best search solutions for your use case. Start a free cloud trial or try Elastic on your local machine now.

Airbyte 是一款数据集成工具,可让您以自动化和可扩展的方式将信息从不同来源转移到不同目的地。它使您能够从应用程序接口、数据库和其他系统中提取数据,并将其加载到 Elasticsearch 等平台中,从而提供高级搜索和高效分析。

在本文中,我们将介绍如何配置 Airbyte 以将数据摄取到 Elasticsearch,包括关键概念、前提条件和逐步集成。

Airbyte 基本概念

Airbyte 的使用有几个基本概念。下面,我们将重点介绍其中的主要内容:

  • 来源:定义提取数据的来源。

  • 目的地:定义数据的发送和存储位置。

  • 连接:配置源和目标之间的关系,包括同步频率。

Airbyte 与 Elasticsearch 的集成

在本演示中,我们将执行一个集成,将存储在 S3 存储桶中的数据迁移到 Elasticsearch 索引中。我们将展示如何在 Airbyte 中配置源(S3)和目标(Elasticsearch)。

准备工作

要观看这一演示,必须满足以下前提条件:

  1. 在 AWS 中创建一个存储桶,用于存储包含数据的 JSON 文件。

  2. 使用 Docker在本地安装 Airbyte

  3. 在 Elastic Cloud 中创建一个 Elasticsearch 集群来存储输入的数据。

下面,我们将详细介绍每个步骤。

安装 Airbyte

Airbyte 可以使用 Docker 在本地运行,也可以在云中运行,但使用时需要付费。在本演示中,我们将使用 Docker 本地版本。

安装可能需要几分钟时间。按照安装说明进行安装后,Airbyte 可在以下网址使用: http://localhost:8000。

登录后,我们就可以开始配置集成了。

创建水桶

在此步骤中,您需要一个 AWS 账户来创建一个 S3 存储桶。此外,还必须通过创建策略和 IAM 用户来设置正确的权限,以允许访问存储桶。

在该桶中,我们将上传包含不同日志记录的 JSON 文件,这些记录稍后将迁移到 Elasticsearch。文件日志的内容是这样的

{
   "timestamp": "2025-02-15T14:00:12Z",
   "level": "INFO",
   "service": "data_pipeline",
   "message": "Pipeline execution started",
   "details": {
       "pipeline_id": "abc123",
       "source": "MySQL",
       "destination": "Elasticsearch"
   }
}

以下是装入邮筒的文件:

弹性云配置

为了便于演示,我们将使用弹性云。如果您还没有账户,可在此处创建一个免费试用账户:弹性云注册

在弹性云中配置部署后,您需要获得

  • Elasticsearch 服务器的 URL。

  • 访问 Elasticsearch 的用户。

要获取 URL,请访问部署> 我的部署,在应用程序中找到 Elasticsearch 并点击 "复制端点"。

要创建用户,请按照以下步骤操作:

  1. 访问 Kibana> 堆栈管理> 用户。

  2. 创建一个具有超级用户角色的新用户。

  3. 填写字段以创建用户。

现在,我们已经设置好了一切,可以开始在 Airbyte 中配置连接器了。

配置信号源连接器

在这一步中,我们将为 S3 创建源连接器。为此,我们将进入 Airbyte 界面,在菜单中选择 "源 "选项。然后,我们将搜索 S3 连接器。下面,我们将详细介绍配置连接器所需的步骤:

  1. 访问 Airbyte 并进入 "来源 "菜单。

  2. 搜索并选择 S3 连接器。

  3. 配置以下参数:

    1. 源名称:定义数据源名称。

    2. 交付方法:选择复制记录(建议用于结构化数据)。

    3. 数据格式:选择 JSON 格式。

    4. 流名称:定义 Elasticsearch 中索引的名称。

    5. 存储桶名称:输入 AWS 中桶的名称。

    6. AWS 访问密钥和 AWS 密钥:输入访问凭证。

点击 "设置来源",等待验证。

配置目的地连接器

在这一步中,我们将配置目标连接器,即 Elasticsearch。为此,我们将进入菜单并选择 "目的地 "选项。然后,我们将搜索 Elasticsearch 并点击返回的结果。现在,我们将继续配置该连接:

  1. 进入 Airbyte 并转到 "目的地 "菜单。

  2. 搜索并选择 Elasticsearch 连接器。

  3. 配置以下参数:

    1. 验证方法:选择用户名/密码。

    2. 用户名和密码:使用在 Kibana 中创建的凭证。

    3. 服务器端点:粘贴从弹性云复制的 URL。

点击 "设置目的地",等待验证。

创建源连接和目的地连接

一旦创建了 "源 "和 "目标",就会创建它们之间的连接,从而完成集成的创建。

下面是创建连接的说明:

1.在菜单中,转到 "连接",点击 "创建第一个连接"。

2.在下一个屏幕中,您可以选择一个现有的源或创建一个新源。由于我们已经创建了一个源,因此将选择源 S3。

3.下一步是选择目的地。由于我们已经创建了 Elasticsearch 连接器,因此将选择它来完成配置。

下一步需要定义同步模式和使用的模式。由于只创建了日志模式,因此它将是唯一可供选择的选项。

4.我们将进入配置连接步骤。在这里,我们可以定义连接名称和集成执行频率。频率有三种配置方式:

  • Cron:根据用户定义的 cron 表达式(例如 0 0 15 * * ?,每天 15:00)运行同步;

  • 预定:在指定的时间间隔内运行同步(例如每 24 小时、每 2 小时);

  • 手动:手动: 手动运行同步。

在本演示中,我们将选择手动选项。

最后,点击 "设置连接",将建立源和目标之间的连接。

将数据从 S3 同步到 Elasticsearch

返回 "连接 "屏幕后,就可以看到已创建的连接。要执行程序,只需单击 "同步"。从那时起,数据将开始从 S3 迁移到 Elasticsearch。

如果一切顺利,您将获得同步状态。

在 Kibana 中可视化数据

现在,我们将进入 Kibana 分析数据,检查索引是否正确。在 Kibana 发现部分,我们将创建一个名为日志的数据视图。这样,我们就能查看同步后创建的日志索引中的数据。

现在,我们可以将索引数据可视化,并对其进行分析。这样,我们使用 Airbyte 验证了整个迁移流程,在 Airbyte 中加载了数据桶中的数据,并在 Elasticsearch 中编制了索引。

结论:Airbyte& Elasticsearch 集成

事实证明,Airbyte 是一种高效的数据集成工具,可以自动连接多个数据源和目的地。在本教程中,我们演示了如何将数据从 S3 存储桶摄取到 Elasticsearch 索引,并重点介绍了该过程的主要步骤。

这种方法有利于大量数据的摄取,并允许在 Elasticsearch 中进行分析,如复杂的搜索、聚合和数据可视化。

参考资料

快速启动 Airbyte:

https://docs.airbyte.com/using-airbyte/getting-started/oss-quickstart#part-1-install-abctl

核心概念:

https://docs.airbyte.com/using-airbyte/core-concepts/

常见问题

什么是 Airbyte?

Airbyte 是一款数据集成工具,可让您以自动化和可扩展的方式将信息从不同来源转移到不同目的地。

相关内容

当 TSDS 遇到 ILM:设计不会拒绝延迟数据的时序数据流

Bret Wortman

作为代码的弹性开放式网络爬虫

Gustavo Llermaly

如何显示 Elasticsearch 索引的字段

JD Armada

在 Logstash 中使用 Ruby 脚本

Dai Sugimori

显示 Elasticsearch 索引中的字段

Kofi Bartlett