主なコンセプトと機能

動作とユースケース

Datastream を使用すると、リレーショナル データベース管理システム(RDBMS)やその他のソースのソースデータを BigQuery、Apache Iceberg テーブル、Cloud Storage などの宛先にほぼリアルタイムで取り込むことができます。これにより、ダウンストリームのユースケース(データ ウェアハウジングと分析のためにデータを BigQuery に読み込む、人工知能や ML のワークロードに対してデータに対して Apache Spark ジョブを実行する、など)に対応できます。

コンセプト

このセクションでは、Datastream を効果的に使用するために理解しておく必要がある主なコンセプトについて説明します。

変更データ キャプチャ

変更データ キャプチャ(CDC)は、変更されたデータを特定して追跡し、アプリケーションが更新を処理できるようにするために使用される一連のソフトウェア設計パターンです。CDC は、エンタープライズ データソースに加えられた変更の識別、キャプチャ、配信に基づくデータ統合のアプローチでもあります。

イベント ソーシング

イベント ソーシング設計パターンでは、アプリケーションの状態に対するすべての変更がイベント オブジェクトでキャプチャされます。イベント ソーシングを使用することで、アプリケーションは状態を再構築し、ポイントインタイム リカバリ(その時点までのイベントを処理)を実行し、ビジネス ロジックが変更されたときに状態を再計算し、コマンドクエリ責務分離(CQRS)アーキテクチャを有効にできます。リアルタイム イベント処理ツールの進化に伴い、多くのアプリケーションがイベント ソーシング モデルを使用しています。トランザクション データベースは、アトミック性、整合性、独立性、永続性(ACID)の要件を満たすために、本質的にイベント指向です。

トランザクション データベース

トランザクション データベースでは、データベースが行う一連のオペレーションは通常、ストレージ エンジンでオペレーションが実行される前に先行書き込みログ(WAL)に書き込まれます。ストレージ エンジンでオペレーションが実行され、WAL にコミットされると、オペレーションは成功とみなされます。WAL を使用するとアトミック性と耐久性が可能になり、データベースの忠実性の高いレプリケーションも可能です。一部のデータベースでは、ストレージ レベルで発生する正確なオペレーション(例: write 0x41 at location 20)がログに書き込まれるため、これらのアクションは同じストレージ エンジンでのみ複製できます。他のデータベースでは、別のストレージ エンジンで再実行できる完全な論理ステートメント(または行)がログに記録されます。

イベントとストリーム

Datastream は、さまざまなソースからほぼリアルタイムで大量のデータを取り込み、データを移行先で利用できるようにします。Datastream では、データはイベント単位で保存されます。ストリームは、ソースからのイベントの継続的な取り込みと、宛先への書き込みを表します。

統合型

データソースには独自のデータ型があります。データベース自体に固有のものもあれば、汎用的で、データベース間で共有されるものもあります。複数のソースが統合された転送先にストリームを生成するため、すべてのソースで元のソースタイプの標準表現が必要です。統合型は、すべてのソースでデータ型を表現する一般的かつロスレスな方法であり、データを統合された方法で使用できるようになります。Datastream でサポートされている統合型は、サポートされているソースシステムにまたがる正規化されたすべての型のスーパーセットを表します。

エンティティのコンテキスト

Datastream には 5 つのエンティティがあります。

  • プライベート接続の構成により、Datastream が安全なプライベート ネットワーク接続を介してデータソースと通信できるようになります。この通信は、Virtual Private Cloud(VPC)ピアリングを介して行われます。
  • 接続プロファイルは、特定のソースまたは転送先データベースの接続情報を表します。
  • ストリームは、ソースと転送先の接続プロファイルのペアとストリーム固有の設定を表します。
  • オブジェクトは、ストリームの一部を表します。たとえば、データベース ストリームにはすべてのテーブルに対してストリーミングされるデータ オブジェクトがあります。
  • イベントは、特定のオブジェクトに対するデータ操作言語(DML)のすべての変更を表します。

プライベート接続構成を作成すると、プライベート通信チャネルを介して Google Cloud または他の場所にホストされているソースに接続できます。プライベート接続は省略可能です。Datastream は、公共ネットワーク経由の他の接続モードもサポートしています。

ソースと転送先の接続プロファイルを作成したら、接続プロファイルに保存されている情報を使用して、ソースから転送先にデータを転送するストリームを作成できます。

ストリームを作成すると、Datastream はソースに直接接続し、コンテンツを消費した後、イベント構造に基づいてイベントを処理して転送先に書き込みます。

プライベート接続構成と接続プロファイルは、再利用のためにストリームとは別に管理できます。

機能

