operador make-series
Crie uma série de valores agregados especificados ao longo de um eixo especificado.
Syntax
T| make-series
[MakeSeriesParameters] [Column=
] Aggregation [default
=
DefaultValue] [,
...] on
AxisColumn [from
start] [to
end] step
step [by
[Column=
] GroupExpression [,
...]]
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
Coluna | string |
O nome da coluna de resultados. A predefinição é um nome derivado da expressão. | |
ValorPredefinido | escalar | Um valor predefinido a utilizar em vez de valores ausentes. Se não existir nenhuma linha com valores específicos de AxisColumn e GroupExpression, será atribuído um ValorPredefinido ao elemento correspondente da matriz. A predefinição é 0. | |
Agregação | string |
✔️ | Uma chamada para uma função de agregação, como count() ou avg() , com nomes de colunas como argumentos. Veja a lista de funções de agregação. Apenas as funções de agregação que devolvem resultados numéricos podem ser utilizadas com o make-series operador . |
AxisColumn | string |
✔️ | A coluna pela qual a série será ordenada. Normalmente, os valores das colunas serão do tipo datetime ou timespan mas todos os tipos numéricos são aceites. |
iniciar | escalar | ✔️ | O valor vinculado baixo de AxisColumn para cada uma das séries a criar. Se o início não for especificado, será a primeira classe ou passo que tem dados em cada série. |
terminar | escalar | ✔️ | O valor alto não inclusivo da Coluna Do Eixo. O último índice da série temporal é menor do que este valor e será iniciado com um múltiplo inteiro de passo menor que o fim. Se o fim não for especificado, será o limite superior da última classe, ou passo, que tem dados por cada série. |
passo | escalar | ✔️ | A diferença, ou tamanho da discretização, entre dois elementos consecutivos da matriz AxisColumn . Para obter uma lista de intervalos de tempo possíveis, consulte o intervalo de tempo. |
GroupExpression | 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 sob a forma deValor de Nome= que controlam o comportamento. Veja parâmetros de séries de criação suportados. |
Nota
Os parâmetros de início, fim e passo são utilizados para criar uma matriz de valores AxisColumn . A matriz consiste em valores entre o início e o fim, com o valor do passo a representar a diferença entre um elemento de matriz e o seguinte. Todos os valores de Agregação são ordenados, respetivamente, para esta matriz.
Parâmetros de série de criação suportados
Nome | Descrição |
---|---|
kind |
Produz o resultado predefinido quando a entrada do operador make-series está vazia. Valor: nonempty |
hint.shufflekey=<key> |
A shufflekey consulta partilha o carregamento da consulta em nós de cluster, utilizando uma chave para particionar dados. Ver consulta aleatória |
Nota
As matrizes geradas por make-series estão limitadas a valores de 1048576 (2^20). Tentar gerar uma matriz maior com séries de criação resultaria num erro ou numa matriz truncada.
Sintaxe Alternativa
Agregação T| make-series
[Coluna=
] [default
=
ValorPredefinido] [,
...] on
AxisColumnin
range(
iniciar,
parar,
passo)
[by
[Coluna=
] GroupExpression [,
...]]
A série gerada a partir da sintaxe alternativa difere da sintaxe principal em dois aspetos:
- O valor de paragem é inclusivo.
- A discretização do eixo de índice é gerada com bin() e não bin_at(), o que significa que o início pode não ser incluído na série gerada.
Recomenda-se utilizar a sintaxe principal da série make e não a sintaxe alternativa.
Devoluções
As linhas de entrada são dispostas em grupos com os mesmos valores das by
expressões e a expressãode início)
do bin_at(
passo,
AxisColumn,
. Em seguida, as funções de agregação especificadas são calculadas em cada grupo, produzindo uma linha para cada grupo. O resultado contém as colunas, a by
coluna AxisColumn e, pelo menos, uma coluna para cada agregação calculada. (As agregações em múltiplas colunas ou resultados não numéricos não são suportadas.)
Este resultado intermédio tem tantas linhas quanto existem combinações distintas de e bin_at(
valores deinício)
do by
passo,
AxisColumn,
.
Por fim, as linhas do resultado intermédio dispostos em grupos com os mesmos valores das by
expressões e todos os valores agregados são dispostas em matrizes (valores do dynamic
tipo). Para cada agregação, existe uma coluna que contém a respetiva matriz com o mesmo nome. A última coluna é uma matriz que contém os valores de AxisColumn binários de acordo com o passo especificado.
Nota
Embora possa fornecer expressões arbitrárias para as expressões de agregação e agrupamento, é mais eficiente utilizar nomes de coluna simples.
Lista de funções de agregação
Função | Descrição |
---|---|
avg() | Devolve um valor médio em todo o grupo |
avgif() | Devolve uma média com o predicado do grupo |
count() | Devolve uma contagem do grupo |
countif() | Devolve uma contagem com o predicado do grupo |
dcount() | Devolve uma contagem aproximada e distinta dos elementos do grupo |
dcountif() | Devolve uma contagem aproximada distinta com o predicado do grupo |
max() | 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 de 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 |
sum() | Devolve a soma dos elementos dentro do grupo |
sumif() | Devolve a soma dos elementos com o predicado do grupo |
variance() | Devolve a variância em todo o grupo |
Lista de funções de análise de séries
Função | Descrição |
---|---|
series_fir() | Aplica o filtro Finite Impulse Response |
series_iir() | Aplica o filtro Infinite Impulse Response |
series_fit_line() | Localiza uma linha reta que é a melhor aproximação da entrada |
series_fit_line_dynamic() | Localiza uma linha que é a melhor aproximação da entrada, devolvendo 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, devolvendo o objeto dinâmico |
series_outliers() | Pontua pontos anómalos numa série |
series_periods_detect() | Localiza os períodos mais significativos que existem numa série temporal |
series_periods_validate() | Verifica se uma série temporal contém padrões periódicos de determinados comprimentos |
series_stats_dynamic() | Devolver múltiplas colunas com as estatísticas comuns (min/max/variance/stdev/average) |
series_stats() | Gera um valor dinâmico com as estatísticas comuns (min/max/variance/stdev/average) |
Para obter uma lista completa das funções de análise de séries, veja: Funções de processamento de séries
Lista de funções de interpolação de séries
Função | Descrição |
---|---|
series_fill_backward() | Efetua a interpolação de preenchimento anterior de valores em falta numa série |
series_fill_const() | Substitui os valores em falta numa série por um valor constante especificado |
series_fill_forward() | Efetua a interpolação de preenchimento reencaminhamento de valores em falta numa série |
series_fill_linear() | Efetua a interpolação linear de valores em falta numa série |
- Nota: por predefinição, as funções de interpolação assumem
null
como um valor em falta. Por conseguinte, especifiquedefault=
double(null
) nomake-series
se pretender utilizar 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 encomendado pelo carimbo de data/hora com intervalo especificado. Existe uma linha na saída para cada combinação distinta de fruta e fornecedor. As colunas de saída mostram os frutos, fornecedores e matrizes de: contagem, média e toda a linha cronológica (de 2016-01-01 a 2016-01-10). Todas as matrizes são ordenadas pelo respetivo carimbo de data/hora e todas as lacunas são preenchidas com valores predefinidos (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.00000000Z", "2017-01-02T00:00:00.0000000Z", "2017-01-03T00:00:00.00000000Z", "2017-01-04T00:00:00.00000000Z", "2017-01-05T00:0000:00.00000000Z", "2017-01-06T00:00:00.00000000Z", "2017-01-07T00:00:00.0000000Z", "2017-01-08T00:00:00.0000000Z", "2017-01-09T00:00:00.0000000z" ] |
Quando a entrada para make-series
está vazia, o comportamento predefinido 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
Saída
de palavras |
---|
0 |
Utilizar kind=nonempty
no make-series
produzirá um resultado não vazio dos valores predefinidos:
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" ] |
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários