Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

バッチ予測API

バッチ予測APIは、既にデプロイ済みの予測サーバーを使って大規模なデータセットをスコアリングする際の入力と出力の柔軟なオプションを提供します。 このAPIはDataRobotパブリックAPIを介して公開されます。 APIはREST対応クライアント、またはDataRobot PythonパブリックAPIバインディングを使用して消費できます。

バッチ予測REST APIルートの詳細については、 DataRobot REST APIリファレンスドキュメントをご覧ください。

APIの主要な機能を以下に示します。

  • 入力と出力の柔軟なオプション:
    • ローカルファイルをストリーミングし、アップロードと同時に結果のダウンロード行われる間にスコアリングを開始することができます。
    • S3間の大きなデータセットのスコアリング。
    • AIカタログからデータセットを読み取り。
    • スコアリングデータと結果の双方向ストリーミングでJDBCを用いて外部データソースに接続。
    • 入力と出力オプションの組み合わせ(ローカルファイルから S3ターゲットへのスコアリングなど)。
  • 同時並行制御レベルオプションによる予測サーバーオーバーロードに対する保護。
  • 予測の説明の追加(しきい値を追加するオプション)。
  • スコアリングされたデータとソースデータを関連付けるパススルー列のサポート。
  • 出力の予測注意の追加。
  • APIを介して1GB以上のファイルで予測を作成する機能。

時系列のバッチ予測設定の詳細については、時系列ドキュメントをご参照ください

制限

項目 AIプラットフォーム(SaaS) セルフマネージドAIプラットフォーム(VPCまたはオンプレミス)
ジョブのランタイム制限 4時間* 無制限
ローカルファイル入力サイズ 無制限 無制限
ローカルファイル書き込みサイズ 無制限 無制限
S3入力サイズ 無制限 無制限
S3書き込みサイズ 100GB 100GB(設定可能)
Azure入力サイズ 4.75TB 4.75TB
Azure書き込みサイズ 195GB 195GB
GCP入力サイズ 5TB 5TB
GCP書き込みサイズ 5TB 5TB
JDBC入力サイズ 無制限 無制限
JDBC出力サイズ 無制限 無制限
同時ジョブ数 予測インスタンスあたり1つ インストールあたり1つ
保存されたデータの保持時間

ローカルファイルアダプターの場合
48時間 48時間(設定可能)

* 特徴量探索プロジェクトには、6時間のジョブ実行時間制限があります。

同時ジョブ数

予測サーバーでの過負荷を防止するために、DataRobotでは、予測インスタンスあたり1つのジョブだけが実行されます。 追加のジョブはキューに入れられ、前のジョブが完了するとすぐに開始されます。

データパイプライン

バッチ予測ジョブは、次で構成されるデータパイプラインです。

データ入力 > 同時スコアリング > データ出力

作成時に、ジョブのintakeSettingsおよびoutputSettingsによってパイプラインのデータ入力およびデータ出力の部分が定義されます。 入力および出力オプションの任意の組み合わせを設定できます。 どちらの場合でも、デフォルトはローカルファイルの入力および出力なので、スコアリングするデータと共に個別のPUTリクエストを発行して、スコアリングされたデータをダウンロードする必要があります。

バッチ予測用にサポートされるデータソース

次の表は、バッチ予測に対するデータソースのサポートを示しています。

名前 ドライバーのバージョン 入力サポート 出力サポート 検証済みのDataRobotバージョン
AWS Athena 2.0 2.0.35 はい いいえ 7.3
Databricks 2.6.34 はい はい 9.2
Exasol 7.0.14 はい はい 8.0
Google BigQuery 1.2.4 はい はい 7.3
InterSystems 3.2.0 はい いいえ 7.3
kdb+ - はい はい 7.3
Microsoft SQL Server 12.2.0 はい はい 6.0
MySQL 8.0.32 はい はい 6.0
Oracle 11.2.0 はい はい 7.3
PostgreSQL 42.5.1 はい はい 6.0
Presto* 0.216 はい はい 8.0
Redshift 2.1.0.14 はい はい 6.0
SAP HANA 2.15.10 はい いいえ 7.3
Snowflake 3.13.29 はい はい 6.2
Synapse 12.4.1 はい はい 7.3
Teradata** 17.10.00.23 はい はい 7.3
TreasureData 0.5.10 はい いいえ 7.3

