ストリームの作成

概要

このセクションでは、ストリームを作成する方法について説明します。Datastream は、このストリームを使用して移行元 Oracle、MySQL、SQL Server(プレビュー)または PostgreSQL データベースから BigQuery または Cloud Storage にデータを転送します。

ストリームの作成には以下が含まれます。

  • ストリームの設定を定義します。
  • 移行元の OracleMySQLSQL Server、または PostgreSQL データベース(ソース接続プロファイル)に作成した接続プロファイルを選択します。あるいは、ソース接続プロファイルを作成していない場合は、作成します。
  • Datastream の移行元データベースでテーブルとスキーマを指定して、ストリームのソース データベースに関する情報を構成します。
    • 宛先への転送ができる。
    • 移行先への転送は制限されています。
  • Datastream が過去のデータをバックフィルするのか、進行中の変更を移行先にストリーミングするのか、データへの変更のみをストリーミングするのかを決定します。過去のバックフィルを有効にする場合は、必要に応じて、Datastream が移行先にバックフィルしないソース データベース内のスキーマとテーブルを指定できます。

  • BigQuery または Cloud Storage 用に作成した接続プロファイル(移行先の接続プロファイル)を選択します。または、移行先の接続プロファイルを作成します(まだ作成していない場合)。

  • ストリームの宛先に関する情報の構成これには以下の情報が含まれます。

    • BigQuery 向け
      • Datastream が移行元データベースからスキーマ、テーブル、データを複製するデータセット。
    • Cloud Storage 関連:
      • Datastream が移行元 Oracle データベースからスキーマ、テーブル、データを転送する移行先バケットのフォルダ。
  • ストリームを検証して、ストリームが正常に実行されることを確認します。ストリームの検証では、次のことを確認します。

    • データストリームがソースからデータをストリーミングできるようにソースが適切に構成されているかどうか
    • ストリームがソースと宛先の両方に接続できるかどうか

    • ストリームのエンドツーエンド構成

ストリームの設定の定義

  1. Google Cloud Console の [ストリーム] ページに移動します。

    [ストリーム] ページに移動

  2. [ストリームを作成] をクリックします。

  3. 次の表を使用して、[ストリームの作成] ページの [ストリームの詳細の定義] セクションのフィールドに入力します。

    フィールド説明
    ストリーム名ゲートウェイの表示名を入力します。
    ストリーム IDこのフィールドは、入力したストリーム名に基づいて Datastream が自動的に入力します。自動生成された ID を保持することも、変更することもできます。
    リージョンストリームが保存されるリージョンを選択します。ストリームは、他のすべてのリソースと同様にリージョンに保存されます。リージョンの選択は、ストリームがソース データベースまたは宛先に接続できるかどうかには影響しませんが、リージョンでダウンタイムが発生した場合の可用性に影響する可能性があります。
    ソースタイプ

    移行元の OracleMySQLSQL Server または PostgreSQL データベースの接続プロファイルの作成時に指定したプロファイル タイプを選択します。ソース データベースの接続プロファイルを作成していない場合は、ここで作成できます。

    宛先の種類BigQuery または Cloud Storage の宛先の接続プロファイルを作成したときに指定したプロファイル タイプを選択します。宛先の接続プロファイルを作成していない場合は、ここで作成できます。
    暗号化

    デフォルトでは、データは Google Cloud が管理する鍵で暗号化されます。ご自身で暗号化を管理する場合は、顧客管理の暗号鍵(CMEK)を使用します。

    1. [Cloud KMS 鍵] チェックボックスをオンにします。
    2. [鍵のタイプ] プルダウン メニューで [Cloud KMS] を選択し、CMEK を選択します。

    鍵が表示されない場合は、[鍵のリソース名を入力] をクリックして、使用する鍵のリソース名を指定します。たとえば、[Key resource name] フィールドに「projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key」と入力し、[SAVE] をクリックします。

  4. 必要に応じて、ラベルを使用して Datastream のリソースを整理します。

    1. ラベルを作成するには、[ラベルを追加] をクリックして、ラベルの Key-Value ペアを入力します。
    2. ラベルを削除するには、そのラベルがある行の右側のゴミ箱アイコンをクリックします。
  5. 必要に応じて、ストリームのアラート ポリシーを追加します。アラート ポリシーでは、ストリーム障害に関する通知のタイミングと方法を定義します。

    1. アラート ポリシーを作成するには、[アラート ポリシーを追加] をクリックします。
    2. Cloud Monitoring に [アラート ポリシーを作成] ページが表示されます。このページでは、ストリームが失敗した場合のアラート ポリシーを定義します。

    アラート ポリシーの詳細については、指標ベースのアラート ポリシーの管理をご覧ください。

  6. ストリームに環境を準備する方法が反映されるように、自動的に生成される必須の前提条件を確認します。これらの前提条件には、移行元データベースの構成方法や移行先に接続する方法が含まれます。この手順でこれらの前提条件を完了することをおすすめしますが、これらの前提条件は、ストリームをテストまたは開始する前であればいつでも完了できます。これらの前提条件の詳細については、ソースをご覧ください。

  7. [続行] をクリックします移行元データベースのタイプに応じて、[ストリームの作成] ページの [接続プロファイルを定義する] パネルが表示されます。

