ストリームの作成

概要

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

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

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

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

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

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

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

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

ストリームの設定の定義

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

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

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

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

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

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

    宛先の種類

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

    暗号化

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

    1. [CMEK を使用する] チェックボックスをオンにします。
    2. [CMEK を選択] プルダウン メニューから、CMEK を選択します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PostgreSQL ソース データベースの構成

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

  1. [レプリケーションのプロパティ] セクションで、次のプロパティを指定します。
    1. [レプリケーション スロット名] フィールドに、このストリーム専用に作成したスロットの名前を入力します。データベースサーバーはこのスロットを使用して、イベントを Datastream に送信します。
    2. [パブリケーション名] フィールドに、データベースで作成したパブリケーションの名前を入力します。パブリケーションは、このストリームを使用して変更を複製するすべてのテーブルのグループです。
  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 クエリのパフォーマンスおよび費用と、データの鮮度の間でバランスを取ります。 BigQuery は、未更新に関する制限事項に従って、バックグラウンドで継続的に、またはクエリの実行時に変更を適用します。未更新期間の上限が短くなる(データの更新頻度が上がる)と、BigQuery での処理費用が増加する可能性があります。

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

Cloud Storage の宛先

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

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

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

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

    1. ファイルパスに統合型スキーマ ファイルを含める: このチェックボックスをオンにすると、Datastream は JSON データファイルと Avro スキーマ ファイルの 2 つのファイルを Cloud Storage に書き込みます。スキーマ ファイルは、データファイルと同じ名前で、拡張子は .schema です。このチェックボックスをオンにしない場合、Datastream は 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. すべての検証チェックに合格したら、[CREATE & START] をクリックしてストリームを作成してすぐに開始するか、[CREATE] をクリックしてすぐに開始せずにストリームを作成します。

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

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