如何通过 Airbyte 将数据摄取到 Elasticsearch

news2025/3/19 16:27:29

作者:来自 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。日志文件的内容如下:

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

以下是加载到存储桶中的文件:

Elastic Cloud 配置

为了简化演示,我们将使用 Elastic Cloud。如果你还没有账户,可以在此创建免费试用账户:Elastic Cloud 注册。

在 Elastic Cloud 配置部署后,你需要获取以下信息:

  • Elasticsearch 服务器的 URL。
  • 访问 Elasticsearch 的用户。

要获取 URL,请前往 Deployments > My deployment,在应用程序中找到 Elasticsearch,然后点击 "Copy endpoint" 复制端点。

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

  1. 访问 Kibana > Stack Management > Users
  2. 创建一个具有 superuser 角色的新用户。
  3. 填写相关字段以完成用户创建。

现在我们已经完成所有设置,可以开始在 Airbyte 中配置连接器。

配置源连接器

在此步骤中,我们将为 S3 创建源连接器。为此,我们需要访问 Airbyte 界面并在菜单中选择 “Source” 选项。然后,搜索 S3 连接器。以下是配置连接器的详细步骤:

  1. 访问 Airbyte 并进入 “Sources” 菜单。
  2. 搜索并选择 S3 连接器。
  3. 配置以下参数:
    • Source Name:定义数据源的名称。
    • Delivery Method:选择 “Replicate Records”(推荐用于结构化数据)。
    • Data Format:选择“JSON Format”。
    • Stream Name:定义在 Elasticsearch 中的索引名称。
    • Bucket Name:输入 AWS 中的存储桶名称。
    • AWS Access KeyAWS Secret Key:输入访问凭证。

点击 Set up source 并等待验证完成。

配置目标连接器

在此步骤中,我们将配置目标连接器,即 Elasticsearch。为此,我们需要访问 Airbyte 菜单并选择 “Destination” 选项。然后,搜索 Elasticsearch 并点击搜索结果。接下来,按照以下步骤进行配置:

  1. 访问 Airbyte 并进入 “Destinations” 菜单。
  2. 搜索并选择 Elasticsearch 连接器。
  3. 配置以下参数:
    • Authentication Method:选择 “Username/Password”。
    • Username and Password:使用在 Kibana 中创建的凭证。
    • Server Endpoint:粘贴从 Elastic Cloud 复制的 URL。
  4. 点击 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 部分,我们将创建一个名为 logsData View。这样,我们就可以仅探索同步后创建的 logs 索引中的数据。

现在,我们可以可视化索引后的数据并对其进行分析。通过这种方式,我们验证了使用 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/

想获得 Elastic 认证?了解下一期 Elasticsearch 工程师培训的时间!

Elasticsearch 拥有大量新功能,帮助你为特定用例构建最佳搜索解决方案。探索我们的示例笔记本以了解更多信息,开始免费云试用,或立即在本地尝试 Elastic!

原文:How to ingest data to Elasticsearch through Airbyte - Elasticsearch Labs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2317889.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何用DeepSeek进行项目管理?AI重构项目全生命周期的实践指南

一、项目管理的核心工作范畴 现代项目管理包含六大核心模块,构成完整管理闭环: 1. 需求管理(20%工作量) 案例:某电商平台"双11"大促项目需整合23个部门的142项需求 关键动作:需求收集→优先级…

vue3 引入element-plus组件后,发现输入的时候没有提示,而且鼠标移到el-button显示unknown的简单解决方法

1、element-plus官方地址 一个 Vue 3 UI 框架 | Element Plus 2、安装 安装 | Element Plus 3、安装插件unplugin-vue-components、unplugin-auto-import并配制 快速开始 | Element Plus 4、输入关键词没有提示及ElButton:unknown的处理 1)装个扩展插件&#xf…

【Linux】浅谈环境变量和进程地址空间

一、环境变量 基本概念 环境变量(Environment Variables)是操作系统提供的一种机制,用于存储和传递配置信息、系统参数、用户偏好设置等。 环境变量的作用 配置程序行为: 程序可以通过环境变量获取配置信息,例如日…

如何使用 DeepEval 优化 Elasticsearch 中的 RAG 检索

