Datastream を使用すると、リレーショナル データベースやその他のソースから BigQuery、Apache Iceberg テーブル、Cloud Storage などの宛先にほぼリアルタイムでデータを取り込むことができます。レプリケートされたデータを BigQuery でデータ ウェアハウジングと分析に使用したり、AI や機械学習のワークロードに対して 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 を使用するストリーミング パイプラインに取り込まれ、不正検出、セキュリティ イベント 処理、異常検出に使用されます。
- 準リアルタイムのデータ変更の利用可能性: 準リアルタイムでのデータ変更の利用可能性により、AI と機械学習アプリケーションが強化され、離脱の防止や、マーケティング キャンペーンや本番システムへのフィードバックを活用したエンゲージメントの拡大ができます。
行動サマリー
Datastream を使用すると、複数のデータ ソースからの継続的な変更を Google Cloudに直接ストリーミングできます。
ソース
- Datastream でソースを使用する前に、認証と追加のソース オプションを構成する必要があります。
- 各ソースは、すべてのデータ操作言語(DML)の変更を反映するイベントを生成します。
- 各ストリームでは、過去のデータをバックフィルするほか、進行中の変更を転送先にストリーミングできます。
宛先
Datastream は、宛先として BigQuery、Apache Iceberg テーブル、Cloud Storage をサポートしています。ストリームを作成するときに、宛先構成を定義します。
イベント配信
- イベントの順序は 保証されません。イベント メタデータ には、イベントの順序を決めるために使用できる情報が含まれます。
- イベント配信は 少なくとも 1 回行われます。イベント メタデータには、転送先で重複するデータを削除するために使用できるデータが含まれています。
- イベントサイズは、BigQuery の宛先の場合は 1 イベントあたり 20 MB、Cloud Storage の宛先の場合は 1 イベントあたり 100 MB に制限されています。
イベントについて詳しくは、イベントとストリームをご覧ください。
高可用性と障害復旧
Datastream は、ゾーン間で高可用性を提供し、リージョンの停止時の障害復旧を管理します。
高可用性: Datastream はリージョン サービスであり、 各リージョンの複数のゾーンで実行されます。いずれかのリージョンで単一ゾーンの障害が発生しても、他のゾーンでのサービスの可用性や品質には影響しません。
障害復旧: リージョンに障害が発生した場合、そのリージョンで実行されているストリームはすべて停止している間中断します。サービス停止が解決した後、Datastream は中断したところから再開され、宛先に書き込まれていないデータはソースから再び取得されます。この場合、移行先ではデータの重複が発生する可能性があります。重複するデータの削除について詳しくは、 イベント配信をご覧ください。
初期データと CDC データ
データソースには、ソースがストリームに接続される前に存在していたデータ(履歴データ)が含まれるため、Datastream は、履歴データとイベントをリアルタイムで発生するイベントの両方を生成します。
迅速なデータアクセスを確保するため、過去のデータとリアルタイムのデータ変更を同時に転送先に複製します。イベント メタデータ は、イベントがバックフィルのものか、CDC からのものかを示しています。
次のステップ
- Datastream の詳細を確認する。
- 統合型のマッピングについて学習する。
- サポートされているソースについて学習する。
- サポートされている宛先について学習する。
- プライベート接続構成、 接続プロファイル、および ストリームを作成する。