Sobre o projeto
O TDengine é um banco de dados de séries temporais (TSDB) open-source posicionado para cargas de trabalho de Internet das Coisas (IoT), carros conectados e IoT Industrial. Seu objetivo declarado é a ingestão, processamento e análise em tempo real de grandes volumes de dados produzidos por diversos sensores e coletores, com o repositório descrevendo suporte para implantações de alta cardinalidade que abrangem um grande número de pontos de coleta.
As características de design listadas pelo projeto incluem uma arquitetura distribuída e cloud-native com sharding e particionamento, separação de computação e armazenamento, replicação baseada em RAFT, suporte a implantação em Kubernetes e integração de observabilidade. Em vez de exigir componentes separados para cache, processamento de stream e assinaturas, o TDengine agrupa essas capacidades no próprio banco de dados. Um componente de IA chamado TDgpt está incluído para tarefas de séries temporais, como previsão, detecção de anomalias, imputação e classificação, podendo conectar-se a modelos de fundação de séries temporais, modelos de linguagem de grande escala (LLMs), modelos de machine learning e algoritmos tradicionais.
A documentação para usuários, design do sistema e arquitetura reside no site de documentação do projeto, com opções de implantação abrangendo containers, pacotes de instalação, Kubernetes ou um serviço de nuvem hospedado. O README do repositório é orientado para desenvolvedores que desejam construir, testar, lançar e empacotar o TDengine a partir do código-fonte.
Pré-requisitos de compilação: Linux (Ubuntu 18.04+, CentOS 7+), macOS 10.15+ e suporte limitado ao Windows, em x86_64 ou ARM64, com recomendação de aproximadamente 4 GB de RAM e 2 GB de disco livre. O ferramental requer uma toolchain C/C++, CMake 3.21 ou superior, git, opcionalmente Python 3 para o framework de teste e Go 1.23+ para componentes como taosAdapter ou taosKeeper, além de ccache opcional e Conan 2.x para o componente taos-gen.
A compilação é feita out-of-tree com CMake. A primeira compilação deve habilitar -DBUILD_CONTRIB=ON para que dependências externas como xxhash, zstd e lz4 sejam buscadas e compiladas em .externals/; compilações posteriores reutilizam esses artefatos. Uma sequência típica é clonar o repositório, criar um diretório de debug, executar o cmake e então o make. Uma compilação de release com ferramentas de linha de comando utiliza -DCMAKE_BUILD_TYPE=Release e -DBUILD_TOOLS=ON.
O README documenta uma extensa tabela de opções com padrões, incluindo BUILD_TEST, BUILD_TOOLS, BUILD_SANITIZER, BUILD_COVERAGE, BUILD_JEMALLOC, BUILD_WEBSOCKET, BUILD_WITH_UDF, BUILD_GEOS, RUST_BINDINGS, escolhas de storage-engine (LevelDB, RocksDB, SQLite, Berkeley DB), opções de compressão (LZ4, LZMA2, TSZ) e opções de cloud-object (S3, COS), entre muitas outras. Os artefatos de compilação ficam em debug/build/bin (por exemplo, o daemon do servidor taosd, o cliente CLI taos e, com BUILD_TOOLS=ON, a ferramenta de benchmark taosBenchmark e a ferramenta de importação/exportação taosdump) e debug/build/lib (por exemplo, libtaos.so no Linux).
Os testes possuem duas camadas: testes unitários construídos com googletest e executados via ctest, e um framework de teste de integração baseado em Python em tests/, onde um servidor de teste é iniciado com uma configuração gerada e testes de sistema individuais são executados por script. Relatórios de cobertura podem ser gerados localmente usando scripts baseados em lcov, e o projeto linka para um painel de cobertura público.
O empacotamento é gerenciado por source/taos-community/packaging/pack_community_tar.sh, que monta tarballs da comunidade contendo taosd, taos, taosBenchmark, taosdump, taosudf, libtaos.so, libtaosnative.so, headers, exemplos em C e scripts de instalação. Componentes que residem em outros repositórios ou precisam de fluxos de compilação separados, como taoskeeper, taos-explorer, taosx, conectores e taosinspect, não estão explicitamente incluídos. O script aceita flags para diretório de compilação, número de versão, versão compatível e estabilidade do release, e grava a saída em source/taos-community/release/ com arquivos separados para servidor e cliente.
A instalação pode ser feita a partir de um tarball de instalador oficial, extraindo-o e executando install.sh, ou diretamente de uma compilação de fonte local via make install. A execução local em uma árvore de compilação é feita iniciando o taosd com um diretório de configuração e conectando-se com o CLI taos em outro shell; após uma instalação empacotada, o servidor é iniciado via systemctl e o cliente taos é usado para conectar.
O projeto publica um workflow de build-check no GitHub Actions e orienta os contribuidores para as diretrizes de contribuição. Também fornece canais comunitários no Discord, Stack Overflow e plataformas sociais, e links para uma oferta de nuvem hospedada. O TDengine é licenciado sob a GNU Affero General Public License 3.0, com módulos principais, incluindo recursos de cluster e o agente de IA, descritos como disponíveis sob licenças open-source.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.