如何通過 Airbyte 將數據攝取到 Elasticsearch

作者:來自 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.pswp.cn/web/72326.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72326.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72326.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RBAC 模型的簡單實現

RBAC 模型基本介紹 RBAC(Role-Based Access Control,基于角色的訪問控制)是一種廣泛應用的權限管理模型。它的核心思想是通過角色來管理權限,而不是直接分配權限給用戶。用戶被賦予一個或多個角色,而每個角色擁有不同…

數據結構---堆棧和列

一、堆棧 1.棧堆:具有一定操作約束的線性表;(只在一端做插入刪除) 2.棧的順序存儲結構: 由一個一維數組和一個記錄棧頂元素位置的變量組成。定義方式如下: 3.入棧操作: 注意:&…

2023 年全國職業院校技能大賽(中職組)移動應用與開發賽項 賽題第十套

2023 年全國職業院校技能大賽(中職組)移動應用與開發賽項 賽題第十套) 移動應用與開發賽項競賽模塊 A:移動應用界面設計任務 1 環保中心界面設計(7.5 分)任務 2:首頁界面設計(7.5 分…

FPGA為何要盡量減少組合邏輯的使用

在FPGA設計中,組合邏輯的使用確實需要謹慎,尤其是要盡量減少它的復雜性。這并不是因為組合邏輯本身不好,而是因為它在實際應用中容易引發一系列問題,而這些問題往往與FPGA的設計哲學和硬件特性相沖突。讓我從幾個關鍵點來和你聊聊…

c語言筆記 字符串函數---strcmp,strncmp,strchr,strrchr

目錄 函數strcmp與strncmp 以下是錯誤的示范:兩個指針字符型的指針不能直接進行比較 函數strchr與函數strrchr 函數strchr與函數strrchr與strstr函數三者對比 背景:如果說我們要比較兩個字符串是否相等,使用strcmp或者strncmp函數。在c語言中…

合React寶寶體質的自定義節流hook

本文為開發開源項目的真實開發經歷,感興趣的可以來給我的項目點個star,謝謝啦~ 具體博文介紹: 開源|Documind協同文檔(接入deepseek-r1、支持實時聊天)Documind 🚀 一個支持實時聊天和接入 - 掘…

【RTSP】客戶端(五)H264 265處理邏輯

H264處理邏輯 整體邏輯分析 實現邏輯 解析 RTP 包頭:首先檢查 RTP 頭部的有效負載類型(payloadType)是否匹配處理擴展頭:如果 RTP 包包含擴展頭,跳過擴展頭部分,獲取有效負載處理分片數據:H264…

IDEA集成git,項目的克隆,遠程倉庫中文件的添加刪除

目錄 一、克隆項目 二、使用IDEA完成文件的上傳和刪除 1.配置git 2.上傳 3.刪除(通過git bash) 一、克隆項目 點擊克隆,復制url ,如下 打開你想要克隆到哪里,右擊,選擇 open Git Bash here 這一步之后…

神經網絡:定義與核心原理

神經網絡(Artificial Neural Network, ANN)是一種受生物神經系統啟發的計算模型,旨在通過模擬神經元之間的連接與信息傳遞機制,實現復雜的數據處理和模式識別功能。其本質是由大量簡單處理單元(神經元)構成…

將pdf或者word轉換成base64格式

廢話不多說直接上代碼: function fileToBase64(file) {return new Promise((resolve, reject) > {const reader new FileReader();reader.readAsDataURL(file);reader.onload function (event) {const base64Data event.target.result.split(,)[1];resolve(b…

Spring @Bean注解使用場景二

bean:最近在寫一篇讓Successfactors顧問都能搞明白的sso的邏輯的文章,所以一致在研究IAS的saml2.0的協議,希望用代碼去解釋SP、idp的一些概念,讓顧問了解SSO與saml的關系,在github找代碼的時候發現一些代碼的調用關系很難理解&…

ubuntu22.04 關于掛在設備為nfts文件格式無法創建軟連接的問題

最近遇到情況,解壓工程報錯,無法創建軟連接 但是盤內還有130G空間,明顯不是空間問題,查找之后發現是移動硬盤的文件格式是NTFS,在ubuntu上不好兼容,于是報錯。 開貼記錄解決方案。 1.確定文件格式 使用命…

docker后臺運行,便于后期用命令行進入它的終端

在 docker compose up --build -d 命令中,?**-d?(或 --detach)參數的作用是讓容器以后臺模式(detached mode)?**運行。以下是詳細解釋: ?**-d 參數的作用** ?后臺運行容器: 默認情況下&a…

網頁制作14-Javascipt時間特效の顯示動態日期

<!doctype html> <html> <head> <meta charset"utf-8"> <title>動態日期</title> </head><script>var today new Date();//獲取時間var ytoday.getFullYear();//截取年var mtoday.getMonth();//截取月份,返回0~11v…

【BP神經網絡】實戰

1.參考Python實戰&#xff1a;BP神經網絡_bp神經網絡實戰python-CSDN博客 2.實踐 &#xff08;1&#xff09;運行環境 anocanda Powershell Prompt&#xff08;anocanda3&#xff09; &#xff08;2&#xff09;創建虛擬環境&#xff0c;解決安裝包的版本問題 *打開終端&a…

深度學習多模態人臉情緒識別:從理論到實踐

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站。https://www.captainbed.cn/north 文章目錄 1. 引言2. 技術框架與流程圖3. 核心算法解析3.1 視覺特征提取&#xff08;CNN&#xff09;3.2…

ssh通過22端口無法連接服務器問題處理

一&#xff0c;安全組開放22端口 root無法連接服務器&#xff0c;22端口也開放了&#xff0c;可能是防火墻開啟了攔截。 二&#xff0c;檢測防火墻狀態 查看防火墻狀態 sudo firewall-cmd --state 關閉防火墻 sudo systemctl stop firewalld 開啟防火墻 sudo systemctl sta…

element 的tab怎么動態根據參數值添加一個vue頁面

在使用 Element UI 的 Tabs 組件時&#xff0c;動態添加 Vue 組件或頁面可以通過操作 tabs 數組來實現。假設你要根據參數值來動態添加一個 Vue 頁面&#xff08;這里假設是一個 Vue 組件&#xff09;&#xff0c;你可以按照以下步驟操作&#xff1a; 首先&#xff0c;確保你已…

Docker封裝鏡像、分發、部署實踐:nginx

在實際生產工作中&#xff0c;通常是沒法直接訪問公網的&#xff0c;但是有經常需要使用Docker部署應用&#xff0c;本文將介紹使用Docker從拉取nginx、打包、分發到加載部署nginx的全流程&#xff01; 1 準備工作 1.1 安裝docker 請參考&#xff1a;Docker入門指南&#xff…