3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Autonomous Database] Data TransformsからData StudioのData Loadを呼び出す

Posted at

はじめに

5月のアップデートでData TransformsからData StudioのData Loadをワークフローから呼び出すことがサポートされました。どのようなものかData Transformsのチュートリアルをベースにして試してみたいと思います。

前提

Data StudioでData Loadを作成

チュートリアルではローカルのPCにMovie_Sales_2020.csvファイルをダウンロードして、Autonomous Databaseにロードしていますが、ここではObject Storage上にある同じファイルをData Studioでロードするデータ・ロードを作成します。

Database ActionsにQTEAMユーザでログインし、Data Stduio→データ・ロード→クラウド・ストアを選択し、URLに以下を入力します。
https://objectstorage.ap-tokyo-1.oraclecloud.com/n/dwcsprod/b/MovieStream/o/Movie_Sales_2020.csv

image.png

表示されるMovie_Sales_2020.csvを右にドロップします。

image.png

チュートリアルを実施済みにより、ロード先の表が既にあるので、”表の作成”ではなく"データの置換"でロードします。右下のえんぴつアイコン(設定)をクリックし、オプションで"データの置換"を選択し、閉じるをクリックします。

image.png

ファイル名の下にある表示が”データの置換”に変わったことを確認し、開始をクリックします。

image.png

確認に対して実行を選択します。

image.png

ロードが完了したことを確認します。

image.png

データ変換でワークフローを作成

作成済みのデータフローを編集する

QTEAMユーザーでデータ変換にアクセスします。チュートリアルを実行済みなので以下のようにデータ・フローMoviestream_Q2FY2020が作成ずみのはずです。

image.png

フローの最後であるMOVIE_SALES_2020Q2のオプションで以下のオプションを変更して、保存しておきます。

  • Create target table : TrueからFalseに変更
  • Trancate Target table : FalseからTrueに変更

image.png

ワークフローを作成、実行する

同じMovieStreamプロジェクトでワークフローを作成します。左のResourcesからWorkflowsを選択し、Create Workflowをクリックします。名前をMoviestream_Q2FY2020_WFとします。

image.png

Data Studio Loadがワークフローに選択できるようになっています。キャンバスにドラッグアンドドロップします。

image.png

オプションで設定を行います。名前をMovie_Sales_2020_loadとします。

image.png

Attributesを選択し、ConnectionにMovieStream、Data Studio Loadには自動で表示されるMOVIE_SALES_2020_LOAD_xxxを選択します。

ローカル・ファイルからのアップロードのデータ・ロードは選択リストに表示されませんでした。対象にできないようです。

image.png

Data Studio Loadが成功したらMoviestream_Q2FY2020が実行されるよう以下のようにフローを作成します。

image.png

保存して実行してみます。

image.png

正常に終了しました。

image.png

確認してみた

どのように実行されているのか?

Data Transformsで実行したワークフローのジョブの詳細を確認してみます。

image.png

Data Studio JobはDBMS_INGEST.REPLAY_MANIFESTというプロシージャに引数が与えられて実行しているようです。

image.png

一方、Data Studioのデータ・ロードのホームを確認してみると、”表を削除して新規表を作成”でロードの実行がされていました。事前に実行したのは、データの置換だったのですが、Data Transformsから実行すると自動的に再作成になったようです。

image.png

試行錯誤したところ、データ・ロードのジョブの情報はQTEAMユーザーでこちらのSQLで確認できました。

select job_entity_id,job_name,created,updated from user_ingest_Jobs where job_name like 'MOVIE%' order by created desc;

JOB_ENTITY_ID JOB_NAME                  CREATED                     UPDATED                     
------------- ------------------------- --------------------------- --------------------------- 
          733 MOVIE_SALES_2020_LOAD_733 2025-05-19T03:04:08.78606Z  2025-05-19T03:04:10.270918Z 
          731 MOVIE_SALES_2020_LOAD_731 2025-05-19T02:28:55.507726Z 2025-05-19T02:28:56.336769Z 
          709 MOVIE_SALES_2020_LOAD_709 2025-05-16T02:14:11.858655Z 2025-05-16T02:14:12.866666Z 
          695 MOVIE_SALES_2020_LOAD_695 2025-05-16T00:41:32.880898Z 2025-05-16T00:41:33.69972Z 

