2
1

Airbyteについて調べてみた

Last updated at Posted at 2024-01-20

背景・目的

Modern Data Stackを簡単に整理してみた
の記事に書いた、ETLツールのうち、Airbyteというものを知りました。
簡単に特徴を整理したいと思います。

まとめ

下記の特徴があります。

特徴 内容
概要 2020年創業のテックカンパニー
企業名=プロダクト名
40,000人以上のエンジニアが使用している
機能 ・300以上のコネクタ
・構造化と非構造に対応
・コネクタを数分で構築または編集
・コード不要のコネクタ ビルダーを使用してカスタム コネクタの構築が可能
・スキーマ変更の検出と伝搬ができる。
操作方法 ・UI
・Terraform provider
・API
スケジューラー ・Scheduled sync
・Cron
・Manualy
Sync Modes ・Full Refresh Overwrite
・Incremental Append
・Full Refresh Append
・Incremental Append + Deduped

概要

Airbyteとは?

クラスメソッドさんのページから引用します。

Airbyteは2020年にサンフランシスコで創業されたテックカンパニーです。創業からわずか1年でシリーズAに到達し、$26Mの資金調達に成功しているスタートアップで、急激な成長速度で業界から注目を集めています。

  • 2020年創業のテックカンパニー

Airbyteのページから引用します。

データの移動に必要な唯一の ELT ツール
40,000 人以上のエンジニアが、堅牢なデータ統合プラットフォームである Airbyte を使用して、コネクタの最も包括的なカタログからデータを複製しています。

  • 40,000人以上のエンジニアが使用している

Leverage the largest catalog of connectors
Airbyte’s catalog of 300+ pre-built connectors is the largest in the ELT Tool industry and is doubling every year, thanks to our open-source ELT approach.
Our data integration platform supports both structured and unstructured data sources for both your data and AI use cases.

  • 300以上のコネクタ
  • 構造化と非構造に対応

Build or edit connectors in minutes
Build custom connectors in 10 min with our no-code connector builder, along with over 1,000+ engineers building connectors every month. Add them to Airbyte to enable your whole team to leverage them.
Edit any Airbyte connectors to fit your custom needs.

  • コネクタを数分で構築または編集
  • コード不要のコネクタ ビルダーを使用してカスタム コネクタを 10 分で構築できる。
  • 毎月 1,000 人を超えるエンジニアがコネクタを構築している。それらをAirbyteに追加すると、チーム全体がそれらを活用できるようになる。
  • カスタム ニーズに合わせて Airbyte コネクタを編集できる

Manage your ELT pipelines your way
下記がある。

  • UI
  • Terraform provider
  • API

Configuring Connections

接続はソースを宛先にリンクし、データの同期方法を定義します。 接続を作成した後、構成設定またはストリーム設定を変更できます。

  • Connectionsはソースを指定し、構成する。

Sync Schedules

For each connection, you can select between three options that allow a sync to run. The three options for Replication Frequency are:

接続ごとに、下記の3つのオプションから選択可能です。

  • Scheduled (e.g. every 24 hours, every 2 hours)
  • Cron scheduling
  • Manual

Sync Limitations

  • 接続ごとに一度に実行できる同期は 1 つだけ
  • 前の同期が完了する前に同期が実行されるようにスケジュールされている場合、スケジュールされた同期は前の同期の完了後に開始される。
  • Airbyte Cloud では、同期は最大 60 分ごとに実行可能。
  • 1 時間に 1 回を超える頻度でレプリケーションが必要な場合は、営業担当者に問い合わせる。

Scheduled syncs

スケジュールされた接続が最初に作成されると、作成直後に同期が実行されます。 その後、最後の同期 (手動でトリガーされたかスケジュールによってトリガーされたかに関係なく) からの時間がスケジュール間隔を超えると、同期が実行されます。 例えば:

10 月 1 日午後 2 時、ユーザーは 24 時間ごとにデータを同期するための接続を設定します。
10 月 1 日、午後 2 時 01 分: 同期ジョブが実行されます
10 月 2 日、午後 2 時 1 分: 最後の同期から 24 時間が経過したため、同期がトリガーされます。
10 月 2 日午後 5 時: ユーザーが UI から手動で同期をトリガー
10 月 3 日、午後 2 時 1 分: 最後の同期が行われてから 24 時間以内であるため、同期は実行されません
10 月 3 日、午後 5 時 1 分: 最後の同期から 24 時間以上経過しているため、同期が実行されます。

  • つまり、Scheduledで設定した場合、最後の実行時間が優先される。これにはマニュアル実行も含まれる。

Cron Scheduling

同期のスケジュールをより正確に設定したい場合は、CRON スケジュールを使用して、特定の日または月の時刻を設定することもできます。
Airbyte は Quartz の CRON スケジューラを使用しています。 必要な形式を理解するには、ドキュメントを読むことをお勧めします。 次の例も参照できます。

  • 正確に設定する場合は、Cronを使用する。

Manual Syncs

接続が手動の頻度で複製されるように設定されている場合、同期は自動的に実行されません。
これは、UI を通じていつでも [今すぐ同期] ボタンをクリックすることによってトリガーできます。また、API を通じてトリガーすることもできます。

  • マニュアル実行の場合は、当然だが手動で行われ、自動的に実行されない。
  • UIの他、APIでも実行できる

Sync Modes

同期モードは、Airbyte がソースから読み取り、宛先に書き込む方法を制御します。Airbyte は、さまざまな使用例に対応するために、さまざまな同期モードを提供します。混乱を最小限に抑えるために、モードの動作はその名前に反映されています。Airbyte の同期モードを理解する最も簡単な方法は、モードの名前の付け方を理解することです。

名前の最初の部分は、ソース コネクタがソースからデータを読み取る方法を示します。
同期モード名の 2 番目の部分は、宛先コネクタがデータを書き込む方法を示します。これは、ソース コネクタがデータを生成した方法には影響されません。

  • つまり、Sync Modeの挙動は下記の通り

    • 読み込み方法と書き込み方法
  • 下記の4つがあるようです。

Sync Modes 特徴 読み込み 書き込み 備考
Full Refresh Overwrite ストリーム全体を同期し、宛先のデータを上書きして置き換えます。 全てのデータを抽出 完全に置き換え 削除されたものも反映される。
Full Refresh Append ストリーム全体を同期し、宛先にデータを追加します。 同上 新しいデータが追加される ・データの重複が発生する可能性あり
・削除されたデータは残り続ける。
Incremental Append ストリームから新しいレコードを同期し、宛先にデータを追加します。 最後の同期以降に変更、追加されたデータのみがソースから抽出される 同上 削除されたデータは残り続ける。
Incremental Append + Deduped ストリームから新しいレコードを同期し、宛先にデータを追加します。
また、ソースのストリームの状態をミラーリングする重複排除されたビューも提供します。
同上 新しいものが追加されるのは同じだが、重複を除いた状態で履歴データを持つ 同期の度に履歴が保持され、データの変更履歴が追跡される

削除時の挙動が気になったので、絵にしてみました。

Full Refresh Overwrite

image.png

  • Source と Destが全く同じ状態になります。

Full Refresh Append

image.png

  • Sourceのすべての状態を、Destに追加します。

Incremental Append

image.png

  • 削除されたものは反映されない。

Incremental Append + Deduped

image.png

  • 削除は、Incremental Appendと同じ。履歴が残るとのこと。

Schema Change Management

Airbyte がソース内のスキーマの変更をどのように処理するかを接続ごとに指定できます。このプロセスにより、正確かつ効率的なデータ同期が確保され、エラーが最小限に抑えられ、データ パイプラインの管理にかかる時間と労力が節約されます。
Airbyte は、同期の直前に、ソース スキーマの変更を最大 24 時間に 1 回チェックします。

  • スキーマの変更を伝搬できる。

  • 24Hに一度チェックする。

  • Propagate all field and stream changes

    • ソースからのすべての新しいテーブルと列の変更は、宛先に自動的に伝播され、反映されます。これには、ストリームの変更 (追加または削除)、列の変更 (追加または削除)、およびデータ型の変更が含まれます。
  • Propagate field changes only

    • 列の変更のみが反映されます
  • Detect changes and manually approve

    • スキーマの変更は検出されますが、伝播されません。同期は、設定したスキーマを使用して引き続き実行されます。検出されたスキーマ変更を反映するには、変更を手動で承認する必要があります
  • Detect changes and pause connection

    • スキーマの変更が検出されるとすぐに、接続は自動的に無効になります。

参考

今回、Airbyteを調べてみました。Ingestionに強みがあるように感じました。今後、機会があれば使ってみたいと思います。

考察

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1