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.
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Crie uma série de valores agregados especificados ao longo de um eixo especificado.
Sintaxe
T| make-series [MakeSeriesParameters] [Coluna=] Agregação [default=DefaultValue] [, ...] onAxisColumn [frominício] [tofim] stepetapa [by [Coluna=] GroupExpression [, ...]]
Saiba mais sobre as convenções de sintaxe.
Parâmetros
| Nome | Digitar | Obrigatória | Descrição |
|---|---|---|---|
| Coluna | string |
O nome da coluna de resultado. Assume o padrão de um nome derivado da expressão. | |
| DefaultValue | escalar | Um valor padrão a ser usado em vez de valores ausentes. Se não houver nenhuma linha com valores específicos de AxisColumn e GroupExpression, o elemento correspondente da matriz será atribuído a DefaultValue. O padrão é 0. | |
| Agregação | string |
✔️ | Uma chamada para uma função de agregação, como count() ou avg(), com nomes de coluna como argumentos. Confira a lista de funções de agregação. Somente funções de agregação que retornam resultados numéricos podem ser usadas com o operador make-series. |
| AxisColumn | string |
✔️ | A coluna pela qual a série é ordenada. Normalmente, os valores de coluna são do tipo datetime ou timespan , mas todos os tipos numéricos são aceitos. |
| iniciar | escalar | ✔️ | O valor do limite inferior de AxisColumn para cada uma das séries a serem criadas. Se a inicialização não for especificada, será a primeira lixeira ou etapa que tem dados em cada série. |
| fim | escalar | ✔️ | O valor não inclusivo do limite deAxisColumn. O último índice da série temporal é menor que esse valor e é iniciar mais inteiro múltiplo da etapa que é menor que o final. Se o final não for especificado, ele será o limite superior da última lixeira ou etapa, que tem dados por cada série. |
| passo | escalar | ✔️ | A diferença, ou o tamanho do compartimento, entre dois elementos consecutivos da matriz AxisColumn. Para obter uma lista de intervalos de tempo possíveis, confira timespan. |
| GroupExpression | uma expressão sobre as colunas que fornece um conjunto de valores distintos. Geralmente é um nome de coluna que já fornece um conjunto restrito de valores. | ||
| MakeSeriesParameters | Zero ou mais parâmetros separados por espaço na forma de Valor de Nome = que controlam o comportamento. Confira parâmetros de série make com suporte. |
Observação
Os startparâmetros , ende step são usados para criar uma matriz de valores AxisColumn . A matriz consiste em valores entre start e end, com o step valor que representa a diferença entre um elemento de matriz para o próximo. Todos os valores de Agregação são ordenados respectivamente a essa matriz.
Parâmetros de série make com suporte
| Nome | Descrição |
|---|---|
kind |
Produz o resultado padrão quando a entrada do operador make-series está vazia. Valor: nonempty |
hint.shufflekey=<key> |
A consulta shufflekey compartilha a carga de consulta em nós de cluster usando uma chave para particionar dados. Confira a consulta aleatória |
Observação
As matrizes geradas pela make-series são limitadas a 1.048.576 valores (2^20). Tentar gerar uma matriz maior usando make-series resultará em um erro ou em uma matriz truncada.
Sintaxe alternativa
T| make-series [Coluna=] Agregação [default=DefaultValue] [, ...] onAxisColumninrange(início,fim,etapa) [by [Coluna=] GroupExpression [, ...]]
A série gerada com a sintaxe alternativa difere da sintaxe principal em dois aspectos:
- O valor de fim é inclusivo.
- O binning do eixo de índice é gerado com bin() e não bin_at(), o que significa que o início pode não ser incluído na série gerada.
Recomendamos que você use a sintaxe principal da make-series e não a sintaxe alternativa.
Retornos
As linhas de entrada são organizadas em grupos com os mesmos valores que as expressões by e a expressão bin_at(AxisColumn,etapa,início). Em seguida, as funções de agregação especificadas são calculadas sobre cada grupo, produzindo uma linha para cada grupo. O resultado contém as colunas by e AxisColumn e pelo menos uma coluna para cada agregação calculada. (Não há suporte para a agregação de várias colunas ou resultados não numéricos.)
Esse resultado intermediário tem tantas linhas quanto há combinações distintas de by e valores de bin_at(AxisColumn,etapa,início).
Por fim, as linhas do resultado intermediário organizadas em grupos que têm os mesmos valores que as expressões by e todos os valores agregados são organizados em matrizes (valores do tipo dynamic). Para cada agregação, há uma coluna contendo sua matriz com o mesmo nome. A última coluna é uma matriz que contém os valores de AxisColumn compartimentalizados de acordo com a etapaespecificada.
Observação
Embora você possa fornecer expressões aleatórias para as expressões de agregação e de agrupamento, é mais eficiente usar nomes de coluna simples.
Lista de funções de agregação
| Função | Descrição |
|---|---|
| avg() | Retorna um valor médio em todo o grupo |
| avgif() | Retorna uma média com o predicado do grupo |
| count() | Retorna uma contagem do grupo |
| countif() | Retorna uma contagem com o predicado do grupo |
| covariância() | Retorna a covariância de exemplo de duas variáveis aleatórias |
| covarianceif() | Retorna a covariância de exemplo de duas variáveis aleatórias com predicado |
| covariancep() | Retorna a covariância da população de duas variáveis aleatórias |
| covariancepif() | Retorna a covariância populacional de duas variáveis aleatórias com predicado |
| dcount() | Retorna uma contagem distinta aproximada dos elementos do grupo |
| dcountif() | Retorna uma contagem distinta aproximada com o predicado do grupo |
| max() | Retorna o valor máximo no grupo |
| maxif() | Retorna o valor máximo com o predicado do grupo |
| min() | Retorna o valor mínimo no grupo |
| minif() | Retorna o valor mínimo com o predicado do grupo |
| percentil() | Retorna o valor do percentil entre o grupo |
| take_any() | Retorna um valor não vazio aleatório para o grupo |
| stdev() | Retorna o desvio padrão no grupo |
| sum() | Retorna a soma dos elementos dentro do grupo |
| sumif() | Retorna a soma dos elementos com o predicado do grupo |
| variação() | Retorna a variação de exemplo em todo o grupo |
| variaçãose() | Retorna a variação de exemplo em todo o grupo com predicado |
| variação() | Retorna a variação da população em todo o grupo |
| variancepif() | Retorna a variação da população entre o grupo com predicado |
Lista de funções de análise de série
| Função | Descrição |
|---|---|
| series_fir() | Aplica o filtro de Resposta a impulso finito |
| series_iir() | Aplica o filtro de Resposta a impulso infinito |
| series_fit_line() | Encontra uma linha reta que é a melhor aproximação da entrada |
| series_fit_line_dynamic() | Localiza uma linha que é a melhor aproximação da entrada, retornando o objeto dinâmico |
| series_fit_2lines() | Localiza duas linhas que são a melhor aproximação da entrada |
| series_fit_2lines_dynamic() | Localiza duas linhas que são a melhor aproximação da entrada, retornando o objeto dinâmico |
| series_outliers() | Classifica pontos de anomalia em uma série |
| series_periods_detect() | Encontra os períodos mais significativos existentes em uma série temporal |
| series_periods_validate() | Verifica se uma série temporal contém padrões periódicos com os tamanhos fornecidos |
| series_stats_dynamic() | Retorna várias colunas com as estatísticas comuns (mín./máx./variância/desvio padrão/média) |
| series_stats() | Gera um valor dinâmico com as estatísticas comuns (mín./máx./variância/desvio padrão/média) |
Para obter uma lista completa de funções de análise de série, confira: Funções de processamento de série
Lista de funções de interpolação de séries
| Função | Descrição |
|---|---|
| series_fill_backward() | Executa a interpolação de preenchimento regressiva dos valores ausentes em uma série |
| series_fill_const() | Substitui os valores ausentes em uma série por um valor constante especificado |
| series_fill_forward() | Executa a interpolação de preenchimento progressiva dos valores ausentes em uma série |
| series_fill_linear() | Executa a interpolação linear dos valores ausentes em uma série |
- Observação: Por padrão, as funções de interpolação pressupõem
nullcomo um valor ausente. Portanto, especifiquedefault=double(null) emmake-seriesse você pretende usar funções de interpolação para a série.
Exemplos
Uma tabela que mostra as matrizes dos números e os preços médios de cada fruta de cada fornecedor, ordenados pelo carimbo de data/hora com o intervalo especificado. Há uma linha na saída para cada combinação distinta de frutas e fornecedor. As colunas de saída mostram a fruta, o fornecedor e as matrizes de: contagem, média e a linha do tempo inteira (de 01/01/2016 até 10/01/2016). Todas as matrizes são classificadas pelo respectivo carimbo de data/hora e todas as lacunas são preenchidas com valores padrão (0 neste exemplo). Todas as outras colunas de entrada são ignoradas.
T | make-series PriceAvg=avg(Price) default=0
on Purchase from datetime(2016-09-10) to datetime(2016-09-13) step 1d by Supplier, Fruit
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| make-series avg(metric) on timestamp from stime to etime step interval
| avg_metric | carimbo de data/hora |
|---|---|
| [ 4.0, 3.0, 5.0, 0.0, 10.5, 4.0, 3.0, 8.0, 6.5 ] | [ "2017-01-01T00:00:00.0000000Z", "2017-01-02T00:00:00.00000000Z", "2017-01-03T00:00:00.0000000Z", "2017-01-04T00:00:00.0000000Z", "2017-01-05T00:000:00.0000000Z", "2017-01-06T00:00:00.0000000Z", "2017-01-07T00:00:00.000000Z", "2017-01-08T00:00:00.0000000Z", "2017-01-09T00:00:00.00000000Z" ] |
Quando a entrada de make-series estiver vazia, o comportamento padrão de make-series produzirá um resultado vazio.
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| take 0
| make-series avg(metric) default=1.0 on timestamp from stime to etime step interval
| count
Saída
| Contagem |
|---|
| 0 |
O uso kind=nonempty no make-series produz um resultado não vazio dos valores padrão:
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| take 0
| make-series kind=nonempty avg(metric) default=1.0 on timestamp from stime to etime step interval
Saída
| avg_metric | carimbo de data/hora |
|---|---|
| [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1,0 ] |
[ "2017-01-01T00:00:00.0000000Z", "2017-01-02T00:00:00.0000000Z", "2017-01-03T00:00:00.0000000Z", "2017-01-04T00:00:00.0000000Z", "2017-01-05T00:00:00.0000000Z", "2017-01-06T00:00:00.0000000Z", "2017-01-07T00:00:00.0000000Z", "2017-01-08T00:00:00.0000000Z", "2017-01-09T00:00:00.0000000Z" ] |
Usando make-series e mv-expand para preencher valores para registros ausentes:
let startDate = datetime(2025-01-06);
let endDate = datetime(2025-02-09);
let data = datatable(Time: datetime, Value: int, other:int)
[
datetime(2025-01-07), 10, 11,
datetime(2025-01-16), 20, 21,
datetime(2025-02-01), 30, 5
];
data
| make-series Value=sum(Value), other=-1 default=-2 on Time from startDate to endDate step 7d
| mv-expand Value, Time, other
| extend Time=todatetime(Time), Value=toint(Value), other=toint(other)
| project-reorder Time, Value, other
Saída
| Hora | Valor | outro |
|---|---|---|
| 2025-01-06T00:00:00Z | 10 | -1 |
| 2025-01-13T00:00:00Z | 20 | -1 |
| 2025-01-20T00:00:00Z | 0 | -2 |
| 2025-01-27T00:00:00Z | 30 | -1 |
| 2025-02-03T00:00:00Z | 0 | -2 |