4
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 Studioにあるジョブを試してみた

Last updated at Posted at 2025-09-01

はじめに

7月にData Studioの中でジョブというメニューが追加されました。ジョブを利用するとData Studioで実行される以下のタスクの実行を自動化することができます。

  • 繰り返し可能なデータ・ロードの実行
  • 表AI支援レシピの実行
  • PL/SQLプロシージャの実行
  • REST呼び出しの実行

ドキュメントに詳しく記載はあるのですが試してみることにしました。

資格証明の作成

メニューの下の設定のアイコンをクリックします。
image.png

設定から資格証明を選択し、資格証明の作成をクリックします。
表AI支援レシピも作成しようと思うので、Oracle Cloud Infrastructure署名キーで作成します。
OCI署名キーで必要なパラメータについてはこちらのドキュメントに記載があります。

image.png

次にクラウド・サービスを選択します。作成したOCI資格証明と利用しているコンパートメントを設定します。

image.png

最後にAI Profileを選択し、プロファイルの作成をしてから、AIアクセスのチェックを行います。

image.png

AIプロファイルの作成についてはこちらの記事が参考になります。

実行するタスクの作成

呼び出し可能な各タスクを作成します。

データロード

クラウドストアのCSVファイルからデータをデータベースにロードします。

image.png

実行します。再ロード可能なデータロードのタスクが作成できました。

image.png

表AI支援

表AI支援を選択し、ロードした表から+新規レシピをクリックします。

image.png

ターゲット・タイプにビューの作成を選択し、ステップの追加で列の追加または置換をクリックします。

image.png

今回は勤続年数の列を追加しようと思い、そのまま記載してAIに質問します。

image.png

結果が返されました。データのプレビューで勤続年数という列に値が入っています。
勤続年数という列名をYOSと変えて保存します。

image.png

こちらのようになりました。ビューの作成はあえてクリックしないままにします。

image.png

PL/SQLプロシージャの作成

今回は呼び出しの検証なので、何もしないPL/SQLプロシージャを作成しました。

create or replace procedure pro1 is
begin
 null;
end;

REST API

Object Storageから元のCSVファイルを削除することにします。こちらのAPIに従います。

ジョブの作成

ジョブの設定をします。Database Actionsにログインし、Data Studioからジョブを選択し、ジョブの作成をします。

ジョブの名前、説明を入力

image.png

ステップの追加

ステップを追加します。これらから選択できるようです。

image.png

順番に追加していきます。

  • データロード
    image.png

  • 表AI支援レシピ

image.png

  • プロシージャ
    image.png

  • REST

image.png

追加後の画面はこちらのようになりました。

image.png

レポート

実行レポートの通知設定も可能のようですが、今回はそのままにします。

image.png

スケジュール

定期的に実行する場合はスケジュールの設定ができます。

image.png

API詳細

こちらで表示される情報を利用して作成したジョブをRESTやSQLでも呼び出すことができます。

image.png

作成をクリックすると実行するかどうかを尋ねられます。

image.png

実行を選択すると、実行中となります。
image.png

実行完了後

実行が完了するとレポートを参照することができます。

image.png

レポートはこちらのとおりです。
image.png

そのほか確認してみたこと

スケジューラーによる実行

今回作成後にジョブを実行した時は自動的にスケジューラーは有効になりませんでした。スケジューラを有効化するときにはジョブのメニューから[ジョブの有効化]を選択します。

image.png

次の実行の予定が表示されます。
image.png

なお、ジョブを有効化して、メニューから[スケジューラーのジョブ]を選択すると、スケジューリングの画面で情報を確認することができます。

image.png

ジョブの実行が失敗した場合はどうなるか?

元のファイルを削除しエラーが発生する状態で実行しました。レポートは!になっており、スケジュールで設定されたタイミングで実行が繰り返されていました。

image.png

レポートを見ると以下の通りでした。ORA-20204が出力されていることが確認できます。データロードタスクの後で停止していないのは、ステップの追加の時に「エラー時にジョブを停止」にチェックを入れていなかったからです。

image.png

GUIだけなのか?

GUIだけでなくDBMS_CLOUD_TOOLS_JOBパッケージを利用してCLIで作成することもできます。
ジョブの編集でソースの表示をすると、以下の通り。DBMS_DATA_TOOLS_JOBパッケージで実行されていることがわかります。

DECLARE
  l_job_name        DBMS_ID := 'TESTJOB1';
  l_job_description VARCHAR2(4000) := null;
  l_steps           CLOB := q'[[
  {
    "type" : "data_load",
    "data_load_name" : "EMP_DATA_LOAD_237",
    "on_errors" : "continue"
  },
  {
    "type" : "smart_table",
    "recipe_name" : "EMP_RECIPE1",
    "on_errors" : "stop"
  },
  {
    "type" : "procedure",
    "procedure" : "PRO1",
    "arguments" : "PRO1",
    "on_errors" : "stop"
  },
  {
    "type" : "http",
    "method" : "DELETE",
    "url" : "https://tenancyname.objectstorage.ap-osaka-1.oci.customer-oci.com/n/tenancyname/b/upload_bucket/o/emp.csv",
    "credential_name" : "CRED_OCI",
    "on_errors" : "stop"
  }
]]';
  l_owner           DBMS_ID := 'TESTUSER1';
  l_start_date      TIMESTAMP WITH TIME ZONE := to_timestamp_tz('2025-08-15T14:00:00Z', 'YYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM');
  l_repeat_interval VARCHAR2(4000) := 'FREQ=MINUTELY;INTERVAL=30';
  l_end_date        TIMESTAMP WITH TIME ZONE := to_timestamp_tz('2025-08-29T22:07:00Z', 'YYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM');
  l_job_class       DBMS_ID := null;
  l_reporting       CLOB := q'[{
  "completed" :
  {
    "smtp" :
    [
    ]
  },
  "errors" :
  {
    "smtp" :
    [
    ]
  },
  "failed" :
  {
    "smtp" :
    [
    ]
  },
  "long" :
  {
    "smtp" :
    [
    ]
  }
}]';
BEGIN
  "C##ADP$SERVICE"."DBMS_DATA_TOOLS_JOBS"."UPDATE_JOB"(
    job_name => l_job_name,
    description => l_job_description,
    steps => l_steps,
    owner => l_owner,
    start_date => l_start_date,
    repeat_interval => l_repeat_interval,
    end_date => l_end_date,
    job_class => l_job_class,
    enabled => false,
    reporting => l_reporting);
END;

おわりに

Database Actionsのジョブ機能を試してみました。Data Studioのタスクを続けてや、定期的に実行させたいといった場合に活用できると思います。

参考資料

4
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
4
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?