はじめに

最近、 Cloud SQL から BigQuery へのデータインポートなど、さまざまなデータ分析関連の作業を行う機会が増えています。それぞれの方法を比較する記事も将来的には書きたいと考えていますが、今回の記事では Datastream に焦点を当て、その使用方法と構成について解説します。この記事を通じて、Datastream の基本的な概念、具体的な連携パターンを記載します。

Datastream とは

Datastream は、Google Cloud が提供する完全マネージド型サーバーレスデータ統合サービスです。これにより、ソースデータベースから CDC(変更データキャプチャ)を取り込み、Cloud Storage や BigQuery に直接データを取り込むことができます。以前は、BigQuery へのデータ転送には Cloud Functions や Dataflow が必要でしたが、Datastream の導入により、プロセスが大幅に簡素化されます。

ソースデータベースとデスティネーション対象

サポートされているソースデータベースには Oracle、MySQL、Postgres、SQL Server(プレビュー)が含まれ、これらはオンプレミス環境や AWS、もちろん Google Cloud での運用が可能です(ソースデータベースに関する詳細)。デスティネーションとしては、 BigQuery および Cloud Storage が利用可能です(デスティネーションに関する詳細)。

連携内容

Datastream を利用すると、ソースデータベースから、スキーマ、テーブル、列を全てまたは一部だけを連携することが可能です。テーブルにおいては、新たに追加されるものも自動的に連携対象となります。また、 BigQuery をデスティネーションとする際には、列レベルセキュリティ(詳細)や行レベルセキュリティ(詳細)を適用することで、特定のユーザにのみデータを公開することが可能です。

データ連携及びNW構成のパターン

データ連携のパターン、NW 構成のパターン、の2つについて解説していきます。

データ連携パターン

デスティネーションとして選択が可能な、BigQuery と Cloud Storage があります。
BigQuery を選択した場合は、ソースデータベースのデータを直接 BigQuery に連携することができます。

Cloud Storage を選択した場合は、データを一度 Cloud Storage に保存し、必要に応じて前処理を行った後に BigQuery または他の SaaS などに連携することができたりします。

ネットワーク接続オプション

Datastream では、以下のネットワーク接続オプションが利用可能です(ネットワーク接続オプションに関する詳細)。

IP 許可リスト


Datastream から接続するパブリック IP を、ソースデータベースのファイアウォールなどで許可します。
この構成をする場合にはソースデータベースにパブリック IP を付与しておく必要があります。

メリット:構成がシンプルになり、後続に記載するような追加 VM が不要になります。
デメリット:デフォルトで通信は暗号化されないため、必要に応じて、ソースデータベース側でサーバ証明書、クライアント証明書での暗号化を行う必要があります。パブリック IP を付与するため、プライベート配置が必須な要件な場合、アンマッチです。

フォワード SSH トンネル


SSH を終端するマシンを準備しそのマシンを経由して対象のソースデータベースへ接続します。
なお、外部からの SSH 専用マシンを準備せずに、データベースサーバへ SSH 終端することも可能です。
こちらに手順が記載されています。

メリット:パブリックな通信は SSH による暗号化通信されます。
デメリット:中継する SSH サーバが必要になり、それにより通信帯域を制限される形となります。

プライベート接続を行う


プライベート接続を構成する場合、Datastream の VPC と、利用中の VPC をピアリングする必要があります。
VPC 内にデータベースをホストしている VM がある場合にはピアリングすることでプライベート通信での Datastream 利用が可能です。
なお、 Cloud SQL をソースデータベースでの利用を想定している場合、 Datastream VPC → 利用中 VPC → Cloud SQL VPC という形でピアリングする構成をとる必要があり、Datastream と Cloud SQL 間の直接のプライベート通信が不可なため、間の VPC にプロキシーサーバを構築し、そちらを経由する必要があります。
プロキシーサーバの内容についてはこちらを参照ください。
ソースデータベースがオンプレにあれば Interconnect や、VPN などのNW設定が必要になります。

メリット:プライベート通信が可能です。
デメリット:ソースデータベースを VPC 内でホストしている場合以外(Cloud SQL やオンプレにあるデータベースの場合)は、Datastream とソースデータベースを中継するプロキシーサーバが必要になります。

まとめ

この記事では、Datastream を使用したソースデータベースの内容を BigQuery 等へのデータ連携の内容及び構成について説明しました。
利用にあたっての NW 的な考慮点はありますが、Datastream はコーディングを必要とせずにデータベースの内容を Cloud Storage や BigQuery に連携できる強力なツールだと思いました。これから多くのデータ連携シナリオでの利用が考えられそうです。
Datastream を行う場合には、上記した以外にもいくつか制限事項など、よくある質問に纏められていますので、参照してみてください。
次回はさらに具体的な設定手順に焦点を当ててご紹介したいと思います。