*Prestoでは、書き込みを遅らせる可能性のある基盤となるコネクターのほとんどにauto commit: trueを使用する必要があります。

**Teradataへの出力の場合、DataRobotはANSIモードのみに対応します。

詳細については、次を参照してください。

同時スコアリング

スコアリングを行う際、提供したデータはブロックに分割され、デプロイで指定された予測インスタンスで同時にスコアリングされます。 同時実行のレベルを制御するには、ジョブを作成するときにnumConcurrentパラメーターを変更します。

ジョブの状態

バッチ予測を行う場合、各予測ジョブは4つの状態のいずれかになります。

  • INITIALIZING:ジョブが正常に作成され、かつ次のいずれかの場合:
    • プッシュするCSVデータを待機中(ローカルファイル入力の場合)。
    • 予測サーバー上でスロット処理を待機中。
  • RUNNING:予測サーバーでデータセットのスコアリングが開始された。
  • ABORTED:次のいずれかの理由でジョブが中断された。
    • 無効な設定があった。
    • DataRobotで20%または100MBの無効なスコアリングデータが発生し、その結果として予測エラーとなった。
  • COMPLETED:データセットがスコアリングされ、かつ
    • スコアリング済みデータをダウンロードできる(ローカルファイル出力の場合)。
    • または、データが送付先に書き込まれている。

資格情報を安全に保存する

スコアリングの一部のソースまたはターゲットは、DataRobotがユーザーに代わって認証することをリクエストしています(たとえば、データベースがログイン時にユーザー名とパスワードに合格することをリクエストする場合)。 これらの資格情報が正しく保存されるようにするには、データ資格情報を有効にしておく必要があります。

DataRobotでは、以下の資格情報タイプおよびプロパティーが使用されます。

アダプター 資格情報タイプ プロパティ
S3入力/出力 s3 awsAccessKeyId
awsSecretAccessKey
awsSessionToken(オプション)
JDBC入力/出力 ベーシック ユーザー名
パスワード

保存された資格情報を使用するには、各アダプターの以下の説明にあるようにintakeSettingsまたはoutputSettingsいずれかの該当するcredentialIdにパスする必要があります。

CSV形式

CSVファイルの読み取りまたは書き込みを処理する入出力オプションの場合は、csvSettingsに以下を指定することでカスタム形式を使用できます。

パラメーター 説明
delimiter , (オプション)使用する区切り文字。 デフォルト: , (コンマ)。 TABを区切りとして指定するには、文字列tabを使用します。
quotechar " (オプション)区切り文字を含むフィールドの引用に使用する文字。 デフォルト:"
encoding utf-8 (オプション)CSVファイルのエンコーディング。 例(ただし、これらに限定されません): shift_jislatin_1またはmskanji。 デフォルト:utf-8

任意のPythonでサポートされているエンコーディングを使用できます。

同じ形式が入力および出力の両方に使用されます。 完全な例を参照してください。

モデル監視

バッチ予測APIはDataRobotのモデル監視機能とうまく統合します。

  • デプロイのデータドリフト追跡を有効にすると、バッチ予測APIで実行されるすべての予測が追跡されます。
  • デプロイのターゲットドリフト追跡を有効にしている場合、出力には実測値報告に使用する目的の関連付けIDが含まれます。

デプロイに対して本番以外のデータセットを実行する必要がある場合は、以下のパラメーターを指定して単一ジョブのドリフトと精度の追跡をオフにできます。

