🙂

データロード周りのサービスを調べてみた

に公開

本記事の目的

とりあえずDWHへのロードをスムーズにできるとストレスが少なそう(とりあえず安心)だなと思う。
気にする観点は対応データソース、ロードのタイミング(何をトリガーとできるか)、コスト。
サービスが沢山あるので簡単に調べてみた(沢山ありすぎてしんどい)。
間違っている箇所があればご指摘いただけますと幸いです。

結論

お金があるならFivetran、お金がないならAirbyteって感じかなと思いました。

調べた内容

  • GCP関連
    • Data transfer service
      設定したスケジュールに合わせてデータをBQに転送できる。
      パーティショニングもなしにそのまま丸ごとBQに持っていくサービス
      過去何日分更新するかも設定できる。
    • data stream
      CDCサービスであり、接続元のデータの変更を検知し、BQに変更内容を反映するサービス。
      データソースはRDBに限定が前提だがsales forceは選択できる。
      スケジュール設定でバッチ処理ではなく、変更を検知してレプリケーションする。
  • Embulk[1]
    OSSのデータロードサービスで、様々なpluginが開発されている。実行環境を構築するコスト、運用するコストがかかるが、カスタマイズ性が高い。ジョブ管理機能まではないので、他のサービスを併用する必要がある。troccoだとembulkのジョブ管理もできる。変換処理も豊富に対応できるのでETL型のサービスと理解しています。CDCはないらしい。
  • Airbyte[1:1]
    OSSとクラウドの両方のサービスがある。Embulkよりも多様なデータソースに対応している。CDCも付いている。ELT型のサービスと理解しています。
  • Fivetran[2]
    高額だがAirbyte以上のコネクタ、CDC機能を保有している。
    お金があるならこれを使いたい。
  • snowpipe[3]
    snowflake用のデータロードツール。リアルタイムにファイルをDBに流していける。
    リアルタイム性が強み。データ取得元のサービス側から起動することもできるので、厳密なタイミングでの起動が可能である。ただし、細かいファイルを何十回も呼び出すとコンピューティングコストが余分にかかるので、ある程度の大きさでデータをファイルにまとめておく必要がある。
脚注
  1. https://note.com/yuuki_iwasaki/n/nf7daca6c7d86 ↩︎ ↩︎

  2. https://www.fivetran.com/blog/fivetran-vs-airbyte-features-pricing-services-and-more ↩︎

  3. https://docs.snowflake.com/ja/user-guide/data-load-snowpipe-intro?utm_source=chatgpt.com ↩︎

Discussion