時系列で考えるとJOB_ENTITY_IDが709,695はこの記事では行っていない過去に行ったローカルファイルからのロード、731が今回のData Stduioでのデータ置換でのロードでData Transformsから呼び出すときに指定されたもの、そして733がData Transformsから呼び出された実行と考えられます。念のため、もう1度Data Transformsからワークフローを実行してみて確認します。

image.png

ワークフロー開始の確認でOKをクリックします。

image.png

実行中ですが、Data Transformsのジョブの確認をしてみました。プロシージャは変わってません。

image.png

先のSQLを実行してみるとJOB_ENTITY_IDが735のジョブが作成されていました。

JOB_ENTITY_ID JOB_NAME                  CREATED                     UPDATED                     
------------- ------------------------- --------------------------- --------------------------- 
          735 MOVIE_SALES_2020_LOAD_735 2025-05-19T04:34:19.988842Z 2025-05-19T04:34:20.369847Z 
          733 MOVIE_SALES_2020_LOAD_733 2025-05-19T03:04:08.78606Z  2025-05-19T03:04:10.270918Z 
          731 MOVIE_SALES_2020_LOAD_731 2025-05-19T02:28:55.507726Z 2025-05-19T02:28:56.336769Z 
          709 MOVIE_SALES_2020_LOAD_709 2025-05-16T02:14:11.858655Z 2025-05-16T02:14:12.866666Z 
          695 MOVIE_SALES_2020_LOAD_695 2025-05-16T00:41:32.880898Z 2025-05-16T00:41:33.69972Z  

またData Stdioのデータ・ロードのホームでは"表を削除して新規表を作成"でロードが行われていました。735のジョブと考えられます。やはりData Transformsからの呼び出しは表の再作成でジョブが実行される動作のようです。

image.png

Data Transformsが表示するデータ・ロードのリストは?

同じ表MOVIE_SALES_2020に対するデータ・ロードのJOB_ENTITY_IDが複数ある状態で、Data_TransormsからData Studioのロードを呼びだすときに自動で表示されるデータ・ロードのリストはどうなるのでしょうか。
ワークフローを2回実行しているので、先のSQL結果のとおりJOB_ENTITY_JOBは複数あるのですが、Data Transformsで見てみたところ、最初と変わらず、表示は731の1つだけです。

image.png

同じ表でデータ・ロードの内容が変わった場合はどうなるのでしょうか。特定の列を指定したデータ・ロードにした場合で試してみます。

image.png

実行します。

image.png

SQLの結果はこちらのとおり737が新しく存在します。

JOB_ENTITY_ID JOB_NAME                  CREATED                     UPDATED                     
------------- ------------------------- --------------------------- --------------------------- 
          737 MOVIE_SALES_2020_LOAD_737 2025-05-19T04:48:49.049687Z 2025-05-19T04:48:49.313406Z 
          735 MOVIE_SALES_2020_LOAD_735 2025-05-19T04:34:19.988842Z 2025-05-19T04:34:20.369847Z 
          733 MOVIE_SALES_2020_LOAD_733 2025-05-19T03:04:08.78606Z  2025-05-19T03:04:10.270918Z 
          731 MOVIE_SALES_2020_LOAD_731 2025-05-19T02:28:55.507726Z 2025-05-19T02:28:56.336769Z 
          709 MOVIE_SALES_2020_LOAD_709 2025-05-16T02:14:11.858655Z 2025-05-16T02:14:12.866666Z 
          695 MOVIE_SALES_2020_LOAD_695 2025-05-16T00:41:32.880898Z 2025-05-16T00:41:33.69972Z 

この状態でData Transformsで確認すると、2行で表示されました。

image.png

結果からみると、内容が異なるデータ・ロードは区別がされるようですが、どのロードがどのような内容なのかをどこで確認するのか?というのはUIで確認できないのがつらいところです。

おわりに

Data Transformsに新しく追加されたData Studioのデータ・ロードを呼び出す機能を試してみました。
データ変換でサポートされていないTXTファイルやJSONファイルなどのファイル形式からAutonomous Databaseへデータをロードし、そのまま変換作業を行いたい!というときに便利かもしれません。
ただ、まだこなれていないので想定の動作になるかはきちんと検証しながら使う必要がありそうです。

参考

Define a Data Studio Data Load in a Work Flow

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?