パラメーター 説明
skipDriftTracking true (Optional) Skip data drift, target drift, and accuracy tracking for this job. デフォルト:false

デフォルト予測インスタンスの上書き

通常の状況下では、スコアリングに使用される予測サーバーがモデルがデプロイされた先のデフォルト予測サーバーとなります。 ただし、上書きはできません、複数の予測サーバーへのアクセス権がある場合は、predictionInstanceオプションの以下のプロパティを使用してデフォルト動作を上書きできます。

パラメーター 説明
hostName 192.0.2.4 モデルがデプロイされた先の予測サーバーから、デフォルトホスト名の代わりに使用するホスト名が設定されます。
sslEnabled false (オプション)SSL (HTTPS)を使用して予測サーバーにアクセスします。 デフォルト:true
apiKey NWU...IBn2w (オプション)ジョブ作成者のキーとは異なるAPIキーを使用して、新規予測サーバーに対して認証します。
datarobotKey 154a8abb-cbde-4e73-ab3b-a46c389c337b (オプション)マネージドAIプラットフォーム環境で実行中の場合は、予測サーバーに対して組織ごとのDataRobotキーを指定します。

デプロイ > 予測 > 予測APIタブを使用するか、DataRobot担当者に連絡してキーを見つけます。

以下は完全な例です。

job_details = {
    'deploymentId': deployment_id,
    'intakeSettings': {'type': 'localFile'},
    'outputSettings': {'type': 'localFile'},
    'predictionInstance': {
        'hostName': '192.0.2.4',
        'sslEnabled': False,
        'apiKey': 'NWUQ9w21UhGgerBtOC4ahN0aqjbjZ0NMhL1e5cSt4ZHIBn2w',
        'datarobotKey': '154a8abb-cbde-4e73-ab3b-a46c389c337b',
    },
} 

更新モデルと一致したスコアリング

ジョブがキューに入った後に新規モデルをデプロイすると、DataRobotは全ジョブのジョブ作成時にデプロイされたモデルを引き続き使用します。 すべての行が同じモデルでスコアリングされます。

テンプレート特徴量

ジョブ定義など、バッチジョブで動的パラメーターを指定すると便利な場合があります。 jinjaの特徴量構文(二重中括弧)を使用して、次のパラメーターの値を出力できます。

特徴量 説明
current_run_time datetime現在のUTC時間のオブジェクト(datetime.utcnow())
current_run_timestamp Unixエポックからのミリ秒(整数)
last_scheduled_run_time datetime同じジョブ定義からインスタンス化された最後のジョブの開始のオブジェクト
next_scheduled_run_time datetime同じジョブ定義から次にスケジュールされたジョブ開始のオブジェクト
last_completed_run_time datetime以前にスケジュールされたジョブがスコアリングを終了したときのオブジェクト

上記の特徴量は、次のフィールドで使用できます。

フィールド 条件
intake_settings.query JDBC、Synapse、およびSnowflakeアダプターの場合
output_settings.table JDBC、Synapse、Snowflake、およびBigQueryアダプターの場合、ステートメントタイプがcreate_tableまたはcreate_table_if_not_existsの場合、trueとマークされます
output_settings.url S3、GCP、およびAzureアダプターの場合

URLを次のように指定する必要があります。gs://bucket/output-<added-string-with-double-curly-braces>.csv

備考

ほとんどのデータベースが上記の置換を確実に理解できるようにするために、DataRobotはISO-8601形式のタイムスタンプからマイクロ秒を取り除きます。

APIリファレンス

パブリックAPI

バッチ予測APIはDataRobotパブリックAPIの一部で、DataRobotの右上にあるクエスチョンマークをクリックしてAPI ドキュメントを選択することによりアクセスできます。

Python APIクライアント

PythonパブリックAPIクライアントを使用して、バッチ予測APIと連携できます。


更新しました March 13, 2024