データサブスクリプション(Data Subscription)とは、データソースの増分変更を継続的にキャプチャする技術であり、その核となるのは変更データキャプチャ(CDC, Change Data Capture)です。これにより、データの変更(追加、更新、削除)がリアルタイムまたは準リアルタイムでターゲットシステムに転送されます。OceanBaseのエコシステムにおいて、データサブスクリプションは主にデータベースの増分移行シナリオで利用され、移行元データベースと移行先のOceanBaseデータベースとの間のデータ一貫性を確保します。
適用シナリオ
データサブスクリプションには以下の特長があります。
- 低遅延同期:ターゲットシステムとソースシステムのデータ一貫性を保証し、遅延は通常秒単位またはミリ秒単位です。
- リソース効率化:全量データではなく差分データのみを転送するため、ネットワーク帯域幅とストレージリソースの消費を大幅に削減します。
- 柔軟な拡張性:データウェアハウス、分析プラットフォーム、キャッシュシステムなど、複数のターゲットシステムへの並列サブスクリプションをサポートします。
- 高いフォールトトレランス:障害回復と断点からの再開機能を備えており、データ損失を防ぎます。
代表的な適用シナリオは以下の通りです。
- リアルタイムデータ同期
- 業務システム統合:注文システムからBIプラットフォームへのリアルタイムデータ同期により、リアルタイムレポートや意思決定分析を支援します。
- キャッシュ更新:データベース変更をRedis、Memcachedなどのキャッシュシステムへリアルタイムに同期します。
- 検索エンジン同期:データベース変更をElasticsearch、Solrなどの検索エンジンへリアルタイムに同期します。
- データアーキテクチャのアップグレード
- データベース移行:従来のデータベースからOceanBaseへの移行をサポートし、ダウンタイムなしでの切り替えを可能にします。
- アーキテクチャの近代化:単体データベースを分散アーキテクチャに分割し、読み書き分離を実現します。
- クラウドネイティブ移行:オンプレミスデータベースをクラウド上のOceanBaseインスタンスへ移行します。
- データガバナンスと分析
- データレイク構築:業務データをデータレイクへリアルタイムに同期し、オフライン分析を支援します。
- リアルタイムデータウェアハウス:リアルタイムデータウェアハウスを構築し、ストリーミング分析と機械学習を支援します。
- マルチアクティブアーキテクチャ:地域を跨ぐマルチアクティブデータベースアーキテクチャを実現し、システム可用性を向上させます。
主要なツールと機能の比較
OceanBaseエコシステムにおけるデータサブスクリプションでは、主に3種類のコアツールが関わります:オンプレミス移行ツール(OMSなど)、外部移行ツール(Flink CDC、DataXなど)、メッセージミドルウェア(Kafkaなど)です。これらのツールは異なるデータサブスクリプションシナリオに適用されます。以下では、代表的なツールを選択し、それぞれの特徴、適用シナリオ、技術的優位性を紹介します。
自社開発移行ツール:OMS
OMS(OceanBase Migration Service)は、OceanBaseが公式に提供するエンタープライズ向けデータ移行およびサブスクリプションサービスです。OceanBaseデータベースエコシステム専用に設計されており、従来のデータベースからOceanBaseへのワンストップ移行ソリューションを提供します。
主な機能
- 高性能なフル移行+増分移行:TBレベルのデータの高速移行をサポートします。フル移行は論理バックアップまたは物理バックアップに基づき、増分移行はログ解析(MySQL Binlog、Oracle Archive Logなど)によって増分データの同期を実現します。
- ダウンタイムゼロでの移行:ビジネスを停止することなくスムーズな切り替えをサポートし、事業継続性を確保します。
- 多様なデータベース互換性:MySQL、Oracle、PostgreSQL、DB2などの主流データベースの移行をネイティブでサポートしており、追加の適合作業は不要です。
- 可視化監視:完全な移行進捗、遅延、エラー警告などのリアルタイム監視を提供し、移行タスクの全過程を可視化管理できます。
技術的優位性
- OceanBaseネイティブ最適化:OceanBaseの分散アーキテクチャとストレージエンジンに対して深い最適化を施しており、移行効率は汎用ツールよりも顕著に高いです。
- 低侵襲性:データベースログの読み取りのみが必要で、ソースデータベースの設定を変更する必要がないため、ソースシステムへの影響は最小限です。
- 高可用性:マルチノードデプロイをサポートし、自動フェイルオーバー機能を備えているため、移行サービスの高可用性を確保します。
- データ一貫性:分散トランザクションをサポートし、データの一貫性と完全性を確保し、エンタープライズレベルのデータ品質要件を満たします。
適用シナリオ
- エンタープライズレベルのデータベース移行プロジェクト、特に従来のデータベースからOceanBaseへの移行
- データの一貫性と可用性に対する要求が厳しいビジネスシナリオ
- 大規模データ移行とリアルタイム同期のニーズ、例えばコアビジネスシステムのデータベースアップグレード
外部移行ツール:Flink CDC
Flink CDCは、Apache Flinkをベースとした分散ストリーム処理エンジンで、リアルタイムデータサブスクリプションとストリーム処理に特化しています。CDCコネクターを通じてデータベースログを直接読み取り、エンドツーエンドのリアルタイムデータ処理を実現します。
主な機能
- エンドツーエンドのExactly-Once一貫性:データ転送と計算の正確性を確保し、データの重複や欠落を防ぎます。
- 柔軟なデータ変換:フィールドマッピング、データクレンジング、集計計算など、複雑なビジネスロジックをサポートします。
- 多様なデータソースサポート:CDCコネクターを通じて、MySQL、Oracle、PostgreSQL、MongoDBなど、多様なデータソースをサポートします。
- ストリームとバッチの統合処理:リアルタイムストリームデータとバッチデータを統一的に処理し、データ処理アーキテクチャを簡素化します。
技術的優位性
- 高性能計算:大規模並列処理をサポートし、スループットは百万TPSレベルに達することができ、高同時実行データ処理ニーズを満たします。
- 状態管理:組み込みの状態ストレージを備え、セッション分析、リアルタイム集計など、複雑な状態計算とウィンドウ操作をサポートします。
- フォールトトレランスメカニズム:Checkpointに基づくフォールトトレランスメカニズムにより、障害回復後のデータ一貫性を確保します。
- 豊富なエコシステム:Kafka、Hive、Elasticsearchなどのビッグデータコンポーネントとシームレスに統合し、完全なデータ処理エコシステムを構築します。
適用シナリオ
- リアルタイムデータ分析とストリーム処理、例えばリアルタイムレポート、リアルタイムリスク管理など
- 複雑なデータ変換とクレンジングのニーズ、例えば多ソースデータ統合、データ標準化など
- 多ソースデータ統合とリアルタイムデータウェアハウス構築、例えばリアルタイムデータレイク、ストリームデータウェアハウスなど
メッセージミドルウェア:Kafka
Kafkaは分散ストリーム処理プラットフォームであり、データサブスクリプションアーキテクチャにおいて、主に中間層およびバッファ層として機能し、データプロデューサーとコンシューマーを接続します。
主な機能
- 高スループットのメッセージ伝送:百万TPSレベルをサポートし、大規模データストリーム処理ニーズを満たします。
- 永続化ストレージ:データをディスクに永続化し、Exactly-Onceセマンティクスをサポートしてデータ損失を防ぎます。
- マルチコンシューマーサブスクリプション:複数のコンシューマーが同一トピックを並行してサブスクライブできるため、データの再利用が可能です。
- パーティションとレプリカメカニズム:水平スケーリングと高可用性デプロイをサポートし、大規模クラスターニーズを満たします。
技術的優位性
- 疎結合アーキテクチャ:データプロデューサーとコンシューマーを疎結合にし、システムの柔軟性を向上させ、独立した拡張とメンテナンスを容易にします。
- バッファ機能:下流システムの変動やピークトラフィックに対応し、データバッファを提供してトラフィックの変動を平滑化します。
- 多ターゲット配信:一つのデータが複数のコンシューマーによってサブスクライブされることができ、データの再利用をサポートし、データ取得コストを削減します。
- 水平スケーリング:クラスターの水平スケーリングをサポートし、大規模データ処理ニーズを満たし、良好な拡張性を備えています。
適用シナリオ
- CDCツールの中間層として、変更データを一時保存すること。例えば、OMSからターゲットシステムへのデータバッファ。
- リアルタイムデータパイプラインを構築し、異なるデータ処理コンポーネントを接続すること。例えば、データベースから分析システムへのデータストリーム。
- データバッファとトラフィックピークカット、ビジネスのピーク時やシステムの変動に対応すること。
ツール選択の推奨事項
データソースタイプによる選択:リレーショナルデータベースからOceanBaseへ
推奨ツール:OMS
適用シナリオ:MySQL、Oracle、PostgreSQLなどのデータベースからOceanBaseへの移行
主な利点:
- ネイティブ最適化:OceanBaseの分散アーキテクチャとストレージエンジンに対して深いレベルで最適化されており、汎用ツールよりも移行効率が大幅に高い。
- ビジュアルインターフェース:完全な移行進捗、遅延、エラーアラートなどのリアルタイム監視を提供し、運用保守の複雑さを低減する。
- エンタープライズレベルの保証:自動化されたディザスタリカバリとロールバックをサポートし、エンタープライズレベルのSLA保証を提供する。
- 低侵襲性:データベースログの読み取りのみが必要で、ソースデータベースの設定を変更する必要はない。
業務シナリオによる選択
リアルタイムデータ同期シナリオ
推奨ツールの組み合わせ:OMS + Kafka
代表的な用途:
- 業務システム間のリアルタイムデータ同期
- キャッシュシステムのリアルタイム更新(Redis、Memcached)
- 検索エンジンのリアルタイムインデックス更新(Elasticsearch、Solr)
- メッセージキューのリアルタイムデータプッシュ
適用シナリオ:
- データ一貫性に対する要求が高い金融、eコマース企業
- リアルタイムデータ同期が必要なオンライン業務システム
- 運用保守コストに敏感な中小企業
リアルタイム分析シナリオ
推奨ツールの組み合わせ:Flink CDC + Kafka + 分析システム
代表的な用途:
- リアルタイムデータ分析とレポート生成
- ストリーミング機械学習とAIアプリケーション
- リアルタイムリスク管理と監視システム
- リアルタイムレコメンデーションとパーソナライズドサービス
適用シナリオ:
- リアルタイムデータ分析が必要なインターネット企業
- データ処理性能に対する要求が極めて高いシナリオ
- ビッグデータ技術チームを有する企業
データレイク構築シナリオ
推奨ツールの組み合わせ:Flink CDC + Kafka + データレイク
代表的な用途:
- リアルタイムデータレイク構築
- 複数ソースデータの統合と統一管理
- リアルタイムデータウェアハウス構築
- データガバナンスと分析プラットフォーム
適用シナリオ:
- データミドルウェアの構築が必要な大企業
- 複数ビジネスラインのデータ統合ニーズ
- データガバナンスに対する要求が高い企業