変更データキャプチャ (CDC)

Jan 25 2023
データの精度を犠牲にすることなく、より速く、より効率的にデータを利用できるようになります。Siddharth Pal DevOps チームによると、データからインサイトを取得することはあらゆる製品の最も重要な部分の 1 つですが、ゲーム アプリを作成する場合は、ソース データベースからデータの変更を取得してデータ ウェアハウスに入れることがさらに重要ですほぼリアルタイムで。

データの精度を犠牲にすることなく、より速く、より効率的にデータを利用できるようになります。

Siddharth Pal DevOps チーム、Hike著

データからの洞察はどの製品でも最も重要な部分の 1 つですが、ゲーム アプリを作成している場合は、ソース データベースからデータの変更を取得し、ほぼリアルタイムでデータ ウェアハウスに入れることがさらに重要です。

CDC はバッチ データ取り込みよりも効率的かつ高速であるため、データをシステムに取り込んで迅速に分析する必要があるデータ チームおよび BI チームにとって頼りになるソリューションです。

私たちは、2021 年 8 月にすべてのプライマリ データセットに対して CDC を検討し始め、それを実装したという興味深い使用例がありました。私たちは 1 年以上にわたり、最新のソフトウェア変更とソース データの移行をすべて含む CDC パイプラインに取り組んできました。このブログで皆さんと共有できることをうれしく思います。この間、私たちは多数のデータベースを追加し、より重要なビジネス アプリケーションのためにデータベース シャーディングに切り替えました。

なぜCDCを採用することにしたのですか?

入金または出金のステータス、特定のゲームのゲーム セッションのステータス、異常の発見、リアルタイム キャンペーン、機械学習モデル、運用分析などのユースケースでは、ほぼリアルタイムのデータが必要です。データのあらゆる変更を記録します。

CDC パイプラインのセットアップ

では、CDC パイプラインを設定したい場合はどこから始めればよいでしょうか?

  1. 最小 3 ノードの Kafka クラスターを起動します。
  2. データベースのバージョンと互換性のある安定した debezium コネクタをダウンロードし、ブローカー サーバーまたは専用ノードにインストールします。
  3. プロビジョニングされたインフラ間のネットワーク接続を確立します。
  4. ソース データベースに読み取り専用ユーザーを作成します。
  5. モンゴDB:
  6. MySQL:
    • MySQL:

    私たちは何を達成できたのでしょうか?

    従来の ETL からスチーム化への移行により、次の 2 つの大きな問題が解決されます。

    1. 負荷の定期的なスパイク: 大規模なクエリはレイテンシ、そして最終的にはユーザー エクスペリエンスに影響を与えます。そのため、バッチ ジョブをスケジュールするために追加のセカンダリ サーバーをセットアップしました。
    2. ビジネス上の意思決定の遅れ: データに基づくビジネス上の意思決定は、ポーリング頻度によって遅れます。

    監視ツールでコネクタのステータスを監視するには、curl 呼び出しを実行します。

    次のステップ

    CDC は私たちにとって効果的なプラットフォームであることが判明し、CDC を活用すればさらに多くのことができることがわかりました。

    次のステップとして、次のようなさらなる方法に取り組んでいます。

    1. CDC は、損失を避けるためにデータをバックアップするツールとして機能します。
    2. BI ツールを使用したり、AI/機械学習パイプラインへの入力プロセスとしてさらに調査したりできます。