從零開始構建Airbyte數據管道:PostgreSQL到BigQuery實戰指南

作為數據工程師,ETL(Extract, Transform,
Load)流程是日常工作的核心。然而,構建和維護數據管道往往耗時且復雜。幸運的是,開源工具Airbyte提供了一種更便捷的解決方案——它支持350+預構建連接器,允許通過無代碼方式快速構建數據管道。本文將帶你從零開始,使用Airbyte構建一個從PostgreSQL到BigQuery的EL(Extract
& Load)管道,并測試API數據源集成。

在這里插入圖片描述

1. 環境搭建:本地運行Airbyte

Airbyte支持本地或云端部署。為便于測試,我們選擇使用Docker在本地運行:

# 克隆Airbyte倉庫
git clone --depth=1 https://github.com/airbytehq/airbyte.git# 進入目錄并啟動
cd airbyte
./run-ab-platform.sh

啟動后,訪問 http://localhost:8000,默認用戶名和密碼均為 airbytepassword
在這里插入圖片描述

2. 核心概念解析

在構建管道前,需理解Airbyte的關鍵概念:

概念說明
Source數據源,如數據庫、API或文件。
Destination數據存儲目標,如數據倉庫或數據湖。
Connector連接組件,負責將數據從Source傳輸到Destination。
Connection自動化的數據管道,定義同步規則和調度。
Record單條數據記錄,如數據庫中的一行。
Stream數據流,如數據庫表或API端點。

3. 實戰:PostgreSQL → BigQuery 數據管道

3.1 配置Source(PostgreSQL)

  1. 在Airbyte UI中選擇 PostgreSQL 連接器。
  2. 輸入數據庫連接信息(主機、端口、用戶名、密碼、數據庫名)。
  3. 測試連接并保存。

3.2 配置Destination(BigQuery)

BigQuery的配置稍復雜,需提前準備:

  • Google Cloud Storage (GCS) Bucket:用于臨時存儲數據。
  • HMAC Key:為GCS Bucket生成訪問密鑰。
  • Service Account Key JSON:從Google Cloud IAM創建服務賬號并下載JSON密鑰。

在Airbyte中填寫BigQuery連接信息,包括:

  • 項目ID
  • 數據集位置
  • GCS Bucket名稱
  • 服務賬號JSON密鑰

3.3 創建Connection并同步數據

  1. 在Airbyte UI中選擇已配置的PostgreSQL(Source)和BigQuery(Destination)。
  2. 選擇需要同步的表(Stream),設置同步模式:
    • Full Refresh Overwrite:全量覆蓋(適合初始加載)。
    • Incremental Append:增量追加(適合定期更新)。
  3. 點擊 Sync Now 啟動同步。

驗證結果
同步完成后,檢查BigQuery中的目標表,確認數據完整性和元數據字段(如_airbyte_ab_id_airbyte_emitted_at)。
在這里插入圖片描述

4. 測試API數據源:OpenWeatherMap

Airbyte也支持API數據源集成。以OpenWeatherMap為例:

4.1 獲取API Key

  1. 注冊OpenWeatherMap賬號,選擇 One Call API 計劃(免費版提供1000次/天調用)。
  2. 獲取API Key。

4.2 在Airbyte中配置API Connector

  1. 選擇 OpenWeatherMap 連接器。
  2. 輸入API Key和目標城市(如經緯度 40.7128,-74.0060 對應紐約)。
  3. 設置同步頻率(如每天一次)。

結果
同步后,BigQuery中將生成一張包含天氣數據的表,字段如溫度、濕度、天氣描述等。

局限性
Airbyte的API連接器僅支持預定義參數,復雜API(如需自定義Headers或分頁)可能需要額外開發。

5. 進階優化:結合dbt/sqlmesh進行數據轉換

Airbyte專注于EL(Extract & Load),而數據轉換(Transform)推薦使用 dbt(Data Build Tool)。典型工作流:

  1. Airbyte將原始數據加載到BigQuery。
  2. dbt對數據進行清洗、聚合和建模,生成業務就緒的表。
  3. 最終數據供BI工具(如Tableau)或機器學習模型使用。

6. 總結與展望

Airbyte的優勢

  • 開箱即用:350+預構建連接器,無需重復造輪子。
  • 無代碼/低代碼:通過UI快速配置管道,降低技術門檻。
  • 開源免費:適合預算有限的個人或團隊。

