このセクションでは、ストリームを作成する方法について説明します。Datastream は、このストリームを使用して移行元 Oracle、MySQL、SQL Server(プレビュー)または PostgreSQL データベースから BigQuery または Cloud Storage にデータを転送します。
ストリームの作成には以下が含まれます。
- ストリームの設定を定義します。
- 移行元の Oracle、MySQL、SQL Server、または PostgreSQL データベース(ソース接続プロファイル)に作成した接続プロファイルを選択します。あるいは、ソース接続プロファイルを作成していない場合は、作成します。
- Datastream の移行元データベースでテーブルとスキーマを指定して、ストリームのソース データベースに関する情報を構成します。
- 宛先への転送ができる。
- 移行先への転送は制限されています。
Datastream が過去のデータをバックフィルするのか、進行中の変更を移行先にストリーミングするのか、データへの変更のみをストリーミングするのかを決定します。過去のバックフィルを有効にする場合は、必要に応じて、Datastream が移行先にバックフィルしないソース データベース内のスキーマとテーブルを指定できます。
BigQuery または Cloud Storage 用に作成した接続プロファイル(転送先の接続プロファイル)を選択します。転送先の接続プロファイルを作成していない場合は、作成します。
ストリームの宛先に関する情報の構成これには以下の情報が含まれます。
- BigQuery 向け
- Datastream がソース データベースからスキーマ、テーブル、データを複製するデータセット。
- Cloud Storage の場合:
- Datastream が移行元 Oracle データベースからスキーマ、テーブル、データを転送する移行先バケットのフォルダ。
- BigQuery 向け
ストリームを検証して、ストリームが正常に実行されることを確認します。ストリームの検証では、次のことを確認します。
- データストリームがソースからデータをストリーミングできるようにソースが適切に構成されているかどうか
- ストリームがソースと宛先の両方に接続できるかどうか
- ストリームのエンドツーエンド構成
ストリームの設定の定義
Google Cloud Console の [ストリーム] ページに移動します。
[ストリームを作成] をクリックします。
次の表を使用して、[ストリームの作成] ページの [ストリームの詳細の定義] セクションのフィールドに入力します。
フィールド 説明 ストリーム名 ゲートウェイの表示名を入力します。 ストリーム ID このフィールドは、入力したストリーム名に基づいて Datastream が自動的に入力します。自動生成された ID を保持することも、変更することもできます。 リージョン ストリームが保存されるリージョンを選択します。ストリームは、他のすべてのリソースと同様にリージョンに保存されます。リージョンの選択は、ストリームがソース データベースまたは宛先に接続できるかどうかには影響しませんが、リージョンでダウンタイムが発生した場合の可用性に影響する可能性があります。費用とパフォーマンスを最適化するには、ストリームのすべてのリソースをソースデータと同じリージョンに保持することをおすすめします。 ソースタイプ 移行元の Oracle、MySQL、SQL Server または PostgreSQL データベースの接続プロファイルの作成時に指定したプロファイル タイプを選択します。ソース データベースの接続プロファイルを作成していない場合は、ここで作成できます。
宛先の種類 BigQuery または Cloud Storage の転送先の接続プロファイルを作成したときに指定したプロファイル タイプを選択します。宛先の接続プロファイルを作成していない場合は、ここで作成できます。 暗号化 デフォルトでは、データは Google Cloud が管理する鍵で暗号化されます。ご自身で暗号化を管理する場合は、顧客管理の暗号鍵(CMEK)を使用します。
- [Cloud KMS 鍵] チェックボックスをオンにします。
- [鍵のタイプ] プルダウン メニューで [Cloud KMS] を選択し、CMEK を選択します。
鍵が表示されない場合は、[鍵のリソース名を入力] をクリックして、使用する鍵のリソース名を指定します。たとえば、[Key resource name] フィールドに「
projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key
」と入力し、[SAVE] をクリックします。必要に応じて、ラベルを使用して Datastream のリソースを整理します。
- ラベルを作成するには、[ラベルを追加] をクリックして、ラベルの Key-Value ペアを入力します。
- ラベルを削除するには、そのラベルがある行の右側のゴミ箱アイコンをクリックします。
必要に応じて、ストリームのアラート ポリシーを追加します。アラート ポリシーでは、ストリーム障害に関する通知のタイミングと方法を定義します。
- アラート ポリシーを作成するには、[アラート ポリシーを追加] をクリックします。
- Cloud Monitoring に [アラート ポリシーを作成] ページが表示されます。このページでは、ストリームが失敗した場合のアラート ポリシーを定義します。
アラート ポリシーの詳細については、指標ベースのアラート ポリシーの管理をご覧ください。
ストリームに環境を準備する方法が反映されるように、自動的に生成される必須の前提条件を確認します。これらの前提条件には、移行元データベースの構成方法や移行先に接続する方法が含まれます。この手順でこれらの前提条件を完了することをおすすめしますが、これらの前提条件は、ストリームをテストまたは開始する前であればいつでも完了できます。これらの前提条件の詳細については、ソースをご覧ください。
[続行] をクリックします移行元データベースのタイプに応じて、[ストリームの作成] ページの [接続プロファイルを定義する] パネルが表示されます。
ソース接続プロファイルに関する情報の指定
Oracle、MySQL、SQL Serverまたは MySQL のソース接続プロファイルを作成した場合、接続プロファイルのリストから選択します。
ソース接続プロファイルを作成していない場合は、プルダウン リストの下部にある [接続プロファイルの作成] をクリックして構成を作成してから、接続プロファイルの作成と同じ手順を行います。
[テストを実行] をクリックして、移行元データベースと Datastream が相互に通信できることを確認します。
テストに失敗した場合、接続プロファイルに関連する問題が表示されます。トラブルシューティングの手順については、問題を診断するのページをご覧ください。必要な変更を行って問題を修正し、再度テストを行います。
[続行] をクリックします。[ストリームの作成] ページの [ストリーム ソースの構成] パネルが表示されます。
ストリームのソース データベースに関する情報の構成
PostgreSQL ソース データベースを構成する
ソース データベースとして PostgreSQL を選択した場合は、レプリケーション プロパティを定義する必要があります。
- [レプリケーション プロパティ] セクションで、次のプロパティを指定します。
- [レプリケーション スロット名] フィールドに、このストリーム専用に作成したスロットの名前を入力します。データベースサーバーはこのスロットを使用して、イベントを Datastream に送信します。
- [パブリケーション名] フィールドに、データベースで作成したパブリケーションの名前を入力します。パブリケーションは、このストリームを使用して変更を複製するすべてのテーブルのグループです。
- ソース データベースを構成するの手順に沿って操作します。
ソース データベースを構成する
[含めるオブジェクトを選択] セクションで、[含めるオブジェクト] プルダウン メニューを使用して、DataStream が移行先に転送する移行元データベースのテーブルとスキーマを特定します。
- Datastream ですべてのテーブルとスキーマを転送する場合は、[すべてのスキーマのすべてのテーブル] を選択します。
Datastream で特定のテーブルとスキーマのみを転送する場合は、[特定のスキーマとテーブル] を選択し、Datastream に pull するスキーマとテーブルのチェックボックスをオンにします。
Datastream で転送するテーブルとスキーマのテキスト定義を提供する場合は、[カスタム] を選択し、[Object matching criteria] フィールド内で Datastream に pull するスキーマとテーブルを入力します。
データベースにテーブルとスキーマが大量にある場合は、pull するオブジェクトのリストにテーブルやスキーマが含まれていない可能性があるため、[カスタム] オプションを使用することをおすすめします。
必要に応じて、[除外するオブジェクトを選択] ノードを展開します。[除外するオブジェクト] フィールドに、Datastream による pull を制限するソース データベース内のテーブルとスキーマを入力します。[除外するオブジェクト] リストは [含めるオブジェクト] リストよりも優先されます。オブジェクトが追加リストと除外リストの両方の条件を満たしている場合、そのオブジェクトはストリームから除外されます。
選択したソースに応じて、ストリームの CDC メソッドを指定します。
- SQL Server ソースの場合:
- トランザクション ログ: この方法を選択すると、データベース ログから直接変更を処理できます。この手法は最高のパフォーマンスを提供し、より効率的ですが、追加の構成手順が必要になります。
- 変更テーブル: 専用の変更テーブルからの変更を処理するには、この方法を選択します。この方法は制限が少なく構成も容易ですが、トランザクション ログ方式よりもスループットが低く、データベースの負荷が高くなります。ソース SQL Server データベースの構成の詳細については、ソース SQL Server データベースを構成するをご覧ください。
- MySQL ソースの場合:
- GTID(グローバル トランザクション ID)ベースのレプリケーション(プレビュー): Datastream でフェイルオーバーをサポートし、データベース クラスタの変更に関係なくシームレスなレプリケーションを提供する場合に、この方法を選択します。
- Binlog ベースのレプリケーション: この方法を選択すると、選択したデータベース インスタンスのバイナリログ ファイルから変更を直接読み取ってレプリケートできます。この CDC 方法を使用して、実行中のストリームを別のソース インスタンスまたはレプリカに切り替えることはできません。
- Oracle ソースの場合:
- LogMiner: LogMiner API を使用してアーカイブされた REDO ログをクエリするには、この方法を選択します。LogMiner は、暗号化オプションや圧縮オプションなど、Oracle で使用可能なほとんどのオプションをサポートしています。
- バイナリ リーダー(プレビュー): Oracle ログから変更を直接抽出するには、この方法を選択します。これにより、大規模な Oracle データベースのレプリケーションを高速化し、レイテンシとオーバーヘッドを削減できます。このオプションを選択すると、追加のプルダウンが表示されます。Oracle ログファイルにアクセスする方法を選択します。
- Automatic Storage Management(ASM): データベースが ASM を使用している場合は、このオプションを選択します。[Enable ASM access for binary reader] チェックボックスがオンになっていること、ソース接続プロファイルに ASM インスタンスの詳細が入力されていることを確認します。
- データベース ディレクトリ: ログファイルの保存に ASM を使用しない場合は、このオプションを選択します。データベース ディレクトリを選択する場合は、REDO ログとアーカイブ ログのディレクトリ名を指定する必要があります。
- 必要に応じて、[履歴データのバックフィル モードを選択] ノードを展開し、次のいずれかを選択します。
データの変更に加えて、既存のすべてのデータを移行先にストリーミングするには、[自動] オプションを選択します。
[自動バックフィルから除外されたオブジェクト] フィールドに、DataStream が移行先にバックフィルするのを制限する移行元データベース内のテーブルとスキーマを入力します。
- データの変更のみを移行先にストリーミングするには、[手動] オプションを選択します。
- SQL Server ソースの場合:
[続行] をクリックします宛先タイプに応じて、[ストリームの作成] ページの [接続プロファイルを定義する] パネルが表示されます。
宛先接続プロファイルの選択
宛先接続プロファイルを作成した場合は、接続プロファイルのリストから選択します。
宛先接続プロファイルを作成していない場合は、プルダウン リストの下部にある [接続プロファイルの作成] をクリックして構成を作成してから、接続プロファイルの作成と同じ手順を行います。
[続行] をクリックします。[ストリームの作成] ページの [ストリームの移行先の構成] パネルが表示されます。
ストリームの転送先に関する情報の構成
このセクションでは、BigQuery または Cloud Storage の宛先を構成するために必要な情報を説明します。
BigQuery の宛先
[Datastream が BigQuery データセットにストリーミングする方法を指定する] セクションで、[スキーマのグループ化] プルダウンから次のいずれかのオプションを選択します。
スキーマごとのデータセット: Datastream は、スキーマ名に基づいてソーススキーマごとに BigQuery データセットを作成します。
このオプションを選択すると、Datastream は、ソース データベース内のすべてのスキーマに対して、ストリームを含むプロジェクトにデータセットを作成します。
また、[スキーマごとのデータセット] オプションを選択した場合は、次の情報も指定する必要があります。
- [ロケーション タイプ] セクションで、BigQuery にデータを保存する場所を指定します。単一の地理的なロケーションを指定する場合は [リージョン] を選択し、2 つ以上のリージョンを含む広いエリアを指定する場合は [マルチリージョン] を選択します。費用とパフォーマンスの最適化を優先する場合は、[リージョン] を選択し、管理している他の Google Cloud リソースと一緒にデータセットを保持します。割り当て上限を引き上げたい場合は、[マルチリージョン] を選択して、BigQuery がグループ内の複数のリージョンを使用できるようにします。[リージョン] を選択すると、このフィールドにはストリームに選択したリージョンがデフォルトで設定されます。
- (省略可)[データセットの接頭辞] フィールドに、ストリームによって作成されるデータセットの接頭辞を定義します。指定した文字列は、ソース スキーマ名に追加されます。たとえば、スキーマが
<mySchema>
で、データセットの接頭辞を<myPrefix>
として定義すると、Datastream は<myPrefix><mySchema>
というデータセットを作成します。 - [詳細な暗号化オプションを表示する] セクションを開きます。
- Google マネージドまたはお客様マネージドの暗号鍵を選択して、BigQuery でのデータの暗号化方法を指定します。
すべてのスキーマに単一のデータセット: Datastream は、指定した既存の BigQuery データセット内にすべてのテーブルを作成します。Datastream が作成する各テーブルの名前は、ソース スキーマ名とテーブル名を組み合わせてアンダースコアで区切って付けられます(例:
)。使用可能なデータセットはリージョンごとにグループ化されます。新しいデータセットを作成することもできます。<mySchemaName>_<myTableName>
ストリーム書き込みモードを指定します。書き込みモードを選択して、BigQuery でのデータの書き込みと処理の方法を定義します。
- 結合: データソースとデータを同期する場合は、このオプションを選択します。
- 追加のみ: 変更イベントの過去のデータはすべて保持する場合に選択します。
データ未更新期間の上限の指定。前の手順で [結合] モードを選択した場合にのみ使用できます。上限を選択して、BigQuery クエリのパフォーマンスおよび費用と、データの鮮度の間でバランスを取ります。 BigQuery は、未更新に関する制限事項に従って、バックグラウンドで継続的に、またはクエリの実行時に変更を適用します。未更新期間の上限が短くなる(データの更新頻度が上がる)と、BigQuery での処理費用が増加する可能性があります。
[続行] をクリックします[ストリームの作成] ページの [ストリームの詳細の確認と作成] パネルが表示されます。
Cloud Storage の宛先
[ストリームのパス接頭辞] フィールドに、Datastream が移行元データベースからスキーマ、テーブル、データを転送する移行先バケットのフォルダを入力します。
たとえば、Datastream で移行元データベースから移行先バケットの
/root/example
フォルダにデータを転送する場合は、[ストリームのパス接頭辞] フィールドに/root/example
を入力します。[出力形式] フィールドで、Cloud Storage に書き込まれるファイルの形式を選択します。
省略可。JSON 形式を選択すると、2 つのチェックボックスが表示されます。
- ファイルパスに統合型スキーマ ファイルを含める: このチェックボックスをオンにすると、Datastream は JSON データファイルと Avro スキーマ ファイルの 2 つのファイルを Cloud Storage に書き込みます。スキーマ ファイルは、データファイルと同じ名前で、拡張子は
.schema
です。このチェックボックスをオンにしないと、データストリームは JSON データファイルのみを Cloud Storage に書き込みます。このチェックボックスは、デフォルトではオンになっていません。 - gzip 圧縮を有効にする: このチェックボックスをオンにすると、Datastream は
gzip
ユーティリティを使用して、Datastream が Cloud Storage に書き込むファイルを圧縮します。このチェックボックスをオンにしないと、DataStream はファイルを圧縮せずに Cloud Storage に書き込みます。このチェックボックスはデフォルトでオンになっています。
- ファイルパスに統合型スキーマ ファイルを含める: このチェックボックスをオンにすると、Datastream は JSON データファイルと Avro スキーマ ファイルの 2 つのファイルを Cloud Storage に書き込みます。スキーマ ファイルは、データファイルと同じ名前で、拡張子は
[続行] をクリックします[ストリームの作成] ページの [ストリームの詳細と作成] パネルが表示されます。
ストリームの作成
- ストリームの詳細と、ストリームが移行元データベースから移行先にデータを転送するために使用する移行元と移行先の接続プロファイルを確認します。
[検証を実行] をクリックしてストリームを検証します。ストリームを検証すると、Datastream は移行元が適切に構成されていることを確認し、ストリームが移行元と移行先の両方に接続できること、ストリームのエンドツーエンド構成を検証します。
ソース データベースが Oracle の場合、Datastream は次のチェックを実行します。
チェック 説明 オブジェクト リストの有効性 Datastream は、除外リストが追加リストを含んでいないことを確認します。 転送 SSH トンネルの接続 Datastream は、転送 SSH トンネルを使用して踏み台インスタンスに接続できることを確認します。 Oracle データベースへの接続 Datastream は、ソースの Oracle データベースに接続できることを確認します。 Oracle のユーザー権限 Datastream は、ソース データベースへの接続に使用するユーザーに、データベースからスキーマ、テーブル、データを取得するために必要なすべての権限があることを確認します。これにより、Datastream はこの情報を送信先にストリーミングできます。 ロギングモードの構成 Datastream は、Oracle データベースのロギング モードが ARCHIVELOG に設定されていることを確認します。 追加のロギング構成 Datastream は、送信元から送信先にストリーミングされるデータベース テーブルに対して補助ロギングが有効になっていることを確認します。 Oracle CDC の構成 Datastream は、選択した CDC メソッドがデータベース構成に準拠していることを確認します。 アーカイブ ログファイルの構成 Datastream は、ソースでアーカイブ ロギングが構成され、アーカイブ ログファイルが存在することを確認します。 Cloud Storage の権限(Cloud Storage の送信先の場合) Datastream は、Cloud Storage の送信先バケットへの書き込みに必要な権限があることを確認します。 ソース データベースが MySQL の場合、Datastream は次のチェックを実行します。
チェック 説明 レプリケーションの権限 Datastream は、MySQL データベースを複製する権限があることを確認します。 データベースのバージョン Datastream は、MySQL データベースのバージョンがサポートされていることを確認します。サポートされているエディションについては、バージョンをご覧ください。 バイナリログ形式の構成 Datastream は、MySQL データベースのバイナリログの形式が ROW
に設定されていることを確認します。バイナリログが有効 Datastream は、バイナリログ ファイルが正しく構成され、ログファイルが存在することを確認します。 バイナリログの行イメージの構成 Datastream は、binlog 行イメージが FULL
に設定されていることを確認します。バイナリログ圧縮が無効 Datastream は、バイナリログ圧縮が無効になっていることを確認します。 ログレプリカまたはスレーブの更新が有効になっている Datastream は、ログレプリカまたはスレーブの更新が有効になっていることを確認します。 GTID モードの構成( applies only to GTID-based CDC
)Datastream は、GTID ベースのレプリケーションが使用されている場合、GTID モードが ON
に設定されていることを確認します。GtidSet にタグ付けされた GTID( applies only to GTID-based CDC
)が含まれていないDatastream は、GTID セットにタグ付けされた GTID が含まれていないことを確認します。 Cloud Storage 権限(Cloud Storage の送信先の場合) Datastream は、Cloud Storage の送信先バケットへの書き込みに必要な権限があることを確認します。 警告の確認 説明 ログの有効期限の日数、ログの有効期限の秒数、バイナリログの保持時間の構成 Datastream は、 expire_logs_days
、binlog_expire_logs_seconds
、binlog retention hours
がそれぞれ7
、604800
、168
より大きい値に構成されていることを確認します。最大許容パケット数の構成 Datastream は、 max_allowed_packet
が 1 GB に設定されていることを確認します。GTID 整合性または GTID 厳格モードを適用する( applies only to GTID-based CDC
)Datastream は、GTID 整合性または GTID 厳密モードが有効になっていることを確認します。 ソース データベースが PostgreSQL の場合、Datastream は次のチェックを実行します。
チェック 説明 PostgreSQL データベースへの接続 Datastream は、ソースの PostgreSQL データベースに接続できることを確認します。 論理デコーディングが有効になっている Datastream は、PostgreSQL データベースの wal_level
パラメータがlogical
に設定されていることを確認します。レプリケーション スロットの構成 Datastream は、PostgreSQL レプリケーション スロットが存在し、アクティブであるかどうか、Datastream にスロットへのアクセスに必要な権限があるかどうか、スロットが正しく構成されているかどうかを確認します。 パブリケーションの設定 Datastream は、パブリケーションが存在し、ストリーム用に複製するテーブルがパブリケーションに含まれていることを確認します。 バックフィル権限 Datastream は、過去のデータのバックフィルに必要なテーブルが存在し、テーブルの読み取りに必要な権限があることを確認します。 ソース データベースが SQL Server の場合、Datastream は次のチェックを実行します。
チェック 説明 SQL Server のエディション Datastream は、ソースの SQL Server データベース エディションがサポートされていることを確認します。サポートされているエディションについては、バージョンをご覧ください。 SQL Server ユーザーの権限 Datastream は、ユーザーにソース SQL Server データベースへのアクセスに必要な権限があることを確認します。 SQL Server CDC が有効 Datastream は、データベースとストリームに含まれるすべてのテーブルで CDC が有効になっているかどうかを確認します。 SQL Server データベースの検証 Datastream は、ソース データベースが正しく構成されているかどうか、すべてのレプリケーション要件が満たされているかどうか、列にサポートされていないデータ型が含まれていないかどうかを確認します。 Cloud Storage または BigQuery の権限 Datastream は、ユーザーに宛先への書き込みに必要な権限があることを確認します。
すべての検証チェックに合格したら、[作成して開始] をクリックしてストリームを作成してすぐに開始するか、[作成] をクリックしてストリームを作成してすぐに開始しないでください。
ライブ配信をすぐに開始しない場合は、[ストリーム] ページで [開始] をクリックして開始できます。
ストリームの作成後、そのストリームの概要と詳細情報を表示できます。
次のステップ
- ストリームの詳細については、ストリームのライフサイクルをご覧ください。
- ストリームを実行する方法については、ストリームを実行するをご覧ください。
- ストリームを変更する方法については、ストリームを変更するをご覧ください。
- ストリームを復元する方法については、ストリームを復元するをご覧ください。