データフィードAPIの開始
1つ以上のデータフィードを開始します。
リクエスト
POST _ml/datafeeds/<feed_id>/_start
前提条件
- データフィードを開始する前に、異常検出ジョブがオープンである必要があります。そうでない場合、エラーが発生します。
manage_ml
クラスター権限が必要です。この権限はmachine_learning_admin
ビルトインロールに含まれています。
説明
データフィードは、Elasticsearchからデータを取得するために開始する必要があります。データフィードは、そのライフサイクルの間に何度も開始および停止できます。
停止したデータフィードを再起動すると、デフォルトでは停止した後の次のミリ秒から入力データの処理を続けます。停止と開始の間にその正確なミリ秒に新しいデータがインデックスされた場合、それは無視されます。
Elasticsearchのセキュリティ機能が有効になっている場合、データフィードは、作成または更新時に最後のユーザーが持っていたロールを記憶し、それらのロールを使用してクエリを実行します。データフィードを作成または更新する際に 二次認証ヘッダー を提供した場合、それらの資格情報が代わりに使用されます。
パスパラメータ
<feed_id>
- (必須、文字列) データフィードを一意に識別する数値文字列。この識別子は、小文字の英数字(a-zおよび0-9)、ハイフン、アンダースコアを含むことができます。英数字で始まり、英数字で終わる必要があります。
クエリパラメータ
end
- (オプション、文字列) データフィードが終了すべき時刻。次のいずれかの形式を使用して指定できます:
- ミリ秒を含むISO 8601形式、例えば
2017-01-22T06:00:00.000Z
- ミリ秒を含まないISO 8601形式、例えば
2017-01-22T06:00:00+00:00
- エポックからのミリ秒、例えば
1485061200000
ISO 8601形式の日時引数は、タイムゾーン指定子を持っている必要があり、Z
はUTC時間の略語として受け入れられます。
URLが期待される場合(例えば、ブラウザで)、タイムゾーン指定子で使用される+
は%2B
としてエンコードする必要があります。
この値は排他的です。終了時刻を指定しない場合、データフィードは継続的に実行されます。
- ミリ秒を含むISO 8601形式、例えば
start
- (オプション、文字列) データフィードが開始すべき時刻。これは
end
パラメータと同じ形式を使用して指定できます。この値は包括的です。
開始時刻を指定せず、データフィードが新しい異常検出ジョブに関連付けられている場合、分析は利用可能なデータの最も早い時刻から開始されます。
停止したデータフィードを再起動し、最新の処理済みレコードのタイムスタンプよりも早いstart
値を指定した場合、データフィードは最新の処理済みレコードのタイムスタンプの1ミリ秒後から続行されます。 timeout
- (オプション、時間) データフィードが開始するまでの待機時間を指定します。デフォルト値は20秒です。
リクエストボディ
リクエストボディ内でクエリパラメータ(end
やstart
など)を指定することもできます。
レスポンスボディ
node
- (文字列) データフィードが開始されたノードのID。データフィードが遅延オープンを許可されており、まだノードに割り当てられていない場合、この値は空の文字列です。
started
- (ブール値) 成功したレスポンスの場合、この値は常に
true
です。失敗した場合は、代わりに例外が返されます。
例
Python
resp = client.ml.start_datafeed(
datafeed_id="datafeed-low_request_rate",
start="2019-04-07T18:22:16Z",
)
print(resp)
Js
const response = await client.ml.startDatafeed({
datafeed_id: "datafeed-low_request_rate",
start: "2019-04-07T18:22:16Z",
});
console.log(response);
コンソール
POST _ml/datafeeds/datafeed-low_request_rate/_start
{
"start": "2019-04-07T18:22:16Z"
}
コンソール-結果
{
"started" : true,
"node" : "node-1"
}