Visão geral
Neste guia, você pode aprender como usar o driver Ruby 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 |
Crie uma coleção de séries temporais
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, você deve passar um hash de opções que contenha as especificações da coleção. Você pode definir as seguintes especificações para sua coleção de séries temporais:
: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 na entrada manual do MongoDB Server sobre o comando create
para saber mais sobre esses parâmetros.
Exemplo
O exemplo seguinte utiliza o método Collection#create
para criar uma coleção de séries temporais denominada october2024
com a opção :timeField`
definida como "timestamp"
:
client = Mongo::Client.new('<connection string>', database: 'weather') collection_name = 'october2024' time_series_options = { timeField: 'timestamp' } database = client.database database.command( create: collection_name, timeseries: time_series_options )
Para verificar se você criou a coleção com sucesso, imprima uma lista de todas as coleções em seu banco de dados e filtre por nome da coleção, conforme mostrado no código a seguir:
collections = database.list_collections(filter: { name: 'october2024' }).to_a puts collections
[ { "name": "october2024", "type": "timeseries", "options": { "timeseries": { "timeField": "timestamp", "granularity": "seconds", "bucketMaxSpanSeconds": 3600 } }, "info": { "readOnly": false } } ]
Armazenar dados de série temporal
Você pode inserir dados em uma coleção de séries temporais usando o método 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 o guia Inserir documentos.
Exemplo
Este exemplo insere dados de temperatura da cidade de Nova York na coleção de séries temporais october2024
criada na seção anterior Criar uma coleção de séries temporais. Cada documento contém os seguintes campos:
temperature
, que armazena medições de temperatura em graus Fahrenheitlocation
, que armazena metadados de localizaçãotimestamp
, que armazena o carimbo de data/hora da medição
client = Mongo::Client.new('<connection string>', database => 'your_db') collection = client[:october2024] document_list = [ { temperature: 77, location: "New York City", timestamp: DateTime.new(2024, 10, 22, 6, 0, 0) }, { temperature: 74, location: "New York City", timestamp: DateTime.new(2024, 10, 23, 6, 0, 0) } ] collection.insert_many(document_list)
Consultar dados de série temporal
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 os seguintes guias:
Informações adicionais
Para saber mais sobre os conceitos deste guia, consulte as seguintes entradas de manual do MongoDB Server :
Documentação da API
Para saber mais sobre os métodos mencionados neste guia, consulte a seguinte documentação da API: