Detectando Anomalias em Grandes Conjuntos de Dados
Crie um job que detecte anomalias usando detecção assíncrona.
É possível usar a detecção assíncrona para detectar anomalias em conjuntos de dados de detecção univariados e multivariados. Os casos de uso típicos adequados para detecção assíncrona são:
- Detectando anomalias em conjuntos de dados muito grandes
-
O número máximo de pontos de dados suportados pela API Síncrona REST
detectAnomalies
é 30.000. Isso pode impor restrições em cenários de detecção de anomalias nos quais um grande número de pontos de dados (normalmente em milhões) precisa ser detectado. Usando a detecção assíncrona, você pode analisar e detectar anomalias em conjuntos de dados muito grandes, com mais de 10 milhões de pontos de dados. - Automatizando fluxos de trabalho de detecção
-
Em casos de uso do IoT, os dados de série de tempo geralmente são coletados de um grande número de sensores e dispositivos e armazenados em um armazenamento de dados persistente, como um banco de dados ou um sistema de arquivos. Geralmente, esses dados brutos devem ser pré-processados (enriquecidos) usando serviços PaaS, como Fluxo de Dados, antes que a dedução possa ser executada. Você pode integrar facilmente as APIs de detecção assíncrona dentro de pipelines de processamento de dados e automatizar workflows de detecção.
- Pós-processamento de eventos anômalos
-
Em determinados cenários de detecção de anomalias, os dados de detecção (anomalias detectadas) podem precisar ser transformados ou enriquecidos para que possam ser consumidos por aplicativos downstream. Com a detecção assíncrona, as anomalias detectadas são salvas em um bucket do Object Storage. Você pode usar serviços PaaS, como o serviço Data Flow, para analisar, processar e enriquecer os eventos anômalos. Além disso, você pode consumir e renderizar as anomalias em gráficos de visualização no Oracle Analytics Cloud para permitir que você monitore sistemas de destino e tome ações corretivas.
Pré-requisitos:
Você deve ter um projeto que contenha um modelo treinado para uso em um job assíncrono do serviço Anomaly Detection.
Recomendamos essa abordagem quando você deseja detectar anomalias e obter resultados de grandes conjuntos de dados.
- Faça download da CLI ou do SDK do OCI e configure-o(a) conforme descrito na documentação existente do OCI.
-
Use um modelo treinado criando uma solicitação
HTTP POST
e faça a solicitação ao ponto final recebido na etapa anterior. - Faça parse da resposta HTTP para obter os resultados a serem usados nos aplicativos.
Exemplo de Chamadas de API
Use os seguintes comandos do serviço Anomaly Detection e parâmetros necessários para ajudá-lo a detectar e obter resultados:
-
Obtenha o modelo:
https://anomalydetection.aiservice.us-phoenix-1.oci.oraclecloud.com/20210101/models/{ModelId} Method: GET Body:
-
Detecte de forma assíncrona com dados:
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" } }
Recomendamos essa abordagem quando você deseja detectar anomalias e obter resultados de grandes conjuntos de dados.
- Faça download da CLI ou do SDK do OCI e configure-o(a) conforme descrito na documentação existente do OCI.
-
Use um modelo treinado criando uma solicitação
HTTP POST
e faça a solicitação ao ponto final recebido na etapa anterior. - Faça parse da resposta HTTP para obter os resultados a serem usados nos aplicativos.
Exemplo de Chamadas de API
Use a operação DetectAnomalies para ajudar a detectar e obter resultados.
-
Obtenha o modelo:
https://anomalydetection.aiservice.us-phoenix-1.oci.oraclecloud.com/20210101/models/{ModelId} Method: GET Body:
-
Detecte de forma assíncrona com dados:
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" } }