カスタム (スクリプトでロード) タイプのデータソース

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:5分
  • カスタムスクリプトを使用して任意のタイプの受信データをインポートセットテーブルに保存します。

    データソースで [カスタム (スクリプトでロード)][タイプ] を選択すると、[データローダー] フィールドが表示されます。[データローダー] フィールドは JavaScript のフィールドであり、import_set_table 入力パラメーターを使用してデータをフェッチし、インポートセットテーブルに挿入できます。たとえば、REST API または添付ファイルからデータを取得するスクリプトを入力できます。

    [データローダー] スクリプトはデータをロードします。また、[並列ロードの有効化] で、スクリプトを使用してデータを小さなセクションに分割してから並列にロードすることもできます。並列ロードにより、統合を短時間で完了し、他のタスクへの影響を抑えることができます。通常、並列ジョブはすぐに処理されます。ジョブを遅延させる必要がある場合は、データローダースクリプトで遅延を設定できます。
    注:
    並列ロードでは、同時インポートを実行する必要があり、インポートの [パーティションメソッド][カスタム サイズ] に設定する必要があります。詳細については、「データインポートのスケジュール」を参照してください。

    データローダースクリプト

    データローダースクリプトには、以下の入力パラメーターがあります。
    • import_set_table:データソースレコードで参照されるインポートセットテーブル。データはこのテーブルに挿入されます。
    • data_source:データソースレコードで参照されるデータソース。
    • import_log:データインポートアクティビティに関する情報を記録するログ。
    • last_success_import_time:このデータソースが前回正常に実行された日時。
    • partition_info:データのパーティショニング情報。並列ロードに使用されます。
    import_set_table パラメーターには、以下のメソッドがあります。
    • addColumn(label, maxLength):文字列タイプの列をインポートセットテーブルに追加します。
    • addJSONColumn(label, maxLength):JSON タイプの列をインポートセットテーブルに追加します。
    • addXMLColumn(label, maxLength):XML タイプの列をインポートセットテーブルに追加します。
    • insert(rowData):マップ (キー = 列名、値 = 列値) をインポートセットテーブルに挿入します。
    • getMaximumRows()[20 件のレコードのテストロード] をクリックすると 20 を返します。それ以外の場合は、-1 を返します。

    データローダーの例

    インポートセットテーブルにデータを挿入するスクリプトを示すデータローダーの例。

    並列ロードスクリプト

    並列ロードスクリプトには、以下の入力パラメーターがあります。
    • parallel_job_loader:並列ジョブ [sys_parallel_job] テーブル。
    • data_source:データソースレコードで参照されるデータソース。
    • import_log:データインポートアクティビティに関する情報を記録するログ。
    • last_success_import_time:このデータソースが前回正常に実行された日時。

    parallel_job_loader パラメーターには、パーティション情報を並列ジョブ [sys_parallel_job] テーブルに追加する add(partitionInfo) メソッドがあります。

    並列ロードの例

    この例では、並列ロードスクリプトはデータを小さなセクションに分割して並列にロードします。データローダースクリプトは、データをインポートセットテーブルにロードし、120 秒の遅延後にデータを処理する新しいパーティションを追加します。

    並列ロードスクリプトの例。

    並列ロードの遅延、ステータス、およびプロパティ

    ほとんどの並列ジョブでは、データローダスクリプトの実行時にデータを利用できるため、データローダスクリプトに並列ジョブを追加する必要はありません。

    データがすぐに利用できない場合は、データローダースクリプトで遅延のある追加の並列ジョブを作成できます。データローダースクリプトが実行されると、遅延で指定された時間の後に実行されるように並列ジョブがスケジュールされます。

    データローダースクリプトに並列ジョブを追加するときは、繰り返しループを避けてください。制約を指定することで、繰り返しループを回避できます。前の例では、データローダースクリプトの並列ジョブは制約 (partition.start < 1000) を使用します。遅延は秒単位で測定されます。

    現在の並列インポートタスクのステータスを確認するには、同時インポートセット [sys_concurrent_import_set] テーブルに移動し、ジョブを選択して、[並列ジョブ] タブを表示します。

    遅延の時間の長さによっては、遅延したジョブが [処理待ち] と表示される場合があります。並列ジョブはイベントキューから処理されるため、イベント [sysevent] テーブルに移動し、[ キュー] [次の値に等しい] [impex_parallel_job_queue] でフィルタリングしてジョブを表示することもできます。

    ジョブが 600 分以上 [実行中] ステータスに留まると、自動的に [処理待ち] ステータスに戻ります。並列ジョブが [実行中] ステータスに留まれる許容時間は、com.glide.system_parallel_job_inactive_time_minutes プロパティで変更できます。

    並列ジョブを 2 回試行しても完了できない場合、そのジョブは [エラー] に設定されます。[エラー] ステータスになるまでの試行回数は、com.glide.system_parallel_job_max_retry_count プロパティで変更できます。com.glide.system_parallel_job_auto_retry プロパティを [false] に設定すると、自動再試行を無効にすることができます。

    スクリプトのオートコンプリート

    次の例に示すように、スクリプトを入力すると、スクリプトのオートコンプリートによって利用可能なオプションが表示されます。

    データローダーのオートコンプリート