Menu Docs
Página inicial do Docs
/ / /
Driver Pymongo
/

Dados de Time Series

Neste guia, você pode aprender como usar o PyMongo para armazenar e interagir com dados de séries temporais.

Os dados de série temporal são compostos pelos seguintes componentes:

  • Quantidade medida

  • Carimbo de data/hora para a medição

  • Metadados que descrevem a medição

A tabela a seguir descreve situações de exemplo para as quais você pode armazenar dados de série temporal:

Situação
Quantidade medida
Metadata

Registro de vendas mensais por setor

receita em dólares

Empresa, país

Rastreando mudanças no tempo

Nível de precipitação

Localização, tipo de sensor

Registro de flutuações nos preços da casa própria

Preço do aluguel mensal

Localização, moeda

Importante

Versão do servidor para coleção de séries temporais

Para criar e interagir com coleções de séries temporais, você deve estar conectado a uma implantação executando o MongoDB Server 5.0 ou posterior.

Para criar uma coleção de séries temporais, passe os seguintes argumentos para o método create_collection():

  • Nome da nova coleção a ser criada

  • timeseries Argumento

O argumento timeseries é do tipo dict. Contém os seguintes campos:

  • timeField: especifica o campo que armazena um carimbo de data/hora em cada documento de série temporal.

  • metaField: especifica o campo que armazena metadados em cada documento de série temporal .

  • granularity: especifica o tempo aproximado entre carimbos de data/hora consecutivos. Os valores possíveis são 'seconds', 'minutes' e 'hours'.

  • bucketMaxSpanSeconds: define o tempo máximo entre os registros de data/hora no mesmo bucket.

  • bucketRoundingSeconds: define o número de segundos para arredondar para baixo quando o MongoDB define o timestamp mínimo para um novo bloco. Deve ser igual a bucketMaxSpanSeconds.

Consulte Campos de comando para saber mais sobre esses campos.

O exemplo seguinte cria uma coleção de séries temporais denominada october2024 com a opção timeField configurada para "timestamp". Selecione a aba Synchronous ou Asynchronous para ver o código correspondente:

database = client.get_database("weather")
time_series_options = {
"timeField": "timestamp"
}
database.create_collection("october2024", timeseries=time_series_options)
database = client.get_database("weather")
time_series_options = {
"timeField": "timestamp"
}
await database.create_collection("october2024", timeseries=time_series_options)

Para verificar se você criou a coleção com sucesso, você pode obter uma lista de todas as coleções em seu banco de dados e filtrar por nome da coleção. Selecione a aba Synchronous ou Asynchronous para ver o código correspondente:

print(list(database.list_collections(filter={'name': 'october2024'})))
{
"name": "october2024",
"type": "timeseries",
"options": {
"timeseries": {
"timeField": "timestamp",
"granularity": "seconds",
"bucketMaxSpanSeconds": 3600
}
},
"info": {
"readOnly": False
}
}
collections = await database.list_collections(filter={'name': 'october2024'})
print(await collections.to_list())
{
"name": "october2024",
"type": "timeseries",
"options": {
"timeseries": {
"timeField": "timestamp",
"granularity": "seconds",
"bucketMaxSpanSeconds": 3600
}
},
"info": {
"readOnly": False
}
}

Você pode inserir dados em uma coleção de séries temporais usando os métodos insert_one() ou insert_many() e especificando a medida, o carimbo de data/hora e os metadados em cada documento inserido.

Para saber mais sobre como inserir documentos, consulte Inserir documentos.

Este exemplo insere dados de temperatura da cidade de Nova York na october2024 coleção de séries temporais criada em Criar uma coleção de séries temporais. Cada documento contém os seguintes campos:

  • temperature, que armazena medições de temperatura em graus Fahrenheit

  • location, que armazena metadados de localização

  • timestamp, que armazena o carimbo de data/hora da medição

Selecione a aba Synchronous ou Asynchronous para ver o código correspondente:

from datetime import datetime
collection = database["october2024"]
document_list = [
{ "temperature": 77, "location": "New York City", "timestamp": datetime(2024, 10, 22, 6, 0, 0) },
{ "temperature": 74, "location": "New York City", "timestamp": datetime(2024, 10, 23, 6, 0, 0) }
]
collection.insert_many(document_list)
from datetime import datetime
collection = database["october2024"]
document_list = [
{ "temperature": 77, "location": "New York City", "timestamp": datetime(2024, 10, 22, 6, 0, 0) },
{ "temperature": 74, "location": "New York City", "timestamp": datetime(2024, 10, 23, 6, 0, 0) }
]
await collection.insert_many(document_list)

Dica

Formatando datas e horários

Para saber mais sobre como usar datetime objetos no PyMongo, consulte Datas e horários.

Você pode usar a mesma sintaxe e convenções para consultar os dados armazenados em uma coleção de séries temporais que você usa ao executar operações de leitura ou agregação em outras collections. Para saber mais sobre essas operações, consulte Consultar e transformar seus dados com agregação.

Para saber mais sobre os conceitos deste guia, consulte as seguintes entradas de manual do MongoDB Server :

Para saber mais sobre os métodos mencionados neste guia, consulte a seguinte documentação da API:

Voltar

UUIDs

Nesta página