ソース接続プロファイルに関する情報の指定

  1. OracleMySQLSQL Serverまたは PostgreSQL のソース接続プロファイルを作成した場合、接続プロファイルのリストから選択します。

    ソース接続プロファイルを作成していない場合は、プルダウン リストの下部にある [接続プロファイルの作成] をクリックして構成を作成してから、接続プロファイルの作成と同じ手順を行います。

  2. [テストを実行] をクリックして、移行元データベースと Datastream が相互に通信できることを確認します。

    テストに失敗した場合、接続プロファイルに関連する問題が表示されます。トラブルシューティングの手順については、問題を診断するのページをご覧ください。必要な変更を行って問題を修正し、再度テストを行います。

  3. [続行] をクリックします。[ストリームの作成] ページの [ストリーム ソースの構成] パネルが表示されます。

ストリームのソース データベースに関する情報の構成

PostgreSQL ソース データベースを構成する

ソース データベースとして PostgreSQL を選択した場合は、レプリケーション プロパティを定義する必要があります。

  1. [レプリケーション プロパティ] セクションで、次のプロパティを指定します。
    1. [レプリケーション スロット名] フィールドに、このストリーム専用に作成したスロットの名前を入力します。データベースサーバーはこのスロットを使用して、イベントを Datastream に送信します。
    2. [パブリケーション名] フィールドに、データベースで作成したパブリケーションの名前を入力します。パブリケーションは、このストリームを使用して変更を複製するすべてのテーブルのグループです。
  2. ソース データベースを構成するの手順に沿って操作します。

SQL Server ソース データベースを構成する

ソース データベースとして SQL Server を選択した場合は、CDC メソッドを定義する必要があります。

  1. [CDC メソッド] プルダウン メニューで、ソース データベースの構成に一致する CDC メソッドを選択します。

    • トランザクション ログ: この方法を選択すると、データベース ログから直接変更を処理できます。この手法は最高のパフォーマンスを提供し、より効率的ですが、追加の構成手順が必要になります。
    • 変更テーブル: 専用の変更テーブルからの変更を処理するには、この方法を選択します。この方法は制限が少なく構成も容易ですが、トランザクション ログ方式よりもスループットが低く、データベースの負荷が高くなります。

    ソース SQL Server データベースの構成の詳細については、ソース SQL Server データベースを構成するをご覧ください。

  2. ソース データベースを構成するの手順に沿って操作します。

ソース データベースを構成する

  1. [含めるオブジェクトを選択] セクションで、[含めるオブジェクト] プルダウン メニューを使用して、DataStream が移行先に転送する移行元データベースのテーブルとスキーマを特定します。

    1. Datastream ですべてのテーブルとスキーマを転送する場合は、[すべてのスキーマのすべてのテーブル] を選択します。
    2. Datastream で特定のテーブルとスキーマのみを転送する場合は、[特定のスキーマとテーブル] を選択し、Datastream に pull するスキーマとテーブルのチェックボックスをオンにします。

    3. Datastream で転送するテーブルとスキーマのテキスト定義を提供する場合は、[カスタム] を選択し、[Object matching criteria] フィールド内で Datastream に pull するスキーマとテーブルを入力します。

      データベースにテーブルとスキーマが大量にある場合は、pull するオブジェクトのリストにテーブルやスキーマが含まれていない可能性があるため、[カスタム] オプションを使用することをおすすめします。

  2. 必要に応じて、[除外するオブジェクトを選択] ノードを展開します。[除外するオブジェクト] フィールドに、Datastream による pull を制限するソース データベース内のテーブルとスキーマを入力します。[除外するオブジェクト] リストは [含めるオブジェクト] リストよりも優先されます。オブジェクトが追加リストと除外リストの両方の条件を満たしている場合、そのオブジェクトはストリームから除外されます。

  3. 必要に応じて、[履歴データのバックフィル モードを選択] ノードを展開し、次のいずれかを選択します。
    1. データの変更に加えて、既存のすべてのデータを移行先にストリーミングするには、[自動] オプションを選択します。

      [自動バックフィルから除外されたオブジェクト] フィールドに、DataStream が移行先にバックフィルするのを制限する移行元データベース内のテーブルとスキーマを入力します。

    2. データの変更のみを移行先にストリーミングするには、[手動] オプションを選択します。
  4. [続行] をクリックします宛先タイプに応じて、[ストリームの作成] ページの [接続プロファイルを定義する] パネルが表示されます。

