从零开始构建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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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)六、车载网络融合协议七、标准化组织八、协议分层总结表九、趋势与未来协议车载以太网涉及…