Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
A partir de 20 de setembro de 2023, você não poderá criar novos recursos do Detector de Anomalias. O serviço Detector de Anomalias está sendo desativado em 1º de outubro de 2026. Recomendamos migrar para Microsoft Fabric, que integra o microsoft/anomaly-detector de software livre ou diretamente ao projeto de detector de anomalias de software livre.
Use este tutorial para encontrar anomalias em um conjunto de dados de série temporal como um lote. Usando o Power BI Desktop, você usará um arquivo Excel, preparará os dados para a API de Detecção de Anomalias e visualizará anomalias estatísticas no arquivo.
Neste tutorial, você aprenderá como:
- Usar Power BI Desktop para importar e transformar um conjunto de dados de série temporal
- Integrar Power BI Desktop com a API Anomaly Detector para detecção em lote de anomalias
- Visualize as anomalias encontradas em seus dados, incluindo os valores esperados e vistos e os limites da detecção de anomalias.
Pré-requisitos
- Uma assinatura Azure
- Microsoft Power BI Desktop, disponível gratuitamente.
- Um arquivo do Excel (.xlsx) contendo pontos de dados de série temporal.
- Depois de obter sua assinatura do Azure, crie um recurso do Detector de Anomalias no Portal do Azure para obter sua chave e seu ponto de extremidade.
- Você precisará da chave e do ponto de extremidade do recurso criado para conectar seu aplicativo ao API do Detector de Anomalias. Você fará isso posteriormente no início rápido.
Observação
Para melhores resultados ao usar a API Anomaly Detector, os dados de série temporal formatados em JSON devem incluir:
- pontos de dados separados pelo mesmo intervalo, com no máximo 10% do número esperado de pontos ausentes.
- pelo menos 12 pontos de dados se seus dados não tiverem um padrão sazonal claro.
- pelo menos 4 ocorrências de padrão se seus dados tiverem um padrão sazonal claro.
Carregar e formatar os dados de série temporal
Para começar, abra Power BI Desktop e carregue os dados de série temporal baixados dos pré-requisitos. Este arquivo do Excel contém uma série de pares de valor e carimbo de data/hora UTC (Tempo Universal Coordenado).
Observação
Power BI pode usar dados de uma ampla variedade de fontes, como arquivos .csv, bancos de dados SQL, armazenamento de blobs do Azure, entre outros.
Na janela principal do Power BI Desktop, selecione a faixa de opções Home. No grupo Dados Externos da faixa de opções, abra o menu suspenso Obter Dados e selecione Excel.
Depois que a caixa de diálogo for exibida, navegue até a pasta em que você baixou o arquivo .xlsx de exemplo e selecione-o. Após a exibição da caixa de diálogo Navegador, selecione Folha1 e, em seguida, Editar.
O Power BI converterá os carimbos de data/hora na primeira coluna em um tipo de dados Date/Time. Esses timestamps devem ser convertidos em texto para serem enviados para a API do Anomaly Detector. Se o editor de Power Query não abrir automaticamente, selecione Edit Queries na guia página inicial.
Selecione a faixa de opções Transform no Editor do Power Query. No grupo Qualquer Coluna, abra o menu suspenso Tipo de Dados: e selecione Texto.
Quando você receber um aviso sobre a alteração do tipo de coluna, clique em Substituir Atual. Em seguida, clique em Fechar e Aplicar ou Aplicar na faixa de opções Página Inicial.
Criar uma função para enviar os dados e formatar a resposta
Para formatar e enviar o arquivo de dados para o API do Detector de Anomalias, você pode invocar uma consulta na tabela criada acima. No Editor do Power Query, na faixa de opções Página Inicial, abra o menu suspenso Nova Fonte e clique em Consulta em Branco.
Verifique se a nova consulta está selecionada e selecione Editor Avançado.
No Editor Avançado, use o seguinte trecho de Power Query M para extrair as colunas da tabela e enviá-las para a API. Depois disso, a consulta criará uma tabela com base na resposta JSON e a retornará. Substitua a variável apiKey pela chave de API válida do Anomaly Detector e endpoint pelo endpoint. Depois de inserir a consulta no Editor Avançado, selecione Done.
(table as table) => let
apikey = "[Placeholder: Your Anomaly Detector resource access key]",
endpoint = "[Placeholder: Your Anomaly Detector resource endpoint]/anomalydetector/v1.0/timeseries/entire/detect",
inputTable = Table.TransformColumnTypes(table,{{"Timestamp", type text},{"Value", type number}}),
jsontext = Text.FromBinary(Json.FromValue(inputTable)),
jsonbody = "{ ""Granularity"": ""daily"", ""Sensitivity"": 95, ""Series"": "& jsontext &" }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Content-Type" = "application/json", #"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody, ManualStatusHandling={400}]),
jsonresp = Json.Document(bytesresp),
respTable = Table.FromColumns({
Table.Column(inputTable, "Timestamp")
,Table.Column(inputTable, "Value")
, Record.Field(jsonresp, "IsAnomaly") as list
, Record.Field(jsonresp, "ExpectedValues") as list
, Record.Field(jsonresp, "UpperMargins")as list
, Record.Field(jsonresp, "LowerMargins") as list
, Record.Field(jsonresp, "IsPositiveAnomaly") as list
, Record.Field(jsonresp, "IsNegativeAnomaly") as list
}, {"Timestamp", "Value", "IsAnomaly", "ExpectedValues", "UpperMargin", "LowerMargin", "IsPositiveAnomaly", "IsNegativeAnomaly"}
),
respTable1 = Table.AddColumn(respTable , "UpperMargins", (row) => row[ExpectedValues] + row[UpperMargin]),
respTable2 = Table.AddColumn(respTable1 , "LowerMargins", (row) => row[ExpectedValues] - row[LowerMargin]),
respTable3 = Table.RemoveColumns(respTable2, "UpperMargin"),
respTable4 = Table.RemoveColumns(respTable3, "LowerMargin"),
results = Table.TransformColumnTypes(
respTable4,
{{"Timestamp", type datetime}, {"Value", type number}, {"IsAnomaly", type logical}, {"IsPositiveAnomaly", type logical}, {"IsNegativeAnomaly", type logical},
{"ExpectedValues", type number}, {"UpperMargins", type number}, {"LowerMargins", type number}}
)
in results
Invoque a consulta em sua planilha selecionando Sheet1 abaixo de Inserir Parâmetro e selecione Invocar.
Importante
Lembre-se de remover a chave do seu código quando terminar e nunca poste-a publicamente. Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como Azure Key Vault. Consulte o artigo Serviços de IA do Azure security para obter mais informações.
Privacidade e autenticação da fonte de dados
Observação
Esteja ciente das políticas de sua organização referentes ao acesso a dados e à privacidade de dados. Consulte Power BI Níveis de privacidade da área de trabalho para obter mais informações.
Talvez você receba uma mensagem de aviso quando tentar executar a consulta, pois ela utiliza uma fonte de dados externa.
Para corrigir isso, selecione Arquivo e Opções e configurações. Em seguida, selecione Opções. Abaixo de Arquivo Atual, selecione Privacidade e Ignorar os Níveis de Privacidade e melhorar potencialmente o desempenho.
Além disso, talvez você receba uma mensagem solicitando que especifique como deseja se conectar à API.
Para corrigir isso, clique em Editar Credenciais na mensagem. Depois que a caixa de diálogo for exibida, selecione Anônimo para se conectar anonimamente à API. Depois, selecione Conectar.
Depois disso, clique em Fechar e Aplicar na faixa de opções Página Inicial para aplicar as alterações.
Visualizar a resposta da API Anomaly Detector
Na tela principal Power BI, comece a usar as consultas criadas acima para visualizar os dados. Primeiro selecione Gráfico de Linhas em Visualizações. Em seguida, adicione o carimbo de data/hora da função invocada ao Eixo do gráfico de linhas. Clique com o botão direito do mouse nele e selecione Carimbo de data/hora.
Adicione os campos a seguir da Função Invocada ao campo Valores do gráfico. Use a captura de tela abaixo para ajudar a criar o gráfico.
- Valor
- UpperMargins
- LowerMargins
- Valores Esperados
Depois de adicionar os campos, clique no gráfico e redimensione-o para mostrar todos os pontos de dados. O gráfico será semelhante à captura de tela abaixo:
Exibir pontos de dados de anomalias
No lado direito da janela Power BI, abaixo do painel FIELDS, clique com o botão direito do mouse em Value na consulta Invoked Function e selecione A nova medida rápida.
Na tela exibida, selecione Valor filtrado como o cálculo. Defina Valor Base como Sum of Value. Em seguida, arraste IsAnomaly dos campos Função Invocada para Filtro. Selecione True no menu suspenso Filtro.
Depois de clicar em OK, você terá um campo Value for True na parte inferior da lista de campos. Clique com o botão direito do mouse nele e renomeie-o para Anomalias. Adicione-o aos Valores do gráfico. Em seguida, selecione a ferramenta Formato e defina o tipo do eixo X como Categórico.
Aplique cores ao gráfico clicando na ferramenta Formato e em Cores de dados. O gráfico deverá ter uma aparência semelhante à seguinte: