はじめに
Data Transformsは、Autonomous Databaseに組み込まれているデータ統合ツールです。Database Actionsからアクセス可能で、様々なソースからAutonomous Databaseにデータをロードして変換するためのツールとして知られています。
今回はData Transformsを用いて、異なるADB間においてデータの複製をしてみました。
こちらは、「Autonomous DatabaseのData Transformsを用いて、異なるスキーマ間でのデータの複製をしてみた。」の派生版となります。ぜひ合わせてご覧ください。
本記事の前提条件
-
データの転送元のADBインスタンスが1つ構成済みであること
-
下記リンクからMovie Sales 2020.csv(売上実績のサンプルデータ)をダウンロードしてあること。
「OCIチュートリアル, Oracle Database編, 217: クレデンシャル・ウォレットを利用して接続してみよう」 -
「 OCIチュートリアル, Oracle Database編, 403 : Data Transformsを使ってみよう」を事前に行い、Movie Sales 2020.csvをData Transformsを用いて加工した、MOVIE_SALES_2020Q2という表を使用します。こちらのチュートリアルを試してから本記事を読まれると、理解がスムーズかと思います。
作業の大まかな流れ
~前提条件まで~
- 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インスタンス(ADB02take)を作成します。
- ウォレットのダウンロード
- データを複製する先のユーザー(QTEAM_TARGET02)を作成
- Data Transforms上で、データ複製のためのProject (Replicate_Moviestream_to_anotherADB)を作成します。
- 新たにConnection (MovieStream_Target02)を作成します。
- Load Dataの機能を使い、データ複製のソースとなるQTEAMから、ターゲットとなるQTEAM_TARGET02にデータを読み込ませます。
- 実際にデータが複製できているかを確認します。
実際にデータの複製をしてみた
データ複製先のADBを作成
前提条件で作成済みのADBインスタンスに加え、データの複製先となるADBを作成します。
OCIチュートリアル, Oracle Database編, 101: ADBインスタンスを作成してみようを参考に、インスタンスを作成してください。
- 表示名: 任意 (本記事ではatp02take)
- データベース名: 任意 (本記事ではatp02take)
- ワークロードタイプの選択: トランザクション処理
- デプロイメントタイプの選択: 共有インフラストラクチャ
- OCPU数: 1
- ストレージ: 1
- 自動スケーリング: なし
- パスワード: 任意 (例: Welcome12345#)
- ネットワークアクセスの選択: すべての場所からのセキュアアクセスを許可
- ライセンスタイプの選択: ライセンス込み
※前提条件までで作成してあるデータの複製元のADB (本記事ではatp01take)も、同様の条件で作成しました。
ウォレットのダウンロード
上記で作成したADBの詳細画面から「データベース接続」を押し、ウォレットをダウンロードします。後ほどData Transformsにログインし、Connectionを作成する工程でウォレットを使用します。
データ複製用のターゲットユーザーの作成
-
次のようにユーザー情報を入力します。
入力項目 入力内容 ユーザー QTEAM_TARGET02 パスワード 任意 パスワードの確認 任意 Webアクセス ON Webアクセス拡張機能→承認が必要 ON 表領域の割当制限DATA UNLIMITED -
Database Actionsの起動パッドに戻り、ADMINユーザーからいったんログアウトして、前提条件で作成してあるQTEAMユーザーでログインし直します。
データ複製用のProjectを作成
-
Data Transformsを起動します。
QTEAMユーザーでDatabase Actionsにログインした状態で、起動パッドを開きます。データ変換の項目をクリックし、QTEAMユーザーの情報を入力すると、Data Transformsが起動します。 -
Home画面からProjectsに移動し、Create Projectを押し、「Replicate_Moviestream_to_anotherADB」という名前のProjectを作成します。
新たにConnectionを作成
前提条件でMovieStreamというConnectionを作成済みですが、データ複製のターゲット用としてMovieStream_Target02を新たに作成します。
-
Create Connectionsを押します。
-
- Use Credential File: ON
- Services: 〇〇_low (本記事ではatp02take_low)
- User: QTEAM_TARGET02
- Password: 設定したパスワード
Test Connectionを押し、接続テストに成功したら、通知が画面右上に出ます。成功が確認できたら、Createを押します。
ADB間でデータを読み込む
-
Home画面に戻り、Load Dataを押します。すると以下の画像のように、Load Dataの情報を入力する画面が立ち上がってきます。
- Name: MovieStream_dataLoad_to_atp02take (例)
- Project Name: Replicate_Moviestream_to_anotherADB を選択
Nextを押します。
-
Source Connectionを入力する画面に移ります。データ複製のためのソースとなるConnectionであるMovieStreamを選択し、スキーマはQTEAMを指定します。
-
続いてTarget Connectionを入力する画面に移ります。データの複製先のターゲットとなるConnectionであるMovieStream_Target02を選択します。スキーマはQTEAM_TARGET02を指定します。
-
Home画面からProjectsを押し、先ほど作成したReplicate_Moviestream_to_anotherADBのProjectを選択します。
-
画面左側のData Loadsを選択し、MovieStream_dataLoad_to_atp02takeが表示されているはずなので、このリンクを押します。
これで、ADB間でのデータの読み込みが終わりました。
データが複製されたかを確認
実際にデータが複製されたかどうかを確認します。
-
データ複製先のADBインスタンスatp02takeの詳細画面から、Database Actionsの起動パッドを開きます。ADMINユーザーからログインしているはずなので、画面右上からQTEAM_TARGET02ユーザーでログインし直します。
-
また、起動パッドのSQLからもデータが存在するか確認してみます。
起動パッド上の開発の欄から、SQLの項目をクリックします。
-
以下のようにSQL文を打ち込んで実行すると、複製したデータが表示されることが分かります。
select * from MOVIE_SALES_2020Q2;
まとめ
本記事ではData Transformsを用いて、異なるADB間においてデータの複製をしてみました。