作者:来自 Elastic Kritin Vongthongsri 学习如何使用 DeepEval 优化 RAG 流水线中的 Elasticsearch 检索器。 LLMs 容易产生幻觉、缺乏特定领域的专业知识,并受限于上下文窗口。检索增强生成(Retrieval-Augmented Generation - RAG&#xff…

行为模式---状态模式

概念 状态模式是一种行为模式,用于在内部状态改变的时候改变其行为。它的核心思想就是允许一个对象在其内部状态改变的时候改变它的行为。状态模式通过将对象的状态封装成独立的类,并将其行为委托给当前的状态对象,从而使得对象行为随着状态…

嵌入式裸机设计--MCU常用裸机架构有哪些?

为什么是裸机设计 792125321入群学习更高效! 在MCU(微控制器单元)裸机开发中,我们常见的架构设计主要围绕如何高效管理资源和任务调度。认识这些开发方式,对我们开发一个小型项目来说及有好处! 下面介绍…

【LInux进程六】命令行参数和环境变量

【LInux进程六】命令行参数和环境变量 1.main函数的两个参数2.利用main函数实现一个简单的计算器3.环境变量之一:PATH4.修改PATH5.在命令行解释器bash中查看所有环境变量6.用自己写的程序查看环境变量7.main函数的第三个参数8.本地的环境变量和环境变量9.环境变量具…

激光slam学习笔记10---ubuntu2004部署运行fastlivo2踩坑记录

背景:mars实验室又发福利啦!跑跑效果,验了那句,mars出品,必属精品!本人pc环境ubuntu20.04,基本流程按照readme走就行,sophus和vikit安装有些注意地方。本文做了一些部署踩坑记录&…

织梦DedeCMS优化文章模版里的“顶一下”与“踩一下”样式

测试的版本5.7.1UTF-8 一、插入<head>Js代码 将下面代码插入到文章模版里的<head>标签里 <script language"javascript" type"text/javascript" src"{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script> <…

IDEA+Docker插件一键部署SpringBoot项目到远程服务器

文章目录 1. 服务端1.1 安装Docker1.2 Docker放开远程连接1.3 重启Docker1.4 开放端口1.4.1 云端1.4.2 服务器内部防火墙指令 2.IntelliJ IDEA2.1 安装IDEA2.2 安装Docker插件2.3 SSH Configurations2.4 Docker选择对应的SSH2.5 Dockerfile2.5.1 Dockerfile2.5.2 Dockerfile Ed…

C++基础 [五] - String的模拟实现

目录 前言 string类的模拟实现 成员函数的实现 构造函数 拷贝构造函数 赋值运算符重载 析构函数 元素访问的实现 operator[ ] Iterator - 迭代器 容量大小的实现 size capacity reserve ​编辑resize 内容修改的实现 push_back append operator(char ch) …

AIAgent有哪些不错的开源平台

AIAgent领域有许多优秀的开源平台和框架&#xff0c;以下是一些值得推荐的开源平台&#xff1a; AutoGPT AutoGPT 是一个基于 OpenAI 的 GPT-4 和 GPT-3.5 大型语言模型的开源框架&#xff0c;能够根据用户给定的目标自动生成所需提示&#xff0c;并利用多种工具 API 执行多步骤…

Python刷题:流程控制(上)

今天刷的是PythonTip的Python 入门挑战中的题&#xff0c;整体难度不高&#xff0c;适合小白练手以及巩固知识点。下面会进行详细讲解。 每日一句 每一个拼命努力的人&#xff0c;都像是独自穿越黑暗森林的行者&#xff0c; 没有并肩的身影&#xff0c;唯有孤独如影随形&…

vulhub/Billu_b0x靶机----练习攻略

1.Billu_b0x靶场下载链接&#xff1a; https://download.vulnhub.com/billu/Billu_b0x.zip 2.下载后&#xff0c;解压出ova文件&#xff0c;直接拖至VMware中&#xff0c;重命名和选择存储位置&#xff0c;点击导入&#xff0c;报错点击重试即可。修改网卡为NAT模式。 打开靶…

【YOLOv8】YOLOv8改进系列(8)----替换主干网络之Swin Transformer

主页&#xff1a;HABUO&#x1f341;主页&#xff1a;HABUO &#x1f341;YOLOv8入门改进专栏&#x1f341; &#x1f341;如果再也不能见到你&#xff0c;祝你早安&#xff0c;午安&#xff0c;晚安&#x1f341; 【YOLOv8改进系列】&#xff1a; 【YOLOv8】YOLOv8结构解读…

Qwen2-Audio:通义千问音频大模型技术解读

引言:从llm到mlm(audio) 大型语言模型(LLM)的发展日新月异,它们在文本理解、生成、推理等方面展现出惊人的能力。然而,交互模态不仅仅依赖于文字,语音、语调、环境音等听觉信息同样承载着丰富的内容。阿里巴巴通义千问团队,推出了 Qwen-Audio 系列模型,这里我们一起…

解决Java多张图合成JPG时出现红色前景及多列自适应适配

目录 前言 一、追本溯源 1、回到最开始 2、合成JPG的异常 二、解决问题 1、关于ImageType 2、TYPE_INT_RGB和TYPE_INT_ARGB 3、问题修复 4、列数自适应的问题 三、总结 前言 在当今数字化信息飞速发展的时代&#xff0c;图像处理技术在各个领域都占据着举足轻重的地位…

SpringBoot实现发邮件功能+邮件内容带模版

发送简单邮件模版邮件 1.pom引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.5.13</version></dependency><dependency><groupId&…

npm 报错 unable to resolve dependency tree

如下图&#xff1a; 解决&#xff1a;npm install --legacy-peer-deps 其实提示上有&#xff1a;npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force, or --legacy-peer-deps

【蓝桥杯每日一题】3.17

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x 他们说内存泄漏是bug&#xff0c;我说这是系统在逼我进化成SSR级程序员 OK来吧&#xff0c;不多废话&#xff0c;今天来点有难度的&#xff1a;二进制枚举 二进制枚举&#xff0c;就是…