1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Autonomous DatabaseのData Transformsを用いて、異なるADB間においてデータの複製をしてみた。

Last updated at Posted at 2022-12-20

はじめに

Data Transformsは、Autonomous Databaseに組み込まれているデータ統合ツールです。Database Actionsからアクセス可能で、様々なソースからAutonomous Databaseにデータをロードして変換するためのツールとして知られています。
今回はData Transformsを用いて、異なるADB間においてデータの複製をしてみました。

こちらは、「Autonomous DatabaseのData Transformsを用いて、異なるスキーマ間でのデータの複製をしてみた。」の派生版となります。ぜひ合わせてご覧ください。

本記事の前提条件

作業の大まかな流れ

~前提条件まで~

  • ADBインスタンス(この記事ではADBtake01)を構築したのちQTEAMというユーザーを作成し、Movie Sales 2020.csvをロードします。
  • Data Transformsを開き、MovieStreamという名前でConnectionを作成し、Autonomous Databaseに接続します。
  • QTEAMスキーマにロードしてあるデータ(Movie Sales 2020.csv)をインポートします。
  • データの変換作業(データの修正、トリミング)を行います。
    詳細は、OCIチュートリアル, Oracle Database編, 403 : Data Transformsを使ってみようをご覧ください。

~本記事~

実際にデータの複製をしてみた

データ複製先のADBを作成

