Sobre el proyecto
TDengine es una base de datos de series temporales (TSDB) de código abierto orientada a cargas de trabajo de Internet de las Cosas, vehículos conectados e Industrial IoT. Su objetivo declarado es la ingestión, el procesamiento y el análisis en tiempo real de grandes volúmenes de datos producidos por numerosos sensores y colectores, con soporte para despliegues de alta cardinalidad que abarcan grandes cantidades de puntos de recopilación.
Las características de diseño enumeradas por el proyecto incluyen una arquitectura distribuida y nativa para la nube con fragmentación y particionamiento, separación de cómputo y almacenamiento, replicación basada en RAFT, soporte para implementación en Kubernetes e integración con herramientas de observabilidad. En lugar de requerir componentes separados para caché, procesamiento de secuencias y suscripciones, TDengine integra esas capacidades directamente en la base de datos. Se incluye un componente de IA denominado TDgpt para tareas de series temporales como pronóstico, detección de anomalías, imputación y clasificación, pudiendo conectarse a modelos fundacionales de series temporales, modelos de lenguaje grande, modelos de aprendizaje automático y algoritmos tradicionales.
La documentación para usuarios, diseño del sistema y arquitectura se encuentra en el sitio web del proyecto, con opciones de implementación que cubren contenedores, paquetes de instalación, Kubernetes o un servicio en la nube alojado. El README del repositorio está orientado a desarrolladores que desean construir, probar, lanzar y empaquetar TDengine desde el código fuente.
Requisitos previos para la compilación: Linux (Ubuntu 18.04+, CentOS 7+), macOS 10.15+ y soporte limitado para Windows, en arquitecturas x86_64 o ARM64, con aproximadamente 4 GB de RAM y 2 GB de disco libre recomendados. Para las herramientas se necesita un toolchain C/C++, CMake 3.21 o superior, git, opcionalmente Python 3 para el framework de pruebas y Go 1.23+ para componentes como taosAdapter o taosKeeper, además de ccache y Conan 2.x opcionales para el componente taos-gen.
La compilación se realiza fuera del árbol de fuentes usando CMake. La primera compilación debe habilitar -DBUILD_CONTRIB=ON para que las dependencias externas como xxhash, zstd y lz4 se obtengan y compilen dentro de .externals/; las compilaciones posteriores reutilizan esos artefactos. Una secuencia típica consiste en clonar el repositorio, crear un directorio de depuración, ejecutar cmake y luego make. Una compilación en modo liberación con herramientas de línea de comandos usa -DCMAKE_BUILD_TYPE=Release y -DBUILD_TOOLS=ON.
El README documenta una tabla extensa de opciones con valores predeterminados, incluyendo BUILD_TEST, BUILD_TOOLS, BUILD_SANITIZER, BUILD_COVERAGE, BUILD_JEMALLOC, BUILD_WEBSOCKET, BUILD_WITH_UDF, BUILD_GEOS, RUST_BINDINGS, opciones del motor de almacenamiento (LevelDB, RocksDB, SQLite, Berkeley DB), opciones de compresión (LZ4, LZMA2, TSZ) y opciones de objetos en la nube (S3, COS), entre muchas otras. Los artefactos de compilación se encuentran en debug/build/bin (por ejemplo, el daemon del servidor taosd, el cliente CLI taos y, con BUILD_TOOLS=ON, la herramienta de benchmark taosBenchmark y la herramienta de importación/exportación taosdump) y debug/build/lib (por ejemplo, libtaos.so en Linux).
Las pruebas tienen dos capas: pruebas unitarias compiladas con googletest y ejecutadas mediante ctest, y un framework de pruebas de integración basado en Python bajo tests/, donde un servidor de prueba se inicia con una configuración generada y las pruebas individuales del sistema se ejecutan mediante script. La generación de informes de cobertura puede realizarse localmente usando scripts basados en lcov, y el proyecto enlaza a un tablero público de cobertura.
El empaquetado se maneja mediante source/taos-community/packaging/pack_community_tar.sh, que ensambla tarballs comunitarios que contienen taosd, taos, taosBenchmark, taosdump, taosudf, libtaos.so, libtaosnative.so, encabezados, ejemplos en C y scripts de instalación. Los componentes que residen en otros repositorios o necesitan flujos de compilación separados, como taoskeeper, taos-explorer, taosx, conectores y taosinspect, no se incluyen explícitamente. El script acepta flags para el directorio de compilación, número de versión, versión compatible y estabilidad del lanzamiento, y escribe la salida en source/taos-community/release/ con archivos comprimidos separados para servidor y cliente.
La instalación puede realizarse desde un tarball de instalador oficial extrayéndolo y ejecutando install.sh, o directamente desde una compilación local de fuentes mediante make install. Ejecutar localmente en un árbol de compilación se hace iniciando taosd con un directorio de configuración y luego conectándose con el cliente CLI taos en otra terminal; después de una instalación empaquetada, el servidor se inicia mediante systemctl y se usa el cliente taos para conectarse.
El proyecto publica un flujo de trabajo de GitHub Actions para verificación de compilación y orienta a los colaboradores hacia las directrices de contribución. También proporciona canales comunitarios en Discord, Stack Overflow y plataformas sociales, y enlaza a una oferta de nube alojada. TDengine está licenciado bajo la GNU Affero General Public License 3.0, con módulos principales que incluyen características del clúster y el agente de IA disponibles bajo licencias de código abierto.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.