Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Crie séries de valores agregados especificados ao longo de um eixo especificado.
Sintaxe
T| make-series [MakeSeriesParameters] [Coluna=] Agregação [default=DefaultValue] [, ...] onAxisColumn [fromstart] [toend] stepstep [by [Coluna=] GroupExpression [, ...]]
Saiba mais sobre convenções de sintaxe.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| Coluna | string |
O nome da coluna de resultados. O padrão é 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 receberá um DefaultValue. O padrão é 0. | |
| Agregação | string |
✔️ | Uma chamada para uma função de agregação , como count() ou avg(), com nomes de colunas como argumentos. Consulte 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. |
| começar | escalar | ✔️ | O valor de limite baixo do AxisColumn para cada uma das séries a serem criadas. Se o início não for especificado, é o primeiro compartimento, ou etapa, que tem dados em cada série. |
| fim | escalar | ✔️ | O valor não inclusivo de limite alto do AxisColumn. O último índice da série temporal é menor que esse valor e é início mais número inteiro múltiplo de etapa que é menor que fim. Se o fim não for especificado, é o limite superior do último compartimento, ou etapa, que tem dados por cada série. |
| passo | escalar | ✔️ | A diferença, ou tamanho do compartimento, entre dois elementos consecutivos da matriz AxisColumn. Para obter uma lista de intervalos de tempo possíveis, consulte período de tempo. |
| Expressão de Grupo | Uma expressão sobre as colunas que fornece um conjunto de valores distintos. Normalmente, é 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 Nome=Valor que controlam o comportamento. Consulte parâmetros de série suportados. |
Observação
Os startparâmetros , end, e são step usados para criar uma matriz de valores AxisColumn . A matriz consiste em valores entre start e end, com o step valor representando a diferença entre um elemento de matriz para o próximo. Todos os valores de de agregação são ordenados respectivamente para esta matriz.
Parâmetros make series suportados
| Nome | Descrição |
|---|---|
kind |
Produz 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. Consulte consulta aleatória |
Observação
As matrizes geradas por make-series são limitadas a 1.048.576 valores (2^20). Tentar gerar uma matriz maior com make-series resultaria em um erro ou em uma matriz truncada.
de sintaxe alternativa
T| make-series [Coluna=] Agregação [default=DefaultValue] [, ...] onAxisColumninrange(iniciar,parar,etapa) [by [Coluna=] GroupExpression [, ...]]
A série gerada a partir da sintaxe alternativa difere da sintaxe principal em dois aspetos:
- O valor stop é inclusivo.
- A vinculação do eixo do índice é gerada com bin() e não com 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 de make-series e não a sintaxe alternativa.
Devoluções
As linhas de entrada são organizadas em grupos com os mesmos valores das expressões by e a bin_at(etapa AxisColumn,,iniciar) expressão. 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, coluna AxisColumn e também pelo menos uma coluna para cada agregado calculado. (Não há suporte para agregações em várias colunas ou resultados não numéricos.)
Esse resultado intermediário tem tantas linhas quanto há combinações distintas de by e bin_at(AxisColumn,etapa,iniciar) valores.
Finalmente, as linhas do resultado intermediário organizadas em grupos com os mesmos valores das expressões by e todos os valores agregados são organizados em matrizes (valores de dynamic tipo). 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 binned de acordo com a etapa especificada.
Observação
Embora você possa fornecer expressões arbitrárias para as expressões de agregação e agrupamento, é mais eficiente usar nomes de coluna simples.
Lista de funções de agregação
| Função | Descrição |
|---|---|
| média() | Devolve um valor médio em todo o grupo |
| Avgif() | Devolve uma média com o predicado do grupo |
| contagem() | Devolve uma contagem do grupo |
| Countif() | Devolve uma contagem com o predicado do grupo |
| covariância() | Devolve a covariância amostral de duas variáveis aleatórias |
| covariânciase() | Devolve a covariância amostral de duas variáveis aleatórias com predicado |
| Covariancep() | Devolve a covariância populacional de duas variáveis aleatórias |
| Covariancepif() | Devolve a covariância populacional de duas variáveis aleatórias com predicado |
| dcount() | Devolve uma contagem distinta aproximada dos elementos do grupo |
| dcountif() | Devolve uma contagem distinta aproximada com o predicado do grupo |
| máx() | Devolve o valor máximo em todo o grupo |
| maxif() | Devolve o valor máximo com o predicado do grupo |
| min() | Devolve o valor mínimo em todo o grupo |
| minif() | Devolve o valor mínimo com o predicado do grupo |
| percentil() | Devolve o valor do percentil em todo o grupo |
| take_any() | Devolve um valor aleatório não vazio para o grupo |
| Stdev() | Devolve o desvio padrão em todo o grupo |
| soma() | Devolve a soma dos elementos dentro do grupo |
| sumif() | Devolve a soma dos elementos com o predicado do grupo |
| variância() | Devolve a variância da amostra em todo o grupo |
| variânciase() | Devolve a variância da amostra no grupo com predicado |
| variânciap() | Devolve a variância da população entre o grupo |
| variancepif() | Devolve a variância 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-se filtro de de resposta de impulso finito |
| series_iir() | Aplica-se filtro Resposta de Impulso Infinita |
| 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() | Pontua pontos de anomalia em uma série |
| series_periods_detect() | Localiza os períodos mais significativos que existem em uma série temporal |
| series_periods_validate() | Verifica se uma série cronológica contém padrões periódicos de determinados comprimentos |
| series_stats_dynamic() | Retornar várias colunas com as estatísticas comuns (min/max/variância/stdev/média) |
| series_stats() | Gera um valor dinâmico com as estatísticas comuns (min/max/variância/stdev/média) |
Para obter uma lista completa das funções de análise de série, consulte: Funções de processamento da série
Lista de funções de interpolação em série
| Função | Descrição |
|---|---|
| series_fill_backward() | Executa a interpolação de preenchimento retroativo de 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 direto de valores ausentes em uma série |
| series_fill_linear() | Executa interpolação linear de valores ausentes em uma série |
- Nota: As funções de interpolação por padrão assumem
nullcomo um valor ausente. Portanto, especifiquedefault=duplo (null) emmake-seriesse você pretende usar funções de interpolação para a série.
Exemplos
Uma tabela que mostra matrizes dos números e preços médios de cada fruta de cada fornecedor encomendado pelo carimbo de data/hora com intervalo especificado. Há uma linha na produção 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 toda a linha do tempo (de 2016-01-01 até 2016-01-10). Todas as matrizes são classificadas pelo respetivo 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 | Marca temporal |
|---|---|
| [ 4.0, 3.0, 5.0, 0.0, 10.5, 4.0, 3.0, 8.0, 6.5 ] | [ "2017-01-01T00:00: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:00.0000000Z" ] |
Quando a entrada para make-series está vazia, o comportamento padrão de make-series produz 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
Realização
| Contar |
|---|
| 0 |
O uso kind=nonempty de in 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
Realização
| avg_metric | Marca temporal |
|---|---|
| [ 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.00000000Z", "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.00000000Z" ] |
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
Realização
| Tempo / Hora | Valor | Outros |
|---|---|---|
| 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 |