最近、GCPのサービスとしてdatasreamを知り、結構便利なのでは?と思ったので纏めてみたいと思います。
CDCとは?
datasreamはCDCのサービスですが、このCDCは change data capture といい、簡単にデータが変更された差分だけを保存する機能です。何かしらの一意のキーを元に変更されたレコードや新規に追加されたレコードを検出することで、変更分だけのデータを取得します。
具体的には 変更した日付(LAST_UPDATE)やテーブルカラムにバージョンをつけて管理する(VERSION_NUMBER)などですね。
このCDCの概念自体は元から存在していたのですが、デザインパターンレベルだったので利用するためには実際に実装する必要がありました。
#Datastream
GCPのdatasreamは先ほど述べた通りCDCのサービスなのですが主に以下のメリットがあります。
- サーバーレスで利用できるので、管理する部分が非常に小さい
- 簡単にセットアップができる
- GCPの別サービスに連携できる。
などがあります。特にGCPと連携できるというのが結構強力で、CloudSQLやSpannerなどのデータをcloud storageに置くことができたり、Dataflowというストリームデータの分析サービスと連携させて、DBのデータを加工させて、BigQueryに入れるという芸当も可能です。
#Datastreamの構成要素
Datastreamには主に三つの構成要素があり
Private connectivity configurations
VPCなどのプライベートネットワークへ接続するための設定です。
DBなどは機密情報が入っており大抵の場合はプライベートネットワークに設置されているので大抵の場合は使うことになります。
Connection profiles
接続する先とその情報を送る先の情報を設定する部分です。
Streams
実際にデータをCDCを使って差分データ抽出し転送するときに使います。
最後に
なかなかに便利そうなのですが、2021/07/03現在postgresがサポートされておらず、そこが残念なところです。
とはcoming soonと書いているので気長に待ちたいと思います。
それでは良いdatastreamライフを