モダンデータスタック カテゴリ紹介 #24 『Change Data Capture(変更データキャプチャ)』 – Modern Data Stack Categories Overview Advent Calendar 2023
当エントリは『Modern Data Stack Categories Overview Advent Calendar 2023』 24日目のエントリです。
- Modern Data Stack Categories Overviewのカレンダー | Advent Calendar 2023 - Qiita
- Modern Data Stack Categories Overview Advent Calendar 2023 の記事一覧 | DevelopersIO
データ分析、データを扱う世界では昨今『モダンデータスタック(Modern Data Stack/MDS)』という考え方、サービス構成が大きな注目を浴びています。データの収集、処理、保存、分析に使用されるツールとクラウドデータサービスを集めたソリューションを指す言葉です。クラスメソッドとしてもこのモダンデータスタック(Modern Data Stack/MDS)を推しており、下記の内容でお客様にサービスとして提供しています。
このモダンデータスタックという考え方、現在では構成するサービス群のジャンルが非常に多岐に渡ってきています。このカテゴリ分けも正直企業や個人によって定義が分かれていたりするのですが、『Modern Data Stack - Everything that you need to know !』というサイトではこのカテゴリ分類がシンプルかつ分かりやすく展開されています。このアドベントカレンダー企画では、このサイトで展開されているカテゴリ毎について内容を理解することで見識を広め、今後のサービス展開・サービス選択を検討する足掛かりとして行きたいと思います。
当エントリでは、Modern Data Stack(MDS)におけるカテゴリ『Change Data Capture(変更データキャプチャ)』の内容について紹介します。
目次
モダンデータスタック(Modern Data Stack/MDS)における『変更データキャプチャ』とは
アドベントカレンダー企画の趣旨については1日目のエントリ内『当アドベントカレンダー企画について』をご参照ください。
変更データキャプチャとは、ソース・システムで発生した変更を追跡・特定し、下流システムがその変更に対してアクションを起こせるようにするプロセスです。この仕組みは、イベント駆動型アプリケーションの実現に一役買っています。データベースに発生した変更は、変更データキャプチャによって即座に処理されます。最も一般的なユースケースは「システム内のデータを同期させるために、変更を別のターゲットシステムに反映させること」です。
FivetranではCDC(Change Data Capture)に関する解説ブログが公開されています。
基本的な説明に関する部分がとても分かりやすく説明されていたので翻訳の上引用させて頂きたいと思います。
最新のデータセットが大きくなり、アプリケーションがよりタイムセンシティブになるにつれ、従来のETLでは対応するのが難しくなってきました。では、データベースはどのようにしてリアルタイムの要件に対応できるのでしょうか?
そこでチェンジ・データ・キャプチャ(CDC)の登場です。CDCでは、データは一括ロードやバッチウィンドウではなく、リアルタイムで小刻みに転送されます。この機能により、CDCはリアルタイムのデータ移動で、より迅速かつ正確な意思決定を支援します。
(中略)変更データキャプチャ(CDC)は、データベースからのレプリケーションや、SaaSアプリケーションやAPIを通じてのみアクセス可能な他のシステムなど、様々なデータソースからのデータ処理に一般的に使用されます。
CDCが急速に普及している主な理由は2つあります:
・CDCはデータレプリケーションの一種として、データ駆動型の強力なユースケースを推進する。データレプリケーションは、リアルタイム分析、データストリーミング、機械学習のユースケースのための運用データへの統合アクセスを可能にします。
・CDCは、変更が発生するとリアルタイムでデータを転送することを可能にする。そのため、特にデータベース処理への影響が主要なビジネス・プロセスに直接影響するような、バッチ・ウィンドウのための都合の良い時間がない、24時間365日重要なシステムを運用している組織にとって、CDCは非常に貴重なものとなります。クリティカル・システムには、意思決定を後押しする最も重要なデータが含まれているため、競争力を高めるには、このデータへのリアルタイム・アクセスが必要です。
その他CDC(Change Data Capture)に関する説明は以下のドキュメント等をご参照ください。
MDSにおける主な変更データキャプチャ系サービス
ここではモダンデータスタックにおける『変更データキャプチャ』のカテゴリで主だったサービスについて幾つか言及していきたいと思います。(ここでの評価はユーザーによるサイト内でのLIKEの数が多いものを中心に見ていきます)
Debezium
Debeziumは、データベースの変更を取り込み、アプリケーションがその変更を見て対応できるようにするための分散サービスセットです。Debeziumは、各データベーステーブル内のすべての行レベルの変更を変更イベントストリームに記録し、アプリケーションはこれらのストリームを読むだけで、変更イベントが発生したのと同じ順序で変更イベントを見ることができます。
その他Debeziumに関する基本的な情報は以下の通り。
Supabase
SupabaseはFirebaseに代わるオープンソースで、オープンソースツールのスタックを使用してエンタープライズグレードの機能を開発者に提供することを目的としています。Supabaseを使うと、ホストされたPostgresデータベース、認証・認可システム、自動生成API、ファイルストレージ、AI、ベクター/埋め込みツールキット、包括的なダッシュボードの利点を活用して、強力なアプリケーションを簡単に構築することができます。
その他Supabaseに関する基本的な情報は以下の通り。
- Getting Started | Supabase Docs
- Pricing & fees | Supabase
- Supabase(@supabase)さん / X
- Supabase - YouTube
HVR(Fivetranが買収)
HVRは、リアルタイムの同種および異種データ レプリケーションを可能にする強力なソフトウェア製品です。 HVRは、さまざまなCDC(変更データ キャプチャ)メソッドを使用して、データベース、ディレクトリ(ファイルの場所)間、およびデータベースとディレクトリの間 (HVR では「場所」と呼ばれます) の変更をレプリケート(複製)します。
HVRは2021年にFivetranに買収されています。
現在ではHVR5というバージョンと、
HVR6というバージョンがあり、HVR6に関しては2023年3月1日の時点で『Fivetran Local Data Processing』にブランド変更されています。
Fivetran Local Data Processing(Fivetran LDP)に関してはDevelopersIOの以下ブログでも関係者によるコメントを紹介しています。
まとめ
という訳で、『Modern Data Stack Categories Overview Advent Calendar 2023』24日目の記事、Change Data Capture(変更データキャプチャ)に関する紹介エントリでした。
明日25日目は『Data Mesh(データメッシュ)』に関する内容となります。お楽しみに!