Oracle Database から BigQuery へのデータの複製

このチュートリアルでは、Cloud Data Fusion Replication を使用して、変更されたデータを Oracle データベースから BigQuery データセットに継続的に複製するジョブをデプロイする方法を説明します。この機能は、Google Cloud のクラウドネイティブの変更プロバイダであり、レプリケーションのサービスである Datastream を利用しています。

目標

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

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

費用

このチュートリアルでは、Google Cloud の課金対象となる以下のコンポーネントを使用します。

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

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

始める前に

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

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

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

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

    API を有効にする

  5. バージョン 6.4.0 以降でプライベート Cloud Data Fusion インスタンスを作成します。インスタンスをセットアップするときは、以下を行います。
    • Virtual Private Cloud ピアリングを有効にします。
    • [アクセラレータを追加] をクリックし、[レプリケーション] を選択して複製を有効にします。

既存のインスタンスを使用する場合、または Cloud Data Fusion メニュー にレプリケーションが表示されない場合は、レプリケーションを有効にするためのアップグレードをご覧ください。

Compute Engine に Oracle をインストールする

このセクション(省略可)では、データベースの例を設定する方法について説明します。すでに独自のデータベースを設定している場合は、このセクションをスキップできます。Datastream は、特定のバージョンの Oracle データベースにのみ対応しています。

  1. Oracle Server Docker イメージをダウンロードします。(このイメージは Oracle 11g の Express エディションであり、機能に制限があります。詳しくは、Oracle Database のエディションをご覧ください)。

  2. Docker イメージを Container Registry にアップロードします。

  3. 新しい VM インスタンスに Docker イメージをデプロイします。 VM の作成時に、ディスクサイズを 500 GB に変更します。

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

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

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

サービス アカウントに権限を付与する

Cloud Data Fusion サービス アカウントと Dataproc サービス アカウントに、Datastream API を呼び出して Cloud Storage にアクセスする権限を付与します。

  1. Cloud Console で [IAM] ページに移動します。

    IAM ページに移動

  2. 権限テーブルの [メンバー] 列で、形式 service-customer-project-number@gcp-sa-datafusion.iam.gserviceaccount.com と一致する Cloud Data Fusion サービス アカウントを探します。

  3. サービス アカウントの右側にある [編集] をクリックします。

  4. [別の役割を追加] をクリックします。

  5. [ロールを選択] をクリックします。

  6. 検索バーを使用して、[Datastream 管理者] を検索して選択します。

    [Configuration] タブ。

  7. [保存] をクリックします。

  8. 権限テーブルの [ロール] 列に Datastream 管理者が表示されていることを確認します。

  9. このセクションを繰り返して、Dataproc サービス アカウントに権限を付与します。

    1. Cloud Console で [IAM] ページに移動します。IAM ページに移動

    2. 権限テーブルの [メンバー] 列で、<project-number>-compute@developer.gserviceaccount.com 形式と一致する Dataproc VM サービス アカウントを見つけます。

    3. 上記のステップ 3~8 を繰り返します。

サービス アカウントとサービス アカウント キーの詳細については、サービス アカウント キーの作成と管理をご覧ください。

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

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

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

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

  1. Cloud Data Fusion ウェブ UI で、右上にある [Hub] をクリックします。

  2. [Oracle via Datastream Replication プラグイン] をクリックし、[デプロイ] をクリックします。

  3. 開いた [Deploy] ウィンドウで、[Finish] をクリックします。

パイプラインを作成する

  1. Cloud Data Fusion UI で、メニューをクリックし、[Replication] ページに移動します。右上にある緑色の丸いボタンをクリックします。

  2. [新しいレプリケーション ジョブの作成] ページで、レプリケーション ジョブの [名前] を指定します。(省略可)説明を指定します。

  3. [次へ] をクリック

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

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

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

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

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

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

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

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

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

  6. 接続に成功すると、[HR サンプル スキーマ] の下にテーブルのリストが表示されます。このチュートリアルでは、複製するすべてのテーブルとイベント(挿入、更新、削除などのイベント)を選択します。

  7. [次へ] をクリックします。

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

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

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

    3. (省略可)[Advanced] セクションで、ステージング バケットの名前とロケーション、負荷間隔、ステージング テーブルのプレフィックス、テーブルまたはデータベースの削除時の動作を構成できます。

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

  10. (省略可)詳細プロパティを構成します。このチュートリアルでは、デフォルト設定を使用できます。

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

  12. [Review assessment ページ] でいずれかのテーブルの横にある [View mappings] をクリックすると、スキーマの問題、欠損している機能、接続性に関する、複製中に発生する可能性のある問題の評価を取得できます。問題が発生した場合は、処理を進める前に問題を解決する必要があります。このチュートリアルでは、いずれかのテーブルに問題がある場合に、テーブルの選択手順に戻って、テーブルまたはイベント(挿入、更新、または削除)を選択します。

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

  14. [次へ] をクリックします。

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

ジョブを開始する

[レプリケーション ジョブの詳細] ページで、次の操作を行います。

[起動] をクリックします。

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

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

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

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

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

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

BigQuery で結果を表示する

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

  1. Cloud Console で BigQuery を開きます。

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

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

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

クリーンアップ

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

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

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

  1. Cloud Console で、[VM インスタンス] ページに移動します。

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

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

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

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

手順に従って Cloud Data Fusion インスタンスを削除します

プロジェクトの削除

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

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

  1. Cloud Console で [リソースの管理] ページに移動します。

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

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

次のステップ