Datastream の機能は次のとおりです。

  • サーバーレス: ストリームを構成すると、データが移動し始めます。インストール、リソースの割り当て、メンテナンスのオーバーヘッドはありません。データ量が変化すると、Datastream の自動スケーリング機能により、データがほぼリアルタイムで移動し続けるようにリソースが自動的に割り当てられます。
  • 統合 Avro ベース型スキーマ: Datastream は、すべてのソース固有のデータ型を Avro 型に基づいて統合 Datastream 型スキーマに変換することで、ソースに依存しない処理を実現します。
  • 履歴データと CDC データのストリーミング: Datastream は、履歴と CDC の両方のソースデータを同時にリアルタイムでストリーミングします。
  • 追加ライセンスのない Oracle CDC: Datastream は、Oracle ソースのバージョン 11.2 以降の LogMiner ベースの CDC ストリーミングを提供します。追加ライセンスやソフトウェアのインストールは必要ありません。
  • BigQuery の宛先: ソースの変更は、ニア リアルタイムで BigQuery テーブルに継続的に複製されます。BigQuery のデータは、最小限の遅延で分析に使用できます。
  • Cloud Storage の転送先: CDC データは、Cloud Storage の自己記述型 Avro ファイルまたは JSON ファイルに継続的に書き込まれます。このデータは、所定の場所での直接の追加処理や、ダウンストリームの別の転送先(Spanner など)への読み込みによって、追加の処理を行うために利用できます。
  • Knowledge Catalog によるメタデータの一元管理: ストリーム、接続プロファイル、接続構成などの Datastream リソースは、Knowledge Catalog と自動的に同期されます。これにより、Knowledge Catalog のユーザー インターフェースでこれらのアセットを直接検索して参照できます。

ユースケース

Datastream の使用には、主に次の 3 つのシナリオがあります。

  • データ統合: データベースと Software as a Service(SaaS)クラウド サービスからのデータ ストリームは、BigQuery にデータを読み込むことで、ニア リアルタイムのデータ統合パイプラインにデータをフィードできます。
  • ストリーミング分析: データベースの変更は、Dataflow を使用して不正行為の検出、セキュリティ イベントの処理、異常検出を行うストリーミング パイプラインに取り込まれます。
  • ほぼリアルタイムのデータ変更の利用可能性: ほぼリアルタイムでのデータ変更の利用可能性により、人工知能と機械学習アプリケーションが強化され、マーケティング キャンペーンや本番システムへのデータのフィードバックを通じて、チャーンの防止やエンゲージメントの拡大ができます。

行動サマリー

Datastream を使用すると、複数のデータソースからの継続的な変更を Google Cloudに直接ストリーミングできます。

ソース

  • Datastream でソースを使用する前に、認証と追加のソース オプションを構成する必要があります。
  • 各ソースは、すべてのデータ操作言語(DML)の変更を反映するイベントを生成します。
  • 各ストリームでは、過去のデータをバックフィルし、進行中の変更を宛先にストリーミングできます。

宛先

Datastream は、BigQuery、Apache Iceberg テーブル、Cloud Storage を宛先としてサポートしています。ストリームを作成するときに、宛先構成を定義します。

イベント配信

  • イベントの順序は保証されません。イベント メタデータには、イベントの順序を決めるために使用できる情報が含まれます。
  • イベント配信は少なくとも 1 回発生します。イベント メタデータには、転送先で重複するデータを削除するために使用できるデータが含まれています。
  • イベントのサイズは、BigQuery の宛先の場合はイベントあたり 20 MB、Cloud Storage の宛先の場合はイベントあたり 100 MB に制限されています。

イベントについて詳しくは、イベントとストリームをご覧ください。

高可用性と障害復旧

Datastream は、ゾーン間で高可用性を提供し、リージョンの停止時の障害復旧を管理します。

  • 高可用性: Datastream はリージョン サービスであり、各リージョンの複数のゾーンで実行されます。いずれかのリージョンで単一ゾーンの障害が発生しても、他のゾーンでのサービスの可用性や品質には影響しません。

  • 障害復旧: リージョンに障害が発生した場合、そのリージョンで実行されているストリームはすべて停止している間中断します。サービス停止が解決した後、Datastream は中断したところから再開され、宛先に書き込まれていないデータはソースから再び取得されます。この場合、移行先に重複データが存在する可能性があります。重複するデータの削除については、イベント配信をご覧ください。

初期データと CDC データ

データソースには、ソースがストリームに接続される前に存在していたデータ(履歴データ)が含まれるため、Datastream は、履歴データとリアルタイムで発生するデータ変更の両方からイベントを生成します。

迅速なデータアクセスを確保するため、履歴データとリアルタイムのデータ変更を同時に転送先に複製します。イベント メタデータは、イベントがバックフィルのものか、CDC からのものかを示しています。

次のステップ