继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

了解Airbyte及其高效的数据摄入

回首忆惘然
关注TA
已关注
手记 388
粉丝 76
获赞 417

介绍

Airbyte 是一个功能强大的数据集成平台,简化了数据采集的过程。本文将重点介绍 Airbyte 如何从 Google 云存储(GCS)向 BigQuery 进行数据迁移,特别强调其非侵扰性处理方式及其高效利用 BigQuery 表。

与许多标准的数据摄入解决方案不同,Airbyte采取了不同的方法。它不会更改或移动这些文件。相反,Airbyte读取数据并在BigQuery中使用专用表来管理摄入过程。这种方法保证了源数据的完整性和稳定性,同时提供强大的数据管理功能。

这些重要的BigQuery表(或简称BQ表)由Airbyte负责管理

Airbyte 在 BigQuery 中使用三个主要表来处理摄取流程:日志表、原始数据表和状态表。虽然这三个表在 Airbyte 的 BigQuery 设置中共享一些共同的模式元素,但它们有不同的用途,并且在模式上有不同的地方。下面是对这些表模式的详细比较:

常用的元素
  • 记录UUID (_airbyte_raw_id):每个记录的唯一标识符。
  • 作业开始时间戳 (_airbyte_job_started_at):表示摄取作业开始的时间。
  • 数据切片开始时间戳 (_airbyte_slice_started_at):表示每个数据切片开始的时间(在增量模式下有关)。
  • 提取时间戳 (_airbyte_extracted_at):从源提取数据的确切时间。
  • 加载时间戳 (_airbyte_loaded_at):数据加载到BigQuery的时间。
模式元素之间的差异

虽然 _airbyte_data 字段存在于所有三个表中,但内容会因表的功能不同而异,表的功能,:

日志表格

  • 内容:包含关于摄取流程的详细日志信息,比如每个步骤的元数据和时间戳,与作业的每个步骤相关。

状态表注:此处“状态表”指的是软件或数据库中记录状态的表格。

  • 内容说明:保存状态信息,包括用于从上次检查点恢复摄入过程所需的信息,比如最后一次成功的同步时间。

原始表

  • 内容:包含从源端获取的原始未加工的数据,保持原始数据的格式和结构。
一个从GCS到BigQuery导入数据的示例

在这个示例中,我们将分解Airbyte如何将数据从Google Cloud Storage (GCS) 桶导入到BigQuery的每个步骤,重点介绍它是如何使用日志、原始和状态表来高效管理这个过程并确保只导入新的或更新的数据。

当你启动数据导入任务时,Airbyte 会进行以下操作:

  1. Job 启动:Airbyte 启动作业,并在日志表中记录开始时间戳。
  2. 状态检索:Airbyte 查询状态表数据以检索最后一个已知状态。该状态包括之前已摄取的文件的最后修改时间戳。
  3. 识别新/修改文件:使用状态表中的信息,Airbyte 确定自上次同步以来在 GCS 桶中添加或修改的文件。这是通过与状态表中存储的时间戳比较来完成的。
  4. 提取数据:Airbyte 从这些新或修改的文件中读取数据。它不会移动或更改这些文件。
  5. 存储原始数据:提取的数据存储在 BigQuery 的原始数据表中。
  6. 日志过程:Airbyte 在日志表中记录过程的每一步。日志条目包括有关作业的详细信息,例如开始时间、切片时间、提取时间和加载时间。
  7. 更新状态:一旦数据成功加载到 BigQuery 中,Airbyte 会更新状态表,以包含最新的状态。这包括已摄取文件的最后修改时间戳以及成功摄取记录。
示例说明

假设我们有以下情况:

  1. 首次摄取:Airbyte运行一个任务,运行一个作业,并从Google Cloud Storage (GCS) 存储桶中读取三个文件。
  • file1.csv (最后更新时间:2023–07–20T12:00:00Z)
  • file2.csv (最后更新时间:2023–07–21T12:00:00Z)
  • file3.csv (最后更新时间:2023–07–22T12:00:00Z)

这些文件会被读取,文件中的数据会被存储到数据表中。状态记录表会用最后一个修改文件的日期(2023年7月22日12:00:00Z)进行更新。

2. 后续添加:几天后,添加了一个新的文件(file4.csv),同时,file2.csv也被修改了。

  • file2.csv (最新修改时间为:2023年07月25日12:00:00Z)
  • file4.csv (最后修改时间为:2023年07月26日12:00:00Z)

Airbyte 查询状态表(states表)并识别出 file2.csv 和 file4.csv 为新文件或修改过的文件。读取这些文件,并将数据存储在 raw 表中。状态表被更新为最新的时间戳(2023-07-26T12:00:00Z)。

在整个过程中,日志表记录了作业进度的详细信息,提供了全面的审计跟踪。

结束语.

Airbyte 的高效数据摄取流程确保仅摄取新或修改的数据,确保数据完整性和优化性能。通过使用 BigQuery 表(日志、原始数据和状态表),Airbyte 提供了一个强大的框架来管理和监控数据摄取过程。这种方法非常适合需要管理小型到中型数据工作流程的场景,简化您的数据堆栈并稳定运营。

Airbyte的数据摄取方式提供了几个明显的优势,尤其是在从Google Cloud Storage(GCS)向BigQuery传输数据时。通过利用BigQuery表进行日志和状态管理,Airbyte避免了在桶内不同状态或文件夹之间移动文件时常犯的错误。这种方法使GCS桶保持稳定状态,而不会因为频繁的文件移动而变得混乱,这可能会导致复杂情况和潜在错误。

通过在BigQuery中处理所有数据,Airbyte简化了整个数据摄取流程。通过使用专门的日志表、原始数据表和状态表,所有元数据、处理信息和状态跟踪都被集中管理并且易于访问。这种集中式方法不仅提供了清晰的审核跟踪,而且使得监控和管理摄取流程变得更加简单。

多保重 🤟

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP