背景・目的
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
- Source と Destが全く同じ状態になります。
Full Refresh Append
- Sourceのすべての状態を、Destに追加します。
Incremental Append
- 削除されたものは反映されない。
Incremental Append + Deduped
- 削除は、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に強みがあるように感じました。今後、機会があれば使ってみたいと思います。
考察