大規模なデータセット内の異常の検出
非同期検出を使用して異常を検出するジョブを作成します。
非同期検出を使用すると、単変量と多変量の両方の検出データセットで異常を検出できます。非同期検出に適した一般的なユースケースは次のとおりです。
- 非常に大きなデータセットにおける異常の検出
-
detectAnomalies
REST同期APIでサポートされるデータ・ポイントの最大数は30,000です。これにより、多数のデータ・ポイント(通常は数百万単位)を検出する必要がある異常検出シナリオに制限が課される場合があります。非同期検出を使用すると、1,000万個を超えるデータ・ポイントの大規模なデータセットで異常を分析および検出できます。 - 検出ワークフローの自動化
-
IoTユースケースでは、通常、時系列データは多数のセンサーおよびデバイスから収集され、データベースやファイル・システムなどの永続データ・ストアに格納されます。多くの場合、このRAWデータは、推測を実行する前に、データ・フローなどのPaaSサービスを使用して前処理(エンリッチ)する必要があります。データ処理パイプライン内の非同期検出APIを簡単に統合し、検出ワークフローを自動化できます。
- 異常イベントの後処理
-
特定の異常検出シナリオでは、検出データ(検出された異常)をダウンストリーム・アプリケーションで使用する前に変換またはエンリッチする必要がある場合があります。非同期検出では、検出された異常はObject Storageバケットに保存されます。データ・フローなどのPaaSサービスを使用して、異常イベントを分析、処理およびエンリッチできます。さらに、Oracle Analytics Cloudのビジュアライゼーション・グラフで異常を消費およびレンダリングして、ターゲット・システムをモニターし、修正処理を実行できます。
前提条件:
非同期異常検出ジョブで使用するトレーニング済モデルを含むプロジェクトが必要です。
異常を検出して大きなデータセットから結果を取得する場合は、このアプローチをお薦めします。
- 既存のOCIドキュメントの説明に従って、OCI CLIまたはSDKをダウンロードして構成します。
-
HTTP POST
リクエストを作成してトレーニング済モデルを使用し、前のステップで受信したエンドポイントにリクエストを行います。 - HTTPレスポンスを解析して、アプリケーションで使用する結果を取得します。
APIコールの例
結果を検出および取得するには、次の異常検出コマンドおよび必須パラメータを使用します:
-
モデルを取得します:
https://anomalydetection.aiservice.us-phoenix-1.oci.oraclecloud.com/20210101/models/{ModelId} Method: GET Body:
-
データとの非同期検出:
Endpoint: https://anomalydetection.aiservice.us-phoenix-1.oci.oraclecloud.com/20210101/detectAnomalyJobs { "compartmentId": "ocid1.compartment.oc1..aaaaaaaaaqf4b7xq6kxrrb…..rcmjpbdfmcjmzdufz6sy52pra", "description": Ashburn data center, "displayName": Ashburn data center, "modelId": "ocid1.aianomalydetectionmodel.oc1.iad.amaaaaaaor7l3jia2q565gumqsmurg3anj6a6xad4e5talry7ynqivboyh5a", "inputDetails": { "inputType": "INLINE", "signalNames":["sensor1","sensor2","sensor3","sensor4","sensor5","sensor6","sensor7","sensor8","sensor9","sensor10"], "data": [ { "timestamp": "2020-07-13T18:54:46.000Z", "values": [ 0.2282, -0.7092, -1.2002, -0.7971, 2.0967, -0.7369, -0.5242, -0.3949, -0.6563, -0.9429 ] }, { "timestamp": "2020-07-13T18:55:46.000Z", "values": [ -0.4359, -0.153, -1.3603, -1.4552, 1.3512, -0.3683, -0.7328, -0.5223, -2.1182, -0.6212 ] }, { "timestamp": "2020-07-13T18:56:46.000Z", "values": [ -0.7482, -0.7112, -2.0408, -0.8236, 1.9157, -0.9435, -1.1136, 0.1365, -0.8872, -0.7323 ] }, { "timestamp": "2020-07-13T18:57:46.000Z", "values": [ 0.2655, -1.23, -0.6551, -0.6294, 1.4812, -1.1023, -1.3472, -1.18, -1.4353, -1.1863 ] }, { "timestamp": "2020-07-13T18:58:46.000Z", "values": [ -0.6848, -1.6165, -1.4954, -1.2594, 2.5512, -0.6693, -0.5837, -1.2494, -0.2837, -0.7751 ] } ] }, "outputDetails": { "outputType": "OBJECT_STORAGE", "namespaceName": "ax3dvjxgkemg", "bucketName": "output-bucket", "prefix": "test-prefix" } }
異常を検出して大きなデータセットから結果を取得する場合は、このアプローチをお薦めします。
- 既存のOCIドキュメントの説明に従って、OCI CLIまたはSDKをダウンロードして構成します。
-
HTTP POST
リクエストを作成してトレーニング済モデルを使用し、前のステップで受信したエンドポイントにリクエストを行います。 - HTTPレスポンスを解析して、アプリケーションで使用する結果を取得します。
APIコールの例
DetectAnomalies操作を使用すると、結果を検出および取得するのに役立ちます。
-
モデルを取得します:
https://anomalydetection.aiservice.us-phoenix-1.oci.oraclecloud.com/20210101/models/{ModelId} Method: GET Body:
-
データとの非同期検出:
Endpoint: https://anomalydetection.aiservice.us-phoenix-1.oci.oraclecloud.com/20210101/detectAnomalyJobs { "compartmentId": "ocid1.compartment.oc1..aaaaaaaaaqf4b7xq6kxrrb…..rcmjpbdfmcjmzdufz6sy52pra", "description": Ashburn data center, "displayName": Ashburn data center, "modelId": "ocid1.aianomalydetectionmodel.oc1.iad.amaaaaaaor7l3jia2q565gumqsmurg3anj6a6xad4e5talry7ynqivboyh5a", "inputDetails": { "inputType": "INLINE", "signalNames":["sensor1","sensor2","sensor3","sensor4","sensor5","sensor6","sensor7","sensor8","sensor9","sensor10"], "data": [ { "timestamp": "2020-07-13T18:54:46.000Z", "values": [ 0.2282, -0.7092, -1.2002, -0.7971, 2.0967, -0.7369, -0.5242, -0.3949, -0.6563, -0.9429 ] }, { "timestamp": "2020-07-13T18:55:46.000Z", "values": [ -0.4359, -0.153, -1.3603, -1.4552, 1.3512, -0.3683, -0.7328, -0.5223, -2.1182, -0.6212 ] }, { "timestamp": "2020-07-13T18:56:46.000Z", "values": [ -0.7482, -0.7112, -2.0408, -0.8236, 1.9157, -0.9435, -1.1136, 0.1365, -0.8872, -0.7323 ] }, { "timestamp": "2020-07-13T18:57:46.000Z", "values": [ 0.2655, -1.23, -0.6551, -0.6294, 1.4812, -1.1023, -1.3472, -1.18, -1.4353, -1.1863 ] }, { "timestamp": "2020-07-13T18:58:46.000Z", "values": [ -0.6848, -1.6165, -1.4954, -1.2594, 2.5512, -0.6693, -0.5837, -1.2494, -0.2837, -0.7751 ] } ] }, "outputDetails": { "outputType": "OBJECT_STORAGE", "namespaceName": "ax3dvjxgkemg", "bucketName": "output-bucket", "prefix": "test-prefix" } }