Partilhar via


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] [, ...] onAxisColumn [fromstart] [toend] stepstep [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] [, ...] onAxisColumninrange(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 bypasso,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, especifique default=double(null) no make-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

Três tabelas. A primeira lista dados não processados, a segunda tem apenas combinações distintas de data-fruta-fornecedor e a terceira contém os resultados da série de criaçã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
| 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"
]