Oracle データベースから BigQuery へのデータの複製


このチュートリアルでは、Cloud Data Fusion Replication を使用して、変更されたデータを Oracle データベースから BigQuery データセットに継続的に複製するジョブをデプロイする方法を説明します。この機能は Datastream を利用しています。

目標

このチュートリアルの内容は次のとおりです。

  1. 追加ロギングを有効にするように Oracle データベースを構成します。
  2. Cloud Data Fusion Replication ジョブを作成して実行します。
  3. BigQuery で結果を表示します。

費用

このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。 新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

複製が実行されると、Dataproc クラスタと Cloud Storage に対して課金され、Datastream と BigQuery の処理料金が発生します。これらの費用を最適化するには、BigQuery 定額料金を適用することを強くおすすめします。

準備

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Cloud Data Fusion, Dataproc, Datastream, BigQuery, and Cloud Storage API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. Cloud Data Fusion, Dataproc, Datastream, BigQuery, and Cloud Storage API を有効にします。

    API を有効にする

  8. バージョン 6.3.0 以降でパブリック Cloud Data Fusion インスタンスを作成します。プライベート インスタンスを作成する場合は、VPC ネットワーク ピアリングを設定します。
    • インスタンスを作成するときに、[アクセラレータを追加] をクリックし、[レプリケーション] チェックボックスをオンにして、レプリケーションを有効にします。
    • 既存のインスタンスで有効にするには、レプリケーションを有効にするをご覧ください。

必要なロール

Oracle データベースに接続するために必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。

  • クラスタを含むプロジェクトの Dataproc サービス アカウントに対する Dataproc ワーカー roles/dataproc.worker)ロール
  • クラスタを含むプロジェクトの Dataproc サービス アカウントに対する Cloud Data Fusion 実行者ロール
  • Cloud Data Fusion サービス アカウントと Dataproc サービス アカウントの DataStream 管理者roles/datastream.admin

ロールの付与の詳細については、アクセスの管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

省略可: Compute Engine に Oracle をインストールする

このセクションでは、データベースの例を設定する方法について説明します。Oracle データベースがすでにインストールされている場合は、このセクションをスキップできます。

  1. Oracle Server Docker イメージをダウンロードします。

    この Oracle Express Edition 11g イメージの制限については、Oracle Database のエディションをご覧ください。

  2. 新しい VM インスタンスに Docker イメージをデプロイします。

  3. Compute Engine の [ディスク] ページで、ディスクサイズを 500 GB に変更して、VM を再起動します。

    [ディスク] に移動

  4. HR サンプル スキーマをインストールします。

Oracle サーバー用の VPC ネットワーク ピアリングまたはファイアウォール ルールを作成する

Oracle データベースでパブリック IP アドレスからの上り(内向き)トラフィックが許可されていない場合、Datastream VPC と Oracle データベースにアクセスできる VPC の間に VPC ネットワーク ピアリングを設定します。詳細については、プライベート接続構成を作成するをご覧ください。

Oracle データベースでパブリック IP からの受信トラフィックが許可されている場合、VM インスタンスのファイアウォール ルールを作成して、Datastream のパブリック IP からの受信トラフィックを許可します。

追加ロギングを有効にするように Oracle サーバーを構成します。

手順に従ってソース Oracle データベースを構成します。

Cloud Data Fusion Replication ジョブを作成して実行する

ジョブを作成します

  1. Cloud Data Fusion ウェブ インターフェースで、[レプリケーション] をクリックします。

  2. [レプリケーション ジョブを作成する] をクリックします。

  3. [新しいレプリケーション ジョブの作成] ページで、レプリケーション ジョブの [名前] を指定し、[次へ] をクリックします。

  4. ソースを構成します。

    1. ソースとして [Oracle (by Datastream)] を選択します。

    2. Oracle サーバーで Datastream パブリック IP からの受信トラフィックを許可されている場合は、[接続方法] で [IP 許可リスト] を選択します。それ以外の場合は、プライベート接続名プライベート接続(VPC ピアリング)を選択し、Oracle サーバーの VPC ネットワーク ピアリングまたはファイアウォール ルールを作成するセクションで作成した VPC ピアリング名を入力します。

    3. [ホスト] に、読み取り元の Oracle サーバーのホスト名を入力します。

    4. [ポート] に、Oracle サーバーへの接続に使用するポートとして「1521」と入力します。

    5. [システム ID] に「xe」(Oracle サーバーのサンプル データベース名)と入力します。

    6. 認証情報セクションで、Oracle サーバーにアクセスするためのユーザー名とパスワードを入力します。

    7. 他のプロパティはすべてそのままにします。

  5. [Next] をクリックします。

  6. ターゲットを構成します。

    1. BigQuery ターゲットを選択します。

    2. プロジェクト IDサービス アカウント キーが自動的に検出されます。デフォルト値のままにします。

    3. 省略可: [詳細] セクションで、次の構成を行うことができます。

      • ステージング バケットの名前とロケーション
      • 読み込み間隔
      • ステージング テーブル接頭辞
      • テーブルまたはデータベースが破棄された場合の動作
  7. [Next] をクリックします。

  8. 接続に成功すると、テーブルのリストが表示されます。このチュートリアルでは、いくつかのテーブルを選択します。

  9. [Next] をクリックします。

  10. [Review assessment ページ] でいずれかのテーブルの横にある [View mappings] をクリックすると、スキーマの問題、欠損している機能、接続性に関する、複製中に発生する可能性のある問題の評価を取得できます。

    問題が発生した場合は、処理を進める前に問題を解決する必要があります。このチュートリアルでは、いずれかのテーブルに問題がある場合に、次の操作を行います。

    1. 表の選択手順に戻ります。
    2. 問題なくテーブルまたはイベント(挿入、更新、削除)を選択します。

    ソース データベースから BigQuery へのデータタイプの変換の詳細については、レプリケーション データタイプをご覧ください。

  11. [Back] をクリックします。

  12. [Next] をクリックします。

  13. レプリケーション ジョブの詳細の概要を確認し、[レプリケーション ジョブをデプロイする] をクリックします。

ジョブを開始する

  1. Cloud Data Fusion ウェブ インターフェースで、[レプリケーション ジョブの詳細] ページに移動します。

  2. [開始] をクリックします。

レプリケーション ジョブは、プロビジョニング開始実行中の各状態に移行します。実行中の状態では、レプリケーション ジョブによって、選択したテーブルデータの初期スナップショットが BigQuery に読み込まれます。この状態では、テーブルの状態は [スナップショット] として表示されます。最初のスナップショットを BigQuery に読み込むと、テーブルに対する変更はすべて BigQuery に複製され、テーブルの状態は [Replicating] と表示されます。

ジョブをモニタリングする

レプリケーション ジョブの開始と停止、構成とログの確認、レプリケーション ジョブのモニタリングを行うことができます。

[レプリケーション ジョブの詳細] ページから、レプリケーション ジョブ アクティビティをモニタリングできます。

  1. [レプリケーション] ページで、目的のレプリケーション ジョブの [名前] をクリックします。

  2. [モニタリング] をクリックします。

BigQuery で結果を表示する

レプリケーション ジョブは、複製されたデータセットとテーブルを BigQuery に作成し、対応する Oracle データベースとテーブル名を継承します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

  2. 左側のパネルでプロジェクト名をクリックして、データセットのリストを展開します。

  3. xe データセットを選択して、表示するテーブルを選択します。

詳細については、BigQuery のドキュメントをご覧ください。

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

チュートリアルを完了したら、Google Cloud で作成したリソースをクリーンアップし、以後は課金されないようにします。次のセクションで、このようなリソースを削除または無効にする方法を説明します。

VM インスタンスを削除します。

  1. Google Cloud コンソールで [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. 削除するインスタンスのチェックボックスを選択します。

  3. [削除] をクリックして、インスタンスを削除します。

Cloud Data Fusion インスタンスを削除する

Cloud Data Fusion インスタンスを削除する手順に従います。

プロジェクトを削除する

課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除するには:

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

次のステップ