🙂
データロード周りのサービスを調べてみた
本記事の目的
とりあえずDWHへのロードをスムーズにできるとストレスが少なそう(とりあえず安心)だなと思う。
気にする観点は対応データソース、ロードのタイミング(何をトリガーとできるか)、コスト。
サービスが沢山あるので簡単に調べてみた(沢山ありすぎてしんどい)。
間違っている箇所があればご指摘いただけますと幸いです。
結論
お金があるならFivetran、お金がないならAirbyteって感じかなと思いました。
調べた内容
- GCP関連
- Data transfer service
設定したスケジュールに合わせてデータをBQに転送できる。
パーティショニングもなしにそのまま丸ごとBQに持っていくサービス
過去何日分更新するかも設定できる。 - data stream
CDCサービスであり、接続元のデータの変更を検知し、BQに変更内容を反映するサービス。
データソースはRDBに限定が前提だがsales forceは選択できる。
スケジュール設定でバッチ処理ではなく、変更を検知してレプリケーションする。
- Data transfer service
- Embulk[1]
OSSのデータロードサービスで、様々なpluginが開発されている。実行環境を構築するコスト、運用するコストがかかるが、カスタマイズ性が高い。ジョブ管理機能まではないので、他のサービスを併用する必要がある。troccoだとembulkのジョブ管理もできる。変換処理も豊富に対応できるのでETL型のサービスと理解しています。CDCはないらしい。 - Airbyte[1:1]
OSSとクラウドの両方のサービスがある。Embulkよりも多様なデータソースに対応している。CDCも付いている。ELT型のサービスと理解しています。 - Fivetran[2]
高額だがAirbyte以上のコネクタ、CDC機能を保有している。
お金があるならこれを使いたい。 - snowpipe[3]
snowflake用のデータロードツール。リアルタイムにファイルをDBに流していける。
リアルタイム性が強み。データ取得元のサービス側から起動することもできるので、厳密なタイミングでの起動が可能である。ただし、細かいファイルを何十回も呼び出すとコンピューティングコストが余分にかかるので、ある程度の大きさでデータをファイルにまとめておく必要がある。
Discussion