ジョブの作成

ジョブ機能は、前提条件セクションで実行されたステップを自動化します。

次に、ジョブ機能を使用してジョブを作成するステップバイステップの例を示します。

  1. Data Studioツールのジョブ機能で、「ジョブの作成」を選択します。

    ジョブの作成ウィザードでは、一般設定で次のフィールド値を指定します。
    • ジョブ名: ジョブの名前を入力します。たとえば、MY NEW JOBです。
    • ジョブの説明: 説明を入力します。このフィールドはオプションです。

      「次へ」をクリックして、「ステップ」タブに進みます。

  2. ステップ追加

    「ステップ」タブで、プロセスを自動化するステップを追加します。

    データ・ロード・ステップを追加し、作成した表AIアシスト・レシピを追加し、PL/SQLプロシージャを実行して、RESTコールをジョブのステップとして実行します。

    ノート:

    「前提条件」セクションにタスクがすでに定義されています。



    データ・ロード・ステップの追加:
    • 「+ステップの追加」ドロップダウンで、「データ・ロードの追加」を選択します。
    • 「データ・ロードの追加」ダイアログで、次のフィールド値を指定します。

      データ・ロードの選択: ドロップダウンからデータ・ロードを選択します。この例では、DATA_LOADです。

      ロード名: ロード名を入力します。このフィールドには、自動的に移入されます。これは、ロードのタグ付けに使用する名前です。

      「エラー時にジョブを停止」を選択します。

      「Add Data Load」をクリックします。



      新しいステップがジョブのステップのリストに表示されます。ステップの横にある鉛筆アイコンをクリックして、ステップを編集します。選択したステップを削除するには、ステップの横にある「削除」アイコンをクリックします。

    表AI支援レシピの追加:
    • 「+ステップの追加」ドロップダウンで、「表AI支援レシピの追加」を選択します。
    • 「表AIアシスト・レシピ」ダイアログで、次のフィールド値を指定します:

      表AIアシスト・レシピの選択: 作成するレシピをドロップダウンから選択します。

      「エラー時にジョブを停止」を選択します。

      「表AI支援レシピの追加」をクリックします。



      この新しいステップが、既存のデータ・ロード・ステップの下にあるステップのリストに追加されます。ステップの横にある鉛筆アイコンをクリックして、ステップを編集します。選択したステップを削除するには、ステップの横にある削除アイコンをクリックします。

    プロシージャの追加
    • 「ステップ」タブの「+ステップの追加」ドロップダウンで、「プロシージャの追加」を選択します。
    • 「プロシージャの追加」ダイアログで、次のフィールド値を指定します。

      PL/SQLプロシージャ: 作成するPL/SQLプロシージャのいずれかをドロップダウンから選択します。この例では、「PRINT IT」を選択します。

      PL/SQLプロシージャの引数: このフィールドに引数のカンマ区切りリストを指定します。このフィールドに指定する値は、省略したパラメータのデフォルト値を受け入れるプロシージャに実際のパラメータに渡されます。これらの引数は、PL/SQLプロシージャに渡されます。引数には、数値、文字列、ブール値、または$で始まる特殊な値のいずれかを指定できます。この場合、$job_nameはプロシージャーの呼び出し時に My New Jobに変更されます。

      たとえば、出力で$job_namePLSQL_JOBに置換するには、このフィールドにPLSQL_JOBパラメータを渡す必要があります。

      「エラー時にジョブを停止」を選択します。

      「プロシージャの追加」をクリックします。



    RESTコールの追加:
    • 「+ステップの追加」ドロップダウンで「RESTコールの追加」を選択します。

      ノート:

      RESTコールを使用して、様々な操作を実行できます。これらは、独自のカスタム・アプリケーション、クラウド・プロバイダ、その他のサード・パーティ・ベンダーに反する場合があります。たとえば、Oracle Cloud Infrastructure (OCI)は、https://docs.oracle.com/en-us/iaas/api/に包括的に記載された様々なエンドポイントを提供します。この範囲はOCIのみに限定されないことに注意してください。

      この例では、OCIのオブジェクト・ストアRESTコールをコールして、オブジェクト・ストアからファイルを読み取るエンドポイントにアクセスします。

    • ジョブ・ステップを設定するには、「RESTの追加」ダイアログで次のフィールド値を指定します:

      メソッド: GET

      このメソッドは、Oracleデータベースからデータを取得します。GETメソッドは、表からの行や問合せの結果などのデータをフェッチするために使用されます。データは変更されません。

      実行する操作に応じて、次のいずれかの方法を選択できます。
      • POST:

        このメソッドは、新しいデータを挿入するか、データを変更するプロセスを起動します。Oracleデータベースにデータを送信します。通常は、新しいレコードを作成したり、データを変更するプロシージャを実行します。

      • 削除:

        Oracleデータベースからデータを削除します。このメソッドは、パラメータまたはパス変数によって識別される、表内の行などの指定されたリソースを削除します。

      • PATCH: 既存のデータを部分的に更新します。このメソッドは、レコード全体を置換せずに行の特定の列を更新するなど、リソースに部分的な変更を適用します。

      URL: アクセスするRESTサービスのオブジェクト・ストレージの場所を指定し、サーバー上の正しいリソースにリクエストを転送します。この例では、https://objectstorage.us-ashburn-1.oraclecloud.com/n/*********/*/***/*/**/****.csvと入力します。

      資格証明: いずれかの資格証明を選択してリクエストを認証し、REST APIリソースに安全にアクセスする権限があることを確認します。

      ノート:

      URLはパブリック・バケットであるため、この例では資格証明が選択されていません。

      本文: このフィールドは、サーバーに送信されるデータ(通常は POSTまたは PUTリクエスト)を指定します。GETおよび DELETEリクエストには、HTTP標準に従った本体がありません。

      注意:

      シークレット、ベアラー・トークン、パスワード、秘密キー、署名付きURL、その他の資格証明などの機密データを、ジョブ・ステップURL、リクエスト本文またはレポート構成に直接配置しないでください。これらの値は、ジョブ定義とともに格納し、後で取得できます。認証には、データベース資格証明または名前付き資格証明を使用します。

      ヘッダー: ヘッダーは、JSONオブジェクトの各キー/値ペアがリクエストでヘッダーおよび値として使用されるJSONオブジェクトとして指定する必要があります。たとえば、{"X-My-Header": "My header value"}です。このフィールドは、サーバーへのリクエストまたはクライアントに関する追加情報を指定します。これらのヘッダーでは、コンテンツ・タイプ、認可資格証明、カスタム・パラメータ、リクエストの処理に必要なその他の制御情報などのメタデータを指定できます。ヘッダーは通常、PUTPATCHPOSTおよびDELETEメソッドで使用され、このような詳細を伝達します。

      「エラー時にジョブを停止」を選択します。

      「ステップの追加」をクリックします。



      ノート:

      このステップの出力は、「レポート」メニューに表示できます。クラウド・ストレージから取得した表の内容が表示されます。

    前に追加した手順の下に、新しいステップがジョブ・ステップのリストに表示されます。ステップの横にある鉛筆アイコンをクリックして、ステップを編集します。選択したステップを削除するには、ステップの横にある「削除」アイコンをクリックします。



    「ジョブの作成」ダイアログですべてのステップをジョブ機能に追加すると、次にジョブのステータスがレポートされます。

    「次」をクリックして、「レポート」タブに進みます

  3. 電子メール・レポートの送信またはSlack通知の構成 :
    「レポート」タブで、電子メールまたはSlackを介してレポート機能で電子メール更新またはSlack通知を送信するために使用可能なオプションのいずれかを選択します。

    注意:

    レポート構成に機密データを含めないでください。認証には、データベース資格証明または名前付き資格証明を使用します。

    • ロードされた行の場合: データ・ロード操作中にデータ行が正常にインポートまたはデータベースに挿入されると、電子メール更新またはSlack通知を受信します。
    • 失敗時: ジョブが失敗すると、電子メール更新またはSlack通知を受信します。
    • 超過ランタイム時: ジョブが最大許容時間制限または構成時間制限より長く実行され、結果として停止またはタイムアウトした場合、電子メール更新またはSlack通知を受信します。
    • 拒否された行の場合: データ・ロード操作中にデータ行が正常に受け入れられなかったか処理されなかった場合、電子メール更新またはSlack通知を受信します。

    ノート:

    電子メールでレポートを作成する場合は、次のフィールド値を指定します。
    • 送信方法: ドロップダウンから「電子メール」を選択します。
    • 送信先: abc@example.com。通知を受信する電子メール・アドレスを入力します。

      通知を受信するイベントを選択します。

    Slackを介してレポートする場合は、次のフィールド値を指定します。
    • 送信方法: ドロップダウンから「Slack」を選択します。
    • 送信先: ***********。通知を受信するSlackチャネルのチャネルIDを入力します。チャネルIDをString値で指定します。このパラメータは必須です。チャネルIDはチャネルの一意のIDであり、チャネル名とは異なります。Slackでは、チャネルの詳細を表示すると、チャネルIDをAboutタブで確認できます。

      通知を受信するイベントを選択します。

      ノート:

      パラレル・ジョブを実行している場合は、ジョブの完了後にのみジョブ通知がクローズされていることを確認する必要があります。そうしないと、正しくない通知が届きます。

    「次」をクリックして、「スケジュール」タブに進めます。

  4. ジョブ・スケジュールを作成:
    • 「スケジュール」タブで、ジョブを実行するタイミングと頻度を定義します。

      スケジューリングに対して有効化: ジョブ機能を実行する(データ・ソースが定期的にポーリングする)ためのスケジュールを設定する場合に、このオプションを選択します:
      • 時間間隔フィールドに数値を入力し、新規または変更済のファイルについてバケットをポーリングする時間タイプと曜日を選択します。たとえば、月曜日、水曜日および金曜日に2時間ごとにポーリングするには、2と入力してから、「時間」を選択します。You can select All Days, Monday to Friday, Sunday to Thursday, or Custom from Week Days drop-down. 「カスタム」フィールドを使用すると、適切なフィールドで「月曜日」「火曜日」「水曜日」「木曜日」および「金曜日」を選択できます。
      • 開始日と終了日を、開始時間と終了時刻と一緒に選択します。開始日を選択しない場合、現在の日時が開始日として使用されます。終了日はオプションです。ただし、終了日がないと、ライブ・フィードはポーリングを継続します。


      「次」をクリックして、「API詳細」タブに進みます。

  5. ジョブの手動実行:

    ジョブ機能は、DBMS_SCHEDULERまたはAPI’sを使用して作成された後に実行できます。

    「ジョブの作成」ダイアログの「APIの詳細」タブで、左側のナビゲーションに次のペインを表示できます。
    • ジョブの実行: REST APIで文をコピーし、cURLを使用してRESTリソースにGETリクエストを発行することによって、特定のジョブを実行します。
      curl -u admin:<password>
            'https://*******.******.*******.oraclecloud.com:****/ords/admin/_/db-api/latest/data-tools/jobs/run'
            -X POST -H 'Content-Type: application/json;charset=UTF-8' -d '{"job_name":"My New
            Job","owner":"admin"}'

      これはサンプル・コードです。

      「SQL」セクションの下に表示された次のサンプル・コードをコピーして貼り付けて、SQLワークシートでジョブを実行することもできます。

      BEGIN
        C##ADP$SERVICE.DBMS_DATA_TOOLS.RUN_JOB('My New Job');
      END;
      /

      前述のサンプルSQLコードでは、特定のジョブ機能が実行されます。このコードをSQLワークシートで実行して、ジョブ機能を実行できます。

      ノート:

      API詳細では、現在のジョブ定義からREST、SQLおよびPL/SQLの例が生成されます。例には、ジョブ定義の機密データが含まれている場合があります。

    • ジョブ・アクティビティ詳細: このオプションは、進行中のジョブ実行のステータスをチェックするためのREST APIおよびSQL問合せを表示します。たとえば、ジョブに10時間かかる場合、ジョブが進行中かどうか、失敗したかどうかを表示できます。

      ノート:

      ジョブが実行されるたびに、すべてのステップのフロー全体が最初から開始されます。


    「Create」をクリックします。

    My New Jobが作成されたことを示す確認メッセージが表示されます。

    新しく作成されたジョブが「ジョブ」ページにリストされます。



    ジョブ機能を使用してSlackを構成した場合は、前述のステップで構成したイベントに関する通知もSlackで受信します。

    Slack構成の詳細は、DBMS_CLOUD_NOTIFICATIONの章を参照してください。