改進方向

  • 復雜API支持:增強對動態參數和分頁的支持。
  • 云原生部署:優化Kubernetes集成,提升大規模場景性能。

下一步行動

  • 嘗試構建其他數據源(如MySQL、Salesforce)到數據倉庫的管道。
  • 學習dbt/sqlmesh,實現ELT完整工作流。

通過Airbyte,你可以快速實現數據集成,將更多精力投入數據分析和業務價值挖掘! 🚀

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912932.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912932.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912932.shtml

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

相關文章

JavaScript的初步學習

目錄 JavaScript簡介 主要特點 主要用途 JavaScript的基本特性 JavaScript的引入方式 1. 內聯方式 (Inline JavaScript) 2. 內部方式 (Internal JavaScript / Embedded JavaScript) 3. 外部方式 (External JavaScript) JavaScript的語法介紹 1.書寫語法 2.輸出語句 3.…

洛谷P1379 八數碼難題【A-star】

P1379 八數碼難題 八數碼難題首先要進行有解性判定,避免無解情況下盲目搜索浪費時間。 有解性判定 P10454 奇數碼問題 題意簡述 在一個 n n n \times n nn 的網格中進行,其中 n n n 為奇數, 1 1 1 個空格和 [ 1 , n 2 ? 1 ] [1,n^2…

MySQL Buffer Pool 深度解析:從架構設計到性能優化(附詳細結構圖解)

在 MySQL 數據庫的世界里,有一個決定性能上限的"神秘倉庫"——Buffer Pool。它就像超市的貨架,把最常用的商品(數據)放在最方便拿取的地方,避免每次都要去倉庫(磁盤)取貨。今天我們就…

使用numpy的快速傅里葉變換的一些問題

離散傅里葉變換(DFT)的頻率(或波數)確實主要由采樣點數和物理步長決定。 最高波數和最小波長的乘積是1。單位長度內波的周期數。 (注意角波數是 k 2 π λ k \frac{2 \pi}{\lambda} kλ2π?) 使用numpy…

DVWA靶場通關筆記-CSRF(High級別)

目錄 一、CSRF Token 二、代碼審計(High級別) 1、滲透準備 2、源碼分析 三、滲透實戰 1、滲透準備 2、修改URL重放失敗 3、burpsuite嘗試重放失敗 4、安裝CSRF Token Tracker 5、安裝logger插件 6、配置CSRF Token Tracker 7、bp再次重放報文…

Redis實戰:數據安全與性能保障

數據安全 持久化策略 RDB持久化:通過創建快照將內存中的數據寫入到磁盤上的RDB文件中。可以在配置文件中設置save參數來指定在多少秒內有多少次寫操作時觸發快照保存。例如,save 900 1表示900秒內至少有1次寫操作時保存快照。 AOF持久化:將每…

人臉活體識別3:C/C++實現實時眨眼、張嘴、點頭、搖頭檢測

> 當AI能識破照片與真人的區別,我們才真正跨入生物識別安全時代 --- ### 一、活體檢測:數字世界的守門人 **傳統人臉識別的致命缺陷**: - 高清照片欺騙成功率 > 85% - 視頻回放攻擊成本 < $50 - 3D面具破解率高達72% **我們的解決方案**: ```mermaid graph …

【Linux】AlmaLinux 無法使用root用戶登錄cockpit控制臺問題解決

在虛擬機安裝AlmaLinux 9.6&#xff0c;安裝過程中需要允許使用root用戶和SSH協議登錄服務器。但是&#xff0c;在使用root用戶登錄cockpit管理后臺時&#xff0c;系統提示“權限被拒絕”。 經過查詢資料&#xff0c;可以通過下面的方法來解決此問題。 編輯 /etc/cockpit/disa…

【Java面試】講講HashMap的常用方法,以及底層實現?

1. 底層數據結構 數組鏈表紅黑樹&#xff08;JDK 1.8&#xff09;&#xff1a; 數組&#xff08;Node[] table&#xff09;存儲桶&#xff08;bucket&#xff09;&#xff0c;每個桶是鏈表或紅黑樹的頭節點。鏈表解決哈希沖突&#xff0c;當鏈表長度 ≥ 8 且數組容量 ≥ 64 時…

ToT:思維樹:借助大語言模型進行審慎的問題求解

摘要 語言模型正日益被部署于廣泛任務中的通用問題求解&#xff0c;但在推理階段仍受限于 token 級、從左到右的決策過程。這意味著在需要探索、戰略前瞻&#xff0c;或初始決策起關鍵作用的任務中&#xff0c;語言模型可能表現不佳。為克服這些挑戰&#xff0c;我們提出了一種…

Web3 + RWA 餐飲數字化解決方案白皮書(試點版)

一、背景&#xff1a;從“用戶”到“共創股東”&#xff0c;重構本地生活新邏輯 ? 項目愿景&#xff1a; “用一頓飯&#xff0c;鏈接一個社群&#xff1b;用一次消費&#xff0c;綁定一份權益”。 傳統商業以“交易”為中心&#xff0c;未來商業則以“關系 價值流轉”為核…

MCU的模擬輸入ADC引腳如何實現采樣時間與阻抗匹配

在MCU的模擬輸入ADC引腳中&#xff0c;實現采樣時間與阻抗匹配是關鍵的設計環節&#xff0c;直接影響采樣精度。以下是分步說明&#xff1a; 【】理解信號源阻抗與采樣時間的關系 ? 信號源阻抗&#xff08;Rs&#xff09;&#xff1a;外部信號源的輸出阻抗&#xff08;如傳感器…

等價矩陣 線性代數

所謂等價矩陣&#xff0c;就是說其秩相同的矩陣。 例題 A和B等價就是求A和B的秩&#xff0c;其實就是要求B的秩了&#xff0c;因為目標已經告訴你了A和B的秩是一樣的。那么怎么求B的秩呢&#xff1f;我們現在只有一種方法求其秩&#xff0c;就是通過把其經過初等變換之后符合標…

30.設計模式的優缺點

原文地址:設計模式的優缺點 更多內容請關注&#xff1a;智想天開 一、設計模式的優點 1. 提高代碼復用性與可維護性 復用性&#xff1a; 設計模式提供的是抽象的解決方案&#xff0c;可以在多個項目中重復應用&#xff0c;避免重復造輪子。例如&#xff0c;工廠模式封裝了對象…

Python 爬蟲實戰 | 國家醫保

一、國家醫保 1、目標網站 網址&#xff1a;https://fuwu.nhsa.gov.cn/nationalHallSt/#/search/drug-directory目標數據&#xff1a;獲取藥品信息 2、網站特點 服務端返回加密數據&#xff0c;客戶端發送請求攜帶的載荷也是加密的 3、定位解密入口 可以通過關鍵字encDa…

OpenCV CUDA模塊設備層----計算向量的平方根函數sqrt

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 OpenCV 的 CUDA 設備函數&#xff08;device function&#xff09;&#xff0c;用于在 GPU 上計算一個 uchar4 類型向量的平方根&#xff0c;并返…

鴻蒙應用開發:HTTP訪問網絡

一、HTTP概述 在許多場景下&#xff0c;我們的應用需要從服務端獲取數據&#xff0c;例如&#xff0c;天氣應用需要從天氣服務器獲取天氣數據。新聞應用需要從新聞服務器獲取最新的新聞咨詢&#xff0c;通過HTTP數據請求&#xff0c;我們可以將互聯網上的信息展示在應用中&…

【Elasticsearch】refresh與提交

在Elasticsearch中&#xff0c;Translog日志的提交確實涉及到與刷新&#xff08;Refresh&#xff09;時寫入Lucene段的數據進行合并&#xff0c;并最終寫入磁盤。以下是詳細的步驟和解釋&#xff1a; 一、Translog日志的提交過程 1. 刷新&#xff08;Refresh&#xff09;操作 …

服務器異常宕機或重啟導致 RabbitMQ 啟動失敗問題分析與解決方案

服務器異常宕機或重啟導致 RabbitMQ 啟動失敗問題分析與解決方案 一、深度故障診斷與解決方案1. 權限配置不當故障2. 端口占用故障3. 數據目錄殘留故障 二、故障類型對比與診斷矩陣三、完整恢復流程&#xff08;10步法&#xff09;四、風險規避與最佳實踐&#x1f6e1;? 數據保…

車載以太網都有什么協議?

目錄 一、物理層協議(Physical Layer)二、數據鏈路層協議(Data Link Layer)三、網絡層協議(Network Layer)四、傳輸層協議(Transport Layer)五、應用層協議(Application Layer)六、車載網絡融合協議七、標準化組織八、協議分層總結表九、趨勢與未來協議車載以太網涉及…