宛先接続プロファイルの選択

  1. 宛先接続プロファイルを作成した場合は、接続プロファイルのリストから選択します。

    宛先接続プロファイルを作成していない場合は、プルダウン リストの下部にある [接続プロファイルの作成] をクリックして構成を作成してから、接続プロファイルの作成と同じ手順を行います。

  2. [続行] をクリックします。[ストリームの作成] ページの [ストリームの移行先の構成] パネルが表示されます。

ストリームの転送先に関する情報の構成

送信先としての BigQuery

  1. [Datastream から BigQuery への接続を構成する] で、Datastream が BigQuery データセットにストリーミングする方法を指定します。次のオプションのいずれかを選択します。

    • スキーマごとのデータセット: Datastream は、スキーマ名に基づいてソーススキーマごとに BigQuery データセットを作成します。

      このオプションを選択すると、Datastream は、ソース データベース内のすべてのスキーマに対して、ストリームを含むプロジェクトにデータセットを作成します。

      さらに、[スキーマごとのデータセット] オプションを選択した場合:

      1. [ロケーション] フィールドに、新しいデータセットを作成するリージョンを入力します。
      2. (省略可)[接頭辞] フィールドで、ストリームによって作成されるデータセットの接頭辞を定義します。指定した文字列は、ソース スキーマ名に追加されます。たとえば、スキーマが <mySchema> で、データセットの接頭辞を <myPrefix> として定義すると、Datastream は <myPrefix><mySchema> というデータセットを作成します。
      3. Google マネージドまたはお客様マネージドの暗号鍵を選択して、BigQuery でのデータの暗号化方法を指定します。
    • すべてのスキーマに単一のデータセット: Datastream は、指定した既存の BigQuery データセット内にすべてのテーブルを作成します。Datastream が作成する各テーブルの名前は、ソース スキーマ名とテーブル名を組み合わせて、アンダースコアで区切って指定します(例: <mySchemaName>_<myTableName>)。

  2. ストリーム書き込みモードを指定します。書き込みモードを選択して、BigQuery でのデータの書き込みと処理の方法を定義します。

    • 結合: データソースとデータを同期する場合は、このオプションを選択します。
    • 追加のみ: 変更イベントの過去のデータをすべて保持する場合に選択します。
  3. データ未更新期間の上限の指定。前の手順で [結合] モードを選択した場合にのみ使用できます。上限を選択して、BigQuery クエリのパフォーマンスおよび費用と、データの鮮度の間でバランスを取ります。 BigQuery は、未更新に関する制限事項に従って、バックグラウンドで継続的に、またはクエリの実行時に変更を適用します。未更新期間の上限が短くなる(データの更新頻度が上がる)と、BigQuery での処理費用が増加する可能性があります。

  4. [続行] をクリックします[ストリームの作成] ページの [ストリームの詳細の確認と作成] パネルが表示されます。

Cloud Storage の宛先

  1. [ストリームのパス接頭辞] フィールドに、Datastream が移行元データベースからスキーマ、テーブル、データを転送する移行先バケットのフォルダを入力します。

    たとえば、Datastream で移行元データベースから移行先バケットの /root/example フォルダにデータを転送する場合は、[ストリームのパス接頭辞] フィールドに /root/example を入力します。

  2. [出力形式] フィールドで、Cloud Storage に書き込まれるファイルの形式を選択します。

  3. 省略可。JSON 形式を選択すると、2 つのチェックボックスが表示されます。

    1. ファイルパスに統合型スキーマ ファイルを含める: このチェックボックスをオンにすると、Datastream は JSON データファイルと Avro スキーマ ファイルの 2 つのファイルを Cloud Storage に書き込みます。スキーマ ファイルは、データファイルと同じ名前で、拡張子は .schema です。このチェックボックスをオンにしないと、データストリームは JSON データファイルのみを Cloud Storage に書き込みます。このチェックボックスは、デフォルトではオンになっていません。
    2. gzip 圧縮を有効にする: このチェックボックスをオンにすると、Datastream は gzip ユーティリティを使用して、Datastream が Cloud Storage に書き込むファイルを圧縮します。このチェックボックスをオンにしないと、DataStream はファイルを圧縮せずに Cloud Storage に書き込みます。このチェックボックスはデフォルトでオンになっています。
  4. [続行] をクリックします[ストリームの作成] ページの [ストリームの詳細と作成] パネルが表示されます。

