TimescaleDB é um banco de dados de código aberto projetado para tornar o SQL escalonável para dados de série temporal. Ele foi projetado a partir do PostgreSQL e empacotado como uma extensão do PostgreSQL, fornecendo particionamento automático no tempo e no espaço (chave de particionamento), bem como suporte SQL completo.
Se você preferir não instalar ou administrar sua instância do TimescaleDB, experimente a avaliação gratuita de 30 dias do Timescale, nossa oferta de nuvem totalmente gerenciada. A escala de tempo é pré-paga. Não cobramos pelo armazenamento que você não usa, backups, snapshots, entrada ou saída.
Para determinar qual opção é melhor para você, consulte Produtos Timescale para obter mais informações sobre nossa versão Apache-2, Comunidade TimescaleDB (auto-hospedada) e Timescale Cloud (hospedado), incluindo: comparações de recursos, perguntas frequentes, documentação e suporte.
Abaixo está uma introdução ao TimescaleDB. Para obter mais informações, verifique estes outros recursos:
Documentação do desenvolvedor
Canal Slack
Fórum da comunidade sobre escala temporal
Notas de lançamento de escala de tempo e planos futuros
Para referência e clareza, todos os arquivos de código neste repositório fazem referência ao licenciamento em seu cabeçalho (a licença de código aberto Apache-2 ou a Licença de Escala de Tempo (TSL)). Os binários licenciados do Apache-2 podem ser construídos passando -DAPACHE_ONLY=1
para bootstrap
.
Colaboradores são bem-vindos.
(Para construir o TimescaleDB a partir do código-fonte, consulte as instruções em Construindo a partir do código-fonte .)
O TimescaleDB dimensiona o PostgreSQL para dados de série temporal por meio de particionamento automático no tempo e no espaço (chave de particionamento), mas mantém a interface padrão do PostgreSQL.
Em outras palavras, o TimescaleDB expõe o que parecem ser tabelas regulares, mas na verdade são apenas uma abstração (ou uma visualização virtual) de muitas tabelas individuais que compõem os dados reais. Essa visualização de tabela única, que chamamos de hipertabela, é composta de muitos pedaços, que são criados particionando os dados da hipertabela em uma ou duas dimensões: por um intervalo de tempo e por uma "chave de partição" (opcional), como ID do dispositivo, localização, ID do usuário, etc.
Praticamente todas as interações do usuário com o TimescaleDB são feitas com hipertabelas. Criar tabelas e índices, alterar tabelas, inserir dados, selecionar dados, etc., podem (e devem) ser executados na hipertabela.
Do ponto de vista de uso e gerenciamento, o TimescaleDB se parece com o PostgreSQL e pode ser gerenciado e consultado como tal.
As configurações prontas para uso do PostgreSQL são normalmente muito conservadoras para servidores modernos e TimescaleDB. Você deve certificar-se de que suas configurações postgresql.conf
estejam ajustadas, usando timescaledb-tune ou manualmente.
-- Não se esqueça de criar a extensão timescaledbCREATE EXTENSION timescaledb;-- Começamos criando uma tabela SQL regularCREATE TABLE condições ( time TIMESTAMPTZ NOT NULL, localização TEXTO NÃO NULO, temperatura DUPLA PRECISÃO NULA, umidade DOUBLE PRECISION NULL);-- Em seguida, convertemos em uma hipertabela que é particionada por timeSELECT create_hypertable('conditions', 'time');
Início rápido: Criando hipertabelas
Exemplos de referência
A inserção de dados na hipertabela é feita por meio de comandos SQL normais:
INSERT INTO condições (hora, local, temperatura, umidade) VALUES (NOW(), 'escritório', 70,0, 50,0);SELECT * FROM condições ORDER BY tempo DESC LIMIT 100;SELECT time_bucket('15 minutos', tempo) AS quinze_min , localização, COUNT(*),MAX(temperatura) AS max_temp,MAX(umidade) AS max_hum FROM condições WHERE tempo > NOW() - intervalo '3 horas' GROUP BY quinze_min, localização ORDER BY quinze_min DESC, max_temp DESC;
Além disso, o TimescaleDB inclui funções adicionais para análise de série temporal que não estão presentes no Vanilla PostgreSQL. (Por exemplo, a função time_bucket
acima.)
Início rápido: operações básicas
Exemplos de referência
API TimescaleDB
Timescale, um TimescaleDB totalmente gerenciado na nuvem, está disponível por meio de uma avaliação gratuita. Crie um banco de dados PostgreSQL na nuvem com o TimescaleDB pré-instalado para que você possa potencializar seu aplicativo com o TimescaleDB sem sobrecarga de gerenciamento.
TimescaleDB também está disponível pré-empacotado para diversas plataformas, como Linux, Windows, MacOS, Docker e Kubernetes. Para obter mais informações, consulte Instalar o TimescaleDB.
Para compilar a partir da origem, consulte Compilando a partir da origem.
Recursos básicos do TimescaleDB
Recursos avançados do TimescaleDB
Testando TimescaleDB
timescaledb-tune: ajuda a definir as configurações do PostgreSQL com base nos recursos do seu sistema.
timescaledb-parallel-copy: paralelize seu carregamento em massa inicial usando COPY
do PostgreSQL em vários trabalhadores.
Por que usar o TimescaleDB?
Migrando do PostgreSQL
Gravando dados
Consulta e análise de dados
Tutoriais e dados de amostra
Canal Slack
Problemas do GitHub
Suporte em escala de tempo: veja as opções de suporte (comunidade e assinatura)
Notas de lançamento em escala de tempo: veja informações detalhadas sobre versões atuais e anteriores e inscreva-se para ser notificado sobre novos lançamentos, correções e programas de acesso antecipado/beta.
Instruções para contribuidores
Guia de estilo de código