前回のあらすじ

みなさん、こんにちは。
Oracle Cloud Infrastructure 検証チームです。OCI GoldenGate のデータ・レプリケーションとデータ変換のデプロイメントを使用して、データのロードおよび変換を試してみよう。(2/3)はご覧頂きましたでしょうか?

前回は「デプロイメント・コンソールに接続」と「接続の作成」と「プロジェクトとデータ・ロードの作成と実行」を実施しました。
今回は「データ・エンティティとデータ・フローの作成と実行」を実施します。

  1. デプロイメントの作成 (前々回)
  2. 接続エンドポイントの作成と割当て (前々回)
  3. デプロイメント・コンソールに接続 (前回)
  4. 接続の作成 (前回)
  5. プロジェクトとデータ・ロードの作成と実行 (前回)
  6. データ・エンティティとデータ・フローの作成と実行

前々回と前回に続き、執筆者はOCI関連資格4冠を達成しました!に登場した事業部員です。
それでは説明と準備が整いましたので検証していきましょう。

データ・エンティティとデータ・フローの作成と実行

データ・エンティティの作成

前回実施した内容と同様の手順で、OCI GoldenGate Data Transforms デプロイメント・コンソールにログインし、[Home]の[Projects]から作成済みのプロジェクトをクリックします。[Data Flows]から[Create Data Flow]をクリックします。

[Name]に任意の名前を入力し、[Create]をクリックします。

以下の画面が表示されます。

[Add a Schema]の[Connection]に「ターゲット・データベース接続」で作成した接続名を選択し、[Schema]にターゲット・データベースに作成済みのサンプル・スキーマ名を選択し、[Import]をクリックします。

[Import Data Entities]にて表示された内容を確認し、[Start]をクリックします。

データ・エンティティの作成が正常に実行されると、以下の画面が表示されます。

データ・フローの作成と実行

データ・フロー・エディタのデザイン・キャンバス上に任意のデータ・フローを作成し、[保存]ボタンをクリックします。

この例では以下のデータを取得しています。

SRC_ORDER_LINESテーブルとSRC_ORDERSテーブルとSRC_CUSTOMERテーブルより、注文合計金額が上位5位までの注文情報と各発注元の顧客名を合わせたデータを取得する。

※データ・エンティティ・パネル、データベース関数ツールバーの使用方法等、データ・フローを定義する詳細な手順については、本ブログでの説明は割愛します。

[実行]ボタンをクリックします。

[Start]をクリックします。

[OK]をクリックします。

データ・フローが正常に実行されると、画面右横プロパティ・パネル下に[Data Flow Status]が表示され、[Current Status]がDoneであることを確認します。[Execution Job]のリンクをクリックします。

[Step Name]が「Physical_STEP」をクリックします。

「Insert new rows – Load TRG_PRIME_CUSTOMER_ORDERS]をクリックします。

[Step Details]の[Target Connection]タブをクリックします。自動生成及び実行されたSQL文が表示されます。[Close]をクリックします。

変換後のデータの確認

ターゲット・データベースのサンプル・スキーマ「srcmirror_ociggll」に新規テーブル「trg_prime_order_lines」が作成されており、変換されたデータを確認できます。

$ sqlplus srcmirror_ociggll@targetdb
Enter password:

Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.24.0.0.0
SQL> set markup csv on
SQL> select * from srcmirror_ociggll.trg_prime_customer_orders;
"ORDER_ID","STATUS","CUST_ID","ORDER_DATE","CUSTOMER","CUSTID","DEAR","LAST_NAME","FIRST_NAME","ADDRESS","CITY_ID","PHONE","AGE","SALES_PERS_ID","AMOUNT_SUM","CUST_NAME"
8,"CLO",201,"2000/08/18 00:00:00",,201,0,"Sartois","Jean","71 rue Rousseau",25,"79 23 26 23",19,30,432027,"Jean SARTOIS"
2,"CLO",102,"1999/02/12 00:00:00",,102,0,"McCarthy","Robin","27 Pasadena Drive",11,"(214) 555 3075",29,11,361814,"Robin MCCARTHY"
10,"CLO",203,"1999/05/20 00:00:00",,203,0,"Robert","Christian","1rue Cezanne",208,"42 25 27 29",38,32,241911,"Christian ROBERT"
7,"COM",107,"2001/07/30 00:00:00",,107,0,"Swenson","Jack","64 Imagination Drive",19,"(202) 555 8125",74,22,231521,"Jack SWENSON"
1,"COM",101,"2001/01/11 00:00:00",,101,0,"Brendt","Paul","10 Jasper Blvd.",107,"(212) 555 2146",19,10,226449,"Paul BRENDT"

さいごに

OCI GoldenGate のデータ・レプリケーションとデータ変換のデプロイメントを使用して、データのロードおよび変換の検証をしてみましたが、いかがでしたでしょうか?

今回の検証ではご紹介できませんでしたが、Oracle Data Transforms には複数のデータ・フローをステップ順に構成してワークフローとして作成する機能や、データ・フローやワークフローを特定の時間や時間間隔でスケジュール実行する機能もございます。

この機会にぜひOCI GoldenGate Data Transforms をお試し下さい。

2024年10月現在、OCI GoldenGateでは、Data Replication(データ・レプリケーション)、Data Transforms(データ変換)、Stream Analytics(ストリーム分析)の3つの機能が利用可能となっております。

その他、Oracle Cloudに関する技術解説記事はこちらからご覧下さいね。

Oracle Cloudに関するお問い合わせはこちらからお願いします!

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早6年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!