ストリームの作成

  1. ストリームの詳細と、ストリームが移行元データベースから移行先に転送されるために使用する移行元と移行先の接続プロファイルを確認します。
  2. [検証を実行] をクリックしてストリームを検証します。ストリームを検証すると、Datastream は移行元が適切に構成されていることを確認し、ストリームが移行元と移行先の両方に接続できること、ストリームのエンドツーエンド構成を検証します。

    1. ソース データベースが Oracle の場合、Datastream は次のチェックを実行します。

      チェック説明
      オブジェクト リストの有効性Datastream は、除外リストが追加リストに含まれていないことを確認します。
      転送 SSH トンネルの接続Datastream は、転送 SSH トンネルを使用して踏み台インスタンスに接続できることを確認します。
      Oracle データベースへの接続Datastream は、移行元 Oracle データベースに接続できることを確認します。
      Oracle のユーザー権限Datastream は、ソース データベースへの接続に使用するユーザーに、データベースからスキーマ、テーブル、データを取得するために必要なすべての権限があることを確認します。これにより、Datastream はこの情報を送信先にストリーミングできます。
      ロギングモードの構成Datastream は、Oracle データベースのロギング モードが ARCHIVELOG に設定されていることを確認します。
      追加のロギング構成Datastream は、送信元から送信先にストリーミングされるデータベース テーブルに対して補助ロギングが有効になっていることを確認します。
      アーカイブ ログファイルの構成Datastream は、ソースでアーカイブ ロギングが構成され、アーカイブ ログファイルが存在することを確認します。
      Cloud Storage の権限(Cloud Storage の送信先の場合)Datastream は、Cloud Storage の送信先バケットへの書き込みに必要な権限があることを確認します。
    2. 移行元データベースが MySQL の場合、Datastream は次のチェックを実行します。

      チェック説明
      オブジェクト リストの有効性Datastream は、除外リストが追加リストに含まれていないことを確認します。
      転送 SSH トンネルの接続Datastream は、転送 SSH トンネルを使用して踏み台インスタンスに接続できることを確認します。
      MySQL データベースへの接続Datastream は、ソース MySQL データベースに接続できることを確認します。
      バイナリログが有効Datastream は、バイナリログ ファイルが正しく構成され、ログファイルが存在することを確認します。
      バイナリログ形式の構成Datastream は、MySQL データベースのバイナリログの形式が ROW に設定されていることを確認します。
      レプリケーションの権限Datastream は、MySQL データベースを複製する権限があることを確認します。
      Cloud Storage 権限(Cloud Storage の送信先の場合)Datastream は、Cloud Storage の送信先バケットへの書き込みに必要な権限があることを確認します。
    3. ソース データベースが PostgreSQL の場合、Datastream は次のチェックを実行します。

      チェック説明
      PostgreSQL データベースへの接続Datastream は、ソースの PostgreSQL データベースに接続できることを確認します。
      論理デコーディングが有効になっているDatastream は、PostgreSQL データベースの wal_level パラメータが logical に設定されていることを確認します。
      レプリケーション スロットの構成Datastream は、PostgreSQL レプリケーション スロットが存在し、アクティブであるかどうか、Datastream にスロットへのアクセスに必要な権限が付与されているかどうか、スロットが正しく構成されているかどうかを確認します。
      パブリケーションの設定Datastream は、パブリケーションが存在し、ストリーム用に複製するテーブルがパブリケーションに含まれていることを確認します。
      バックフィル権限Datastream は、過去のデータのバックフィルに必要なテーブルが存在し、テーブルの読み取りに必要な権限があることを確認します。
    4. ソース データベースが 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 は、ユーザーに宛先への書き込みに必要な権限があることを確認します。
  3. すべての検証チェックに合格したら、[作成して開始] をクリックしてストリームを作成してすぐに開始するか、[作成] をクリックしてストリームを作成してすぐに開始しないでください。

    ライブ配信をすぐに開始しない場合は、[ストリーム] ページで [開始] をクリックして開始できます。

ストリームの作成後、そのストリームの概要と詳細情報を表示できます。

次のステップ