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 字段存在于所有三个表中,但内容会因表的功能不同而异,表的功能,:
日志表格
- 内容:包含关于摄取流程的详细日志信息,比如每个步骤的元数据和时间戳,与作业的每个步骤相关。
状态表注:此处“状态表”指的是软件或数据库中记录状态的表格。
- 内容说明:保存状态信息,包括用于从上次检查点恢复摄入过程所需的信息,比如最后一次成功的同步时间。
原始表
- 内容:包含从源端获取的原始未加工的数据,保持原始数据的格式和结构。
在这个示例中,我们将分解Airbyte如何将数据从Google Cloud Storage (GCS) 桶导入到BigQuery的每个步骤,重点介绍它是如何使用日志、原始和状态表来高效管理这个过程并确保只导入新的或更新的数据。
当你启动数据导入任务时,Airbyte 会进行以下操作:
- Job 启动:Airbyte 启动作业,并在日志表中记录开始时间戳。
- 状态检索:Airbyte 查询状态表数据以检索最后一个已知状态。该状态包括之前已摄取的文件的最后修改时间戳。
- 识别新/修改文件:使用状态表中的信息,Airbyte 确定自上次同步以来在 GCS 桶中添加或修改的文件。这是通过与状态表中存储的时间戳比较来完成的。
- 提取数据:Airbyte 从这些新或修改的文件中读取数据。它不会移动或更改这些文件。
- 存储原始数据:提取的数据存储在 BigQuery 的原始数据表中。
- 日志过程:Airbyte 在日志表中记录过程的每一步。日志条目包括有关作业的详细信息,例如开始时间、切片时间、提取时间和加载时间。
- 更新状态:一旦数据成功加载到 BigQuery 中,Airbyte 会更新状态表,以包含最新的状态。这包括已摄取文件的最后修改时间戳以及成功摄取记录。
假设我们有以下情况:
- 首次摄取: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简化了整个数据摄取流程。通过使用专门的日志表、原始数据表和状态表,所有元数据、处理信息和状态跟踪都被集中管理并且易于访问。这种集中式方法不仅提供了清晰的审核跟踪,而且使得监控和管理摄取流程变得更加简单。
多保重 🤟
共同學習,寫下你的評論
評論加載中...
作者其他優質文章