前提条件で作成済みのADBインスタンスに加え、データの複製先となるADBを作成します。
OCIチュートリアル, Oracle Database編, 101: ADBインスタンスを作成してみようを参考に、インスタンスを作成してください。

  • 表示名: 任意 (本記事ではatp02take)
  • データベース名: 任意 (本記事ではatp02take)
  • ワークロードタイプの選択: トランザクション処理
  • デプロイメントタイプの選択: 共有インフラストラクチャ
  • OCPU数: 1
  • ストレージ: 1
  • 自動スケーリング: なし
  • パスワード: 任意 (例: Welcome12345#)
  • ネットワークアクセスの選択: すべての場所からのセキュアアクセスを許可
  • ライセンスタイプの選択: ライセンス込み

※前提条件までで作成してあるデータの複製元のADB (本記事ではatp01take)も、同様の条件で作成しました。

ウォレットのダウンロード

上記で作成したADBの詳細画面から「データベース接続」を押し、ウォレットをダウンロードします。後ほどData Transformsにログインし、Connectionを作成する工程でウォレットを使用します。
qiita_datatransformsADBReplicate_1.png

データ複製用のターゲットユーザーの作成

  1. ADBのコンソール画面からDatabase Actionsを起動し、データベース・ユーザーをクリックします。
    qiita_datatransformsADBReplicate_1_2.png

  2. ユーザーの作成をクリックします。
    qiita_datatransformsADBReplicate_1_3.png

  3. 次のようにユーザー情報を入力します。

    入力項目 入力内容
    ユーザー QTEAM_TARGET02
    パスワード    任意
    パスワードの確認 任意
    Webアクセス ON
    Webアクセス拡張機能→承認が必要 ON
    表領域の割当制限DATA UNLIMITED

    qiita_datatransformsADBReplicate_2.png

    • ユーザーを作成ボタンを押す前に、付与されたロールの項目から以下の2つのユーザーロールについて、[付与済]と[デフォルト]の両方にチェックしてください。
      (後からでも編集できます。チェックが付いていないと、起動パッドにData Transformsの項目が表示されませんので、ご注意ください。)
      ・DWROLE
      ・DATA_TRANSFORMS_USER
      qiita_datatransformsADBReplicate_3.png

    qiita_datatransformsADBReplicate_4.png

  4. Database Actionsの起動パッドに戻り、ADMINユーザーからいったんログアウトして、前提条件で作成してあるQTEAMユーザーでログインし直します。

データ複製用のProjectを作成

  1. Data Transformsを起動します。
    QTEAMユーザーでDatabase Actionsにログインした状態で、起動パッドを開きます。データ変換の項目をクリックし、QTEAMユーザーの情報を入力すると、Data Transformsが起動します。

  2. Home画面からProjectsに移動し、Create Projectを押し、「Replicate_Moviestream_to_anotherADB」という名前のProjectを作成します。
    qiita_datatransformsADBReplicate_8.png

新たにConnectionを作成

前提条件でMovieStreamというConnectionを作成済みですが、データ複製のターゲット用としてMovieStream_Target02を新たに作成します。

  1. Create Connectionsを押します。

    • Name:MovieStream_Target02
    • Select a Connection Type: Oracleを選択
      Nextを押します。
      qiita_datatransformsADBReplicate_5.png
    • Use Credential File: ON
    • Services: 〇〇_low (本記事ではatp02take_low)
    • User: QTEAM_TARGET02
    • Password: 設定したパスワード
      qiita_datatransformsADBReplicate_6.png

    Test Connectionを押し、接続テストに成功したら、通知が画面右上に出ます。成功が確認できたら、Createを押します。
    qiita_datatransformsADBReplicate_7.png

ADB間でデータを読み込む

  1. Home画面に戻り、Load Dataを押します。すると以下の画像のように、Load Dataの情報を入力する画面が立ち上がってきます。

    • Name: MovieStream_dataLoad_to_atp02take (例)
    • Project Name: Replicate_Moviestream_to_anotherADB を選択
      Nextを押します。

    qiita_datatransformsADBReplicate_9.png

  2. Source Connectionを入力する画面に移ります。データ複製のためのソースとなるConnectionであるMovieStreamを選択し、スキーマはQTEAMを指定します。
    qiita_datatransformsADBReplicate_10.png

  3. 続いてTarget Connectionを入力する画面に移ります。データの複製先のターゲットとなるConnectionであるMovieStream_Target02を選択します。スキーマはQTEAM_TARGET02を指定します。
    qiita_datatransformsADBReplicate_11.png

  4. Home画面からProjectsを押し、先ほど作成したReplicate_Moviestream_to_anotherADBのProjectを選択します。
    qiita_datatransformsADBReplicate_12.png

  5. 画面左側のData Loadsを選択し、MovieStream_dataLoad_to_atp02takeが表示されているはずなので、このリンクを押します。
    qiita_datatransformsADBReplicate_13.png

    • MovieStream_dataLoadの詳細画面が表示されます。ソーススキーマのすべての表を見ることができ、該当の表(MOVIE_SALES_2020Q2)を選択します。
    • Recreate, Truncate, Append, Do not Loadの4つのアクション中から、行う作業を選択します。今回はデータの複製を行うので、Recreateを選びます。「保存されていない変更があります。」という注意が表示されたら、必要に応じてフロッピーディスクのアイコンをクリックし、作業の内容を保存してください。保存ができたら、緑色の三角印の実行ボタンを押してください。
      qiita_datatransformsADBReplicate_14.png
  6. 実行ボタンを押した直後は、画面右下のData Load StatusがRunningになっています。
    qiita_datatransformsADBReplicate_15.png

  7. しばらく待つと、ステータスがDoneに変わります。
    qiita_datatransformsADBReplicate_16.png

これで、ADB間でのデータの読み込みが終わりました。

データが複製されたかを確認

実際にデータが複製されたかどうかを確認します。

  1. データ複製先のADBインスタンスatp02takeの詳細画面から、Database Actionsの起動パッドを開きます。ADMINユーザーからログインしているはずなので、画面右上からQTEAM_TARGET02ユーザーでログインし直します。

  2. 起動パッドから、データカタログの項目を選択します。
    qiita_datatransformsADBReplicate_17.png

  3. 以下のようにQTEAMスキーマから複製されたMOVIESALES_2020Q2の表の情報が表示されます。
    qiita_datatransformsADBReplicate_18.png

  4. また、起動パッドのSQLからもデータが存在するか確認してみます。
    起動パッド上の開発の欄から、SQLの項目をクリックします。
    qiita_datatransformsADBReplicate_20.png

  5. 以下のようにSQL文を打ち込んで実行すると、複製したデータが表示されることが分かります。

      select * from MOVIE_SALES_2020Q2;
    

    qiita_datatransformsADBReplicate_21.png

まとめ

本記事ではData Transformsを用いて、異なるADB間においてデータの複製をしてみました。


参考資料

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?