base de datos de series de tiempo
La base de datos de series temporales ( Time Series Database , TSDB ) se denomina base de datos de series temporales . La base de datos de series de tiempo se refiere a los datos que se utilizan principalmente para procesar datos con etiquetas de tiempo (cambios en el orden del tiempo, es decir, serialización de tiempo). Los datos con etiquetas de tiempo también se denominan datos de series de tiempo.
A través de la clasificación del sitio web de DB-Engines , puede ver muchas bases de datos de series temporales
1. Atributos de datos principales de los datos de series temporales
(1) Cada punto de datos contiene una marca de tiempo para indexación, agregación y muestreo. Estos datos también pueden ser multidimensionales y correlacionados;
(2) Escriba más y lea menos, debe admitir la escritura de alta frecuencia en el segundo nivel, el nivel de milisegundos o incluso el nivel de nanosegundos; las consultas suelen ser consultas de agregación multidimensional y los requisitos de latencia de consulta son relativamente altos
(3) Las vistas agregadas de datos (p. ej., vistas reducidas o agregadas, líneas de tendencia) pueden proporcionar más información que los puntos de datos individuales. Por ejemplo, podríamos establecer una alerta cuando un cierto promedio durante un período de tiempo cruza un umbral, dada la falta de confiabilidad de la red o lecturas anómalas del sensor, en lugar de hacerlo en puntos de datos individuales;
(4) El análisis de datos generalmente requiere acceder a ellos durante un período de tiempo (por ejemplo, dame datos de tasa de clics de la semana pasada)
2. Escenarios de aplicación de bases de datos de series temporales
Los escenarios de aplicación de la base de datos de series temporales se utilizan ampliamente en escenarios como Internet de las cosas e Internet APM.
(1) Seguridad pública : registros de Internet, registros de llamadas, seguimiento individual, detección de intervalos;
(2) Industria de la energía : monitoreo centralizado de medidores inteligentes, redes eléctricas y equipos de generación de energía;
(3) Internet : monitoreo de servidor/aplicación, registros de acceso de usuarios, registros de clics en anuncios;
(4) Internet de las cosas : ascensores, calderas, maquinaria, medidores de agua y otros equipos de red;
(5) Industria del transporte : condiciones de la carretera en tiempo real, monitoreo del flujo de intersecciones, datos de puntos de control
(6) Industria financiera : registros de transacciones, registros de acceso, cajero automático, monitoreo de máquinas POS
Motor T
De hecho, no sé por qué utilicé directamente la base de datos de series temporales de TEngine Taosi. Solo puedo decir que algunos compañeros de la empresa la han utilizado antes. Pensé que acababa de empezar a estudiar la base de datos de series temporales. Una vez que hay un problema, alguien lo discutirá juntos, así que elegí TEngine. En cuanto al rendimiento de TEngine, el bloguero acaba de ver que hay muy pocos materiales de investigación en Internet, y muchos internautas se quejaron, pero el bloguero no puede dar comentarios ni expresar opiniones aquí. Después de todo, es gratis (pero descargue servidor y cliente ) Al instalar el paquete, debe ingresar su dirección de correo electrónico para descargarlo, esto, uh, uh, uh... ).
Sitio web oficial de TEngine Taosi: TEngine | Base de datos de serie temporal, distribuida, de alto rendimiento y de código abierto compatible con SQL | Taosi Data
TEngine Taosi es una base de datos de serie temporal, distribuida, de alto rendimiento y de código abierto que admite SQL
Documentación del sitio web oficial: Introducción del producto | Documentación de TEngine
Por supuesto, la actualización actual es realmente rápida. La interfaz de documentos del blogger a mediados de abril es diferente de la interfaz de documentos del sitio web oficial después del Primero de Mayo (se dice que se actualiza cada medio mes).
1. Instalación
1. Instalación de la ventana acoplable
Documentación: Primeros pasos | Documentación de TEngine
Asegúrese de que Docker esté instalado
Ejecute el siguiente comando
docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp tdengine/tdengine
Si desea publicar el servicio utilizando la biblioteca de temporización de TEngine en el sistema Linux, asigne el controlador taos y asigne el nombre de host, aquí el blogger primero declara y los errores encontrados se explicarán en detalle a continuación.
-v /usr/local/taos/driver/libtaos.so.2.1.1.0:/usr/lib/libtaos.so
completa de la siguiente manera
docker run -d \
--name application-name \
--hostname docker-hostname \
-v /usr/local/taos/driver/libtaos.so.2.4.0.5:/usr/lib/libtaos.so \
-v /usr/share/zoneinfo:/usr/share/zoneinfo \
-e TZ=Asia/Shanghai \
-p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp \
docker-image-name
Asegúrese de que el contenedor esté en funcionamiento
docker ps
Ingrese al contenedor y ejecute bash
docker exec -it <containrid> bash
empezar taos
Después de la instalación, utilice systemctl
el comando para iniciar el proceso de servicio de TEngine
systemctl start taosd
Compruebe si el servicio funciona correctamente:
systemctl status taosd
2. Paquete de instalación
Documentación: Primeros pasos | Documentación de TEngine
Descargue el paquete de instalación tar.gz del sitio web oficial ( instale Linux, como TEngine-server-2.4.0.5-Linux-x64.tar )
tar xvzf TDengine-enterprise-server-2.4.0.5-Linux-x64.tar.gz -C 安装目录
( 1 ) Instalar
cd opt/taos/TDengine-server-2.4.0.5
sudo ./install.sh
( 2 ) correr
systemctl start taosd
systemctl status taosd 查看运行状态
3. Mejora
Comentarios y preguntas frecuentes | Documentación de TEngine | Datos de Taosi
La versión 3.0 se ha refactorizado por completo sobre la base de la versión anterior, y los archivos de configuración y los archivos de datos no son compatibles. Asegúrese de hacer lo siguiente antes de actualizar:
- Para eliminar el archivo de configuración, ejecute
sudo rm -rf /etc/taos/taos.cfg
- Para eliminar el archivo de registro, ejecute
sudo rm -rf /var/log/taos/
- Para asegurarse de que los datos ya no sean necesarios, elimine el archivo de datos y ejecute
sudo rm -rf /var/lib/taos/
Nota:
¡Haga un buen trabajo en la exportación de datos y la copia de seguridad por adelantado! ! !
4. Descripción del directorio de instalación
Una vez que la base de datos de TEngine se haya instalado correctamente, el directorio de instalación principal es /usr/local/taos y el contenido del directorio es el siguiente:
[root@xx TDengine-server-3.0.1.1]# cd /usr/local/taos
[root@xx taos]# ll
total 0
drwxr-xr-x. 2 root root 269 Sep 21 12:15 bin
drwxr-xr-x. 2 root root 46 Sep 21 12:15 cfg
lrwxrwxrwx. 1 root root 13 Sep 21 12:15 data -> /var/lib/taos
drwxr-xr-x. 2 root root 51 Sep 21 12:15 driver
drwxr-xr-x. 11 root root 124 Sep 21 12:15 examples
drwxr-xr-x. 2 root root 73 Sep 21 12:15 include
lrwxrwxrwx. 1 root root 13 Sep 21 12:15 log -> /var/log/taos
Genere automáticamente directorios de archivos de configuración, directorios de bases de datos y directorios de registros.
Directorio predeterminado para los archivos de configuración: /etc/taos/taos.cfg, enlace directo a /usr/local/taos/cfg/taos.cfg;
directorio predeterminado para la base de datos: /var/lib/taos, enlace directo a /usr/local /taos/data;
directorio de registro predeterminado: /var/log/taos, enlace directo a /usr/local/taos/log;
archivos ejecutables en el directorio /usr/local/taos/bin, enlace directo a /usr Bajo / bin;
los archivos de la biblioteca dinámica en el directorio /usr/local/taos/driver se vincularán suavemente al directorio /usr/lib; los archivos de encabezado
en el directorio /usr/local/taos/include se vincularán suavemente a Under el directorio /usr/include;
5. Instrucciones de desinstalación y actualización de archivos
Al desinstalar el paquete de instalación, se conservarán los archivos de configuración, los archivos de la base de datos y los archivos de registro, a saber, /etc/taos/taos.cfg, /var/lib/taos, /var/log/taos. Si el usuario no necesita conservarlo después de la confirmación, puede eliminarlo manualmente, pero tenga cuidado, porque después de la eliminación, los datos se perderán de forma permanente y no se podrán recuperar.
Si se trata de una instalación de actualización, cuando existe el archivo de configuración predeterminado ( /etc/taos/taos.cfg ), el archivo de configuración existente aún se usa y el archivo de configuración incluido en el paquete de instalación se modifica a taos.cfg.org y guardado en /usr/ El directorio local/taos/cfg/ se puede usar como ejemplo de referencia para configurar los parámetros de configuración; si no hay un archivo de configuración, use el archivo de configuración que viene con el paquete de instalación
6. Desinstalar
Instalación y desinstalación de varios paquetes de instalación de TEngine- TEngine | Taosi Data
[root@ss TDengine-server-2.4.0.5]# rmtaos
TDengine is removed successfully!
2. Cliente
Descargue el paquete de instalación: todos los enlaces de descarga - TEngine | Taosi Data
Versión 2.4.0.5 descargada por blogueros
Nota:
Los números de versión del cliente y del servidor deben ser exactamente iguales , de lo contrario, aparecerá el error "No se puede establecer la conexión" cuando el cliente se conecte.
vea abajo
Documentación - Datos de Taosi | TEngine
Comentarios y preguntas frecuentes | Documentación de TEngine | Datos de Taosi
4. ¿Qué debo hacer si encuentro el error "No se puede establecer la conexión"?
El cliente encuentra una falla de conexión, siga los pasos a continuación para verificar:
- Comprobar el entorno de red
- Servidor en la nube: compruebe si el grupo de seguridad del servidor en la nube tiene acceso al puerto TCP/UDP 6030/6041
- Máquina virtual local: compruebe si se puede hacer ping a la red, trate de evitar usarla
localhost
como nombre de host- Servidor de la empresa: si se trata de un entorno de red NAT, asegúrese de comprobar si el servidor puede devolver el mensaje al cliente
Asegúrese de que los números de versión del cliente y del servidor sean exactamente iguales, y que la edición comunitaria de código abierto y la edición empresarial no se puedan mezclar.
En el servidor, ejecute
systemctl status taosd
para verificar el estado de ejecución de taosd . Si no se está ejecutando, inicie taosdConfirme que el cliente ha especificado el FQDN del servidor correcto (Nombre de dominio completo: se puede obtener ejecutando el comando de Linux hostname -f en el servidor), referencia de configuración de FQDN: un artículo explica claramente el FQDN de TEngine .
Haga ping al FQDN del servidor, si no hay respuesta, verifique su red, la configuración de DNS o el archivo de hosts del sistema de la computadora donde se encuentra el cliente. Si se implementa un clúster de TEngine, el cliente debe poder hacer ping en los FQDN de todos los nodos del clúster.
Verifique la configuración del firewall (el estado ufw se usa para Ubuntu, firewall-cmd --list-port se usa para CentOS) y asegúrese de que el protocolo TCP/UDP en el puerto 6030/6041 de todos los hosts en el clúster puedan comunicarse entre sí. .
Para la conexión JDBC (ODBC, Python, Go y otras interfaces similares) en Linux, asegúrese de que libtaos.so esté en el directorio /usr/local/taos/driver y /usr/local/taos/driver esté en la biblioteca del sistema. ruta de búsqueda de funciones LD_LIBRARY_PATH
Para JDBC, ODBC, Python, Go y otras conexiones en Windows, asegúrese de que C:\TDengine\driver\taos.dll esté en el directorio de búsqueda de funciones de la biblioteca de su sistema (se recomienda colocar taos.dll en el directorio C: \Windows\Sistema32 )
Si sigues sin poder solucionar el problema de la conexión
Para sistemas Linux, utilice la herramienta de línea de comandos nc para juzgar si las conexiones TCP y UDP de los puertos especificados son fluidas. Verifique si la conexión del puerto UDP está funcionando: Verifique si la conexión del puerto TCP del lado del servidor está funcionando: Verifique
nc -vuz {hostIP} {port}
sinc -l {port}
el la conexión del puerto TCP del lado del cliente está funcionando:nc {hostIP} {port}
Para sistemas Windows, utilice el comando de PowerShell Test-NetConnection -ComputerName {fqdn} -Port {port} para comprobar si se accede al puerto del segmento de servicio
- También puede usar la función de detección de conectividad de red incorporada del programa taos para verificar si la conexión del puerto especificado entre el servidor y el cliente es fluida: diagnóstico y otros .
1. Windows usa el cliente taos
En cmd.exe, cambie al directorio C:\TDengine y ejecute taos.exe para conectarse a la base de datos
Para acceder a TEngine a través de clientes de otros hosts, debe especificar el nombre del host: taos -h ip/hostname
como sigue:
taos -h 192.168.22.16
或者
// myhostname 指Linux系统上的主机名
taos -h myhostname
Cuando se conecta a través de taos, no se especifica el nombre de usuario ni la contraseña ; TEngine se establece de forma predeterminada en root, taosdata cuando el usuario no especifica la información de autenticación
conexión exitosa
2. Establecer FQDN
FQDN (nombre de dominio completo, nombre de dominio completo) es el nombre de dominio completo de una computadora o host específico en Internet. FQDN consta de dos partes: nombre de host y nombre de dominio. Por ejemplo, suponga que el FQDN de un servidor de correo podría ser mail.taosdata.com. El nombre de host es correo y el host está en el nombre de dominio taosdata.com.
DNS (Sistema de nombres de dominio), responsable de traducir FQDN a IP, es el método de direccionamiento para la mayoría de las aplicaciones de Internet.
Documentación : Un artículo aclara el FQDN de TEngine - TEngine | Taosi Data
sistema de ventanas
Dado que Windows solo admite la implementación de clientes por el momento, solo necesitamos configurar la resolución de FQDN
Tome Win10 como ejemplo, necesita modificar C:\Windows\System32\drivers\etc
elhosts文件
10.211.55.14 node1
10.211.55.15 node2
10.211.55.16 node3
sistema linux
Tomando el nodo node1 como ejemplo, necesitamos modificar /etc/hostname
y/etc/hosts
/etc/hostname
Una vez completada la modificación, se requiere un reinicio para que surta efecto
Revisar/etc/hosts
vi /etc/hostname
//将文件内容修改为node1
vi /etc/hosts
//添加一下三行
10.211.55.14 node1
10.211.55.15 node2
10.211.55.16 node3
El aviso de éxito es el mismo que el de pingy normal en Windows; el aviso de falla es:
//windows下
C:\Users\pc-01>ping node1
Ping 请求找不到主机 node1。请检查该名称,然后重试。
//Linux下
root@node2:~# ping node1
ping: unknown host node1
3. Puerto abierto
Acceso abierto a los puertos TCP/UDP 6030-6042
Puede consultar : Permiso de acceso a la red externa de puerto abierto de Linux-CentOS
4. También existe el problema de que la conexión entre el cliente y el servidor no se puede conectar debido a la inconsistencia de tiempo entre el cliente y el servidor.
Modificar el archivo de configuración de la zona horaria
#删除当前默认时区的配置文件,不建议直接删除(出于操作安全考虑),最好是使用mv命令重命名
rm -rf /etc/localtime
#建立软连接文件到配置文件区,替换掉之前删掉或备份的/etc/localtime 文件
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
timedatectl #查看当前时区
#设置当前时区为上海常用:Asia/Hong_Kong
timedatectl set-timezone Asia/Shanghai
tiempo sincronizado
#安装时间同步应用
yum install -y ntp
#同步上海授时中心时间
ntpdate ntp.api.bz
Tres, instrucción SQL
Documentación: TAOS SQL | Documentación de TEngine
1. Base de datos, supertabla, tabla
2. La legitimidad del nombre de la tabla
Documentación - Datos de Taosi | TEngine
Las reglas de nomenclatura de tablas (columnas) en TEngine son las siguientes: Solo puede estar compuesta de letras, números y guiones bajos, y el número no puede estar en primer lugar. La longitud no puede exceder los 192 bytes, y no distingue entre mayúsculas y minúsculas. . Este nombre de tabla no incluye el prefijo y el separador del nombre de la base de datos
3. Gestión de mesas
Documentación - Datos de Taosi | TEngine
El primer campo de la tabla debe ser TIMESTAMP y el sistema lo establece automáticamente como la clave principal
4. El ancho de visualización máximo de los campos binarios y nchar en el shell de Taos
Documentación - Datos de Taosi | TEngine
Modifique esta opción dinámicamente a través del comando set max_binary_display_width nn en el shell
set max_binary_display_width 50;
Cuarto, conéctate a Java
Documentación: TEngine Java Connector | Documentación de TEngine
taos-jdbcdriver
Es el conector de lenguaje Java oficial de TEngine, a través del cual los desarrolladores de Java pueden desarrollar software de aplicación para acceder a la base de datos de TEngine. taos-jdbcdriver
Implementa la interfaz estándar del controlador JDBC y proporciona dos tipos de conectores. Una es conectarse a la instancia de TEngine de forma nativa a través del controlador de cliente de TEngine (taosc)
La dirección del almacén experto del paquete jar de taos-jdbcdriver
https://mvnrepository.com/artifact/com.taosdata.jdbc/taos-jdbcdriver
En el proyecto Maven, agregue las siguientes dependencias a pom.xml:
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>2.0.**</version>
</dependency>
public Connection getConn() throws Exception{
Class.forName("com.taosdata.jdbc.TSDBDriver");
String jdbcUrl = "jdbc:TAOS://taosdemo.com:6030/test?user=root&password=taosdata";
Properties connProps = new Properties();
connProps.setProperty(TSDBDriver.PROPERTY_KEY_CHARSET, "UTF-8");
connProps.setProperty(TSDBDriver.PROPERTY_KEY_LOCALE, "en_US.UTF-8");
connProps.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC-8");
connProps.setProperty("debugFlag", "135");
connProps.setProperty("maxSQLLength", "1048576");
Connection conn = DriverManager.getConnection(jdbcUrl, connProps);
return conn;
}
public Connection getRestConn() throws Exception{
Class.forName("com.taosdata.jdbc.rs.RestfulDriver");
String jdbcUrl = "jdbc:TAOS-RS://taosdemo.com:6041/test?user=root&password=taosdata";
Properties connProps = new Properties();
connProps.setProperty(TSDBDriver.PROPERTY_KEY_BATCH_LOAD, "true");
Connection conn = DriverManager.getConnection(jdbcUrl, connProps);
return conn;
}
Uso con grupo de conexiones
Un ejemplo de uso es el siguiente:
public static void main(String[] args) throws SQLException {
HikariConfig config = new HikariConfig();
// jdbc properties
config.setJdbcUrl("jdbc:TAOS://127.0.0.1:6030/log");
config.setUsername("root");
config.setPassword("taosdata");
// connection pool configurations
config.setMinimumIdle(10); //minimum number of idle connection
config.setMaximumPoolSize(10); //maximum number of connection in the pool
config.setConnectionTimeout(30000); //maximum wait milliseconds for get connection from pool
config.setMaxLifetime(0); // maximum life time for each connection
config.setIdleTimeout(0); // max idle time for recycle idle connection
config.setConnectionTestQuery("select server_status()"); //validation query
HikariDataSource ds = new HikariDataSource(config); //create datasource
Connection connection = ds.getConnection(); // get connection
Statement statement = connection.createStatement(); // get statement
//query or insert
// ...
connection.close(); // put back to conneciton pool
}
Un ejemplo de uso es el siguiente:
public static void main(String[] args) throws Exception {
DruidDataSource dataSource = new DruidDataSource();
// jdbc properties
dataSource.setDriverClassName("com.taosdata.jdbc.TSDBDriver");
dataSource.setUrl(url);
dataSource.setUsername("root");
dataSource.setPassword("taosdata");
// pool configurations
dataSource.setInitialSize(10);
dataSource.setMinIdle(10);
dataSource.setMaxActive(10);
dataSource.setMaxWait(30000);
dataSource.setValidationQuery("select server_status()");
Connection connection = dataSource.getConnection(); // get connection
Statement statement = connection.createStatement(); // get statement
//query or insert
// ...
connection.close(); // put back to conneciton pool
}
5. Importación y exportación de datos
1. Exportar
Exportación de datos | Documentación de TEngine | Datos de Taosi
seleccione * de <tb_name> >> datos .csv;
Guardar en la ruta de instalación
seleccione * from energy_ab.report_five_minutes_report_record >> data_ab.csv;
2. Importar
Importación de datos | Documentación de TEngine | Datos de Taosi
taos> insert into d1001 file '~/data.csv';
Query OK, 9 row(s) affected (0.004763s)
Seis, capacidad, respaldo
1. Capacidad
Planificación de capacidad | Documentación de TEngine | Datos de Taosi
Cada base de datos puede crear una cantidad fija de grupos virtuales, que es la misma que la cantidad de núcleos de CPU de manera predeterminada, y se puede configurar a través de maxVgroupsPerDb; cada copia en un grupo virtual será un nodo virtual; cada nodo virtual ocupará un tamaño fijo de memoria ( el tamaño es el mismo que los bloques de parámetros de configuración de la base de datos relacionados con el caché); cada tabla ocupará memoria relacionada con la longitud total de la etiqueta; además, el sistema tendrá una sobrecarga de memoria fija. Por lo tanto, la memoria del sistema requerida por cada base de datos se puede calcular mediante la siguiente fórmula:
Tamaño de la memoria de la base de datos = maxVgroupsPerDb * réplica * (bloques * caché + 10 MB) + numOfTables * (tagSizePerTable + 0,5 KB)
Ejemplo: suponga que maxVgroupPerDB es el valor predeterminado de 64, el caché tiene el tamaño predeterminado de 16 M, los bloques tienen el valor predeterminado de 6 y hay 100 000 tablas en una base de datos, una sola copia y la longitud total de las etiquetas es de 256 bytes. entonces el total El requerimiento de memoria es: 64 * 1 * (16 * 6 + 10) + 100000 * (0.25 + 0.5) / 1000 = 6792M.
Memoria taosd total = memoria vnode + memoria mnode + memoria de consulta
( 1 ) "memoria de vnode" se refiere al recurso de memoria ocupado por todo el almacenamiento de la base de datos en el clúster asignado al nodo taosd actual. Puede estimar el uso de memoria de cada base de datos de acuerdo con la fórmula de cálculo de "Tamaño de la memoria de la base de datos" anterior, sumarlos y luego promediarlos de acuerdo con el número total de nodos de TEngine en el clúster (si configura varias copias, necesita para multiplicar los múltiplos de copia correspondientes).
( 2 ) "memoria de mnode" se refiere a los recursos ocupados por los nodos de gestión en el clúster. Si hay nodos de administración de mnode distribuidos en un nodo taosd, el consumo de memoria debe aumentarse en "0,2 KB * el número total de tablas de datos en el clúster".
( 3 ) "Memoria de consulta" se refiere a la memoria que el servidor necesita ocupar cuando procesa solicitudes de consulta. Una sola instrucción de consulta ocupará al menos la cantidad de memoria de "0,2 KB * número total de tablas de datos involucradas en la consulta".
2. Copia de seguridad
taosdump es una aplicación de utilidad que admite la copia de seguridad de datos de un clúster de TEngine en ejecución y la restauración de los datos respaldados en el mismo u otro clúster de TEngine en ejecución.
taosdump puede usar la base de datos, la supertabla o la tabla ordinaria como unidad de datos lógicos para realizar copias de seguridad, y también puede realizar copias de seguridad de los registros de datos en la base de datos, la supertabla y la tabla ordinaria dentro de un período de tiempo específico. Al usarlo, puede especificar la ruta del directorio para la copia de seguridad de los datos. Si no especifica una ubicación, taosdump realizará una copia de seguridad de los datos en el directorio actual de forma predeterminada.
TEngine Backup and Recovery_DBA Dadong's Blog-CSDN Blog
taosdump | Documentación de TEngine | Datos de Taos
Copia de seguridad de todas las bases de datos: especifique el parámetro -A o --all-databases
Realice una copia de seguridad de varias bases de datos especificadas: utilice los parámetros -D db1,db2,...;
Realice una copia de seguridad de algunas supertablas o tablas ordinarias en la base de datos especificada: use dbname stbname1 stbname2 tbname1 tbname2 ... parámetros, tenga en cuenta que el primer parámetro de esta secuencia de entrada es el nombre de la base de datos, y solo se admite una base de datos, el segundo y los parámetros posteriores It es el nombre de la supertabla o tabla ordinaria en la base de datos, separados por espacios;
Uso: taosdump [OPCIÓN...] dbname [tbname...]
o: taosdump [OPCIÓN...] --databases db1,db2,...
o: taosdump [OPCIÓN...] --todas las bases de datos
o : taosdump [OPCIÓN...] -i ruta de entrada
o: taosdump [OPCIÓN...] -o ruta de salida
-h, --host=HOST Servidor host volcando datos desde. El valor predeterminado es
host local.
-p, --password Contraseña de usuario para conectarse al servidor. El valor predeterminado es
taosdata.
-P, --port=PORT Puerto para conectarse
-u, --user=USER Nombre de usuario utilizado para conectarse al servidor. El valor predeterminado es
raíz.
-c, --config-dir=CONFIG_DIR Configurar directorio. El valor predeterminado es /etc/taos
-i, --inpath=INPATH Ruta del archivo de entrada.
-o, --outpath=OUTPATH Ruta del archivo de salida.
-r, --resultFile=RESULTFILE DumpOut/In Nombre y ruta del archivo de resultados.
-a, --allow-sys Permitir volcar la base de datos del sistema
-A, --all-databases Volcar todas las bases de datos.
-D, --databases=DATABASES Volcar bases de datos ingresadas. Use comas para separar
el nombre de las bases de datos.
-N, --sin-propiedad Vuelca la base de datos sin sus propiedades.
-s, --schemaonly Solo volca el esquema de las tablas.
-y, --answer-yes Ingrese sí para el aviso. ¡Omitirá
la comprobación de archivos de datos!
-d, --avro-codec=snappy Elija un códec avro entre null, deflate, snappy
y lzma.
-S, --start-time=START_TIME Hora de inicio del volcado. Se acepta el formato epoch o
ISO8601/RFC3339. Ejemplo de formato ISO8601
: 2017-10-01T00:00:00.000+0800 o
2017-10-0100:00:00:000+0800 o '2017-10-01
00:00:00.000+0800'
-E, --end-time=END_TIME Hora de finalización del volcado. Se acepta el formato epoch o ISO8601/RFC3339
. Ejemplo de formato ISO8601:
2017-10-01T00:00:00.000+0800 o
2017-10-0100:00:00.000+0800 o '2017-10-01
00:00:00.000+0800'
-B, --data-batch =DATA_BATCH Número de datos por consulta/instrucción de inserción al realizar
la copia de seguridad/restauración. El valor predeterminado es 16384. Si ve
'error de volcado real... lote...' cuando realiza la copia de seguridad o si
ve el error 'El tamaño de WAL excede el límite' al
restaurar, ajuste el valor a uno más pequeño
e intente. El valor factible está relacionado con la
longitud de la fila y el tipo de esquema de tabla.
-I, --inspeccionar inspeccionar el contenido del archivo avro e imprimir en la pantalla
-L, --suelto-modo Usar el modo suelto si el nombre de la tabla y el nombre de la columna
usan solo letras y números. El valor predeterminado es NO.
-n, --no-escape Sin carácter de escape '`'. El valor predeterminado es usarlo.
-T, --thread-num=THREAD_NUM Número de subprocesos para volcar en el archivo. El valor predeterminado es
5.
-g, --debug Imprimir información de depuración.
-?, --help Dar esta lista de ayuda
--usage Dar un mensaje de uso corto
-V, --version Imprimir la versión del programa
Los argumentos obligatorios u opcionales para las opciones largas también son obligatorios u opcionales
para las opciones cortas correspondientes.
Informe de errores a <[email protected]>.
Cree una carpeta dumpdata en la ruta de instalación de taosTools
copia de seguridad, ejecute el comando
/usr/localhost/taos/taosTools-1.4.3/bin/./taosdump -A
Ver los siguientes archivos
Restaurar copia de seguridad
/usr/localhost/taos/taosTools-1.4.3/bin/./taosdump -i /usr/localhost/taos/taosTools-1.4.3/dumpdata/
Siete, pisando el pozo
Preguntas frecuentes y comentarios
Documentación - Datos de Taosi | TEngine
Hay un resumen de los problemas comunes de la base de datos taos en github
https://github.com/taosdata/tdengine/issues?q=
TEngine/src/connector/jdbc en maestro · taosdata/TDengine · GitHub
Los códigos de error que puede informar el conector JDBC incluyen tres tipos: errores informados por el propio controlador JDBC (los códigos de error están entre 0x2301 y 0x2350), errores informados por el método JNI (los códigos de error están entre 0x2351 y 0x2400) y errores reportado por otros módulos funcionales de TEngine. Para códigos de error específicos, consulte:
https://github.com/taosdata/TDengine/blob/develop/src/inc/taoserror.h
1. systemctl start taosd falló
Actualice Taosi 2.4.X a 3.0.X, inicie el servicio Taosi e informe un error
[root@XX TDengine-server-3.0.1.1]# systemctl status taosd
● taosd.service - TDengine server service
Loaded: loaded (/etc/systemd/system/taosd.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Wed 2022-09-21 12:16:31 CST; 45min ago
Process: 105841 ExecStart=/usr/bin/taosd (code=exited, status=255)
Process: 105834 ExecStartPre=/usr/local/taos/bin/startPre.sh (code=exited, status=0/SUCCESS)
Main PID: 105841 (code=exited, status=255)
Sep 21 12:16:30 ht-energy systemd[1]: Unit taosd.service entered failed state.
Sep 21 12:16:30 ht-energy systemd[1]: taosd.service failed.
Sep 21 12:16:31 ht-energy systemd[1]: taosd.service holdoff time over, scheduling restart.
Sep 21 12:16:31 ht-energy systemd[1]: Stopped TDengine server service.
Sep 21 12:16:31 ht-energy systemd[1]: start request repeated too quickly for taosd.service
Sep 21 12:16:31 ht-energy systemd[1]: Failed to start TDengine server service.
Sep 21 12:16:31 ht-energy systemd[1]: Unit taosd.service entered failed state.
Sep 21 12:16:31 ht-energy systemd[1]: taosd.service failed.
Ejecutar /usr/bin/taosd generará directamente errores específicos de la siguiente manera
[root@ht-energy TDengine-server-3.0.1.1]# /usr/bin/taosd
read /etc/localtime error, reason:Invalid argumentThere is not /etc/timezone.
09/21 13:02:28.688021 00108335 UTL fail to load apoll url
09/21 13:02:28.688104 00108335 UTL load from cfg file /etc/taos/taos.cfg success
09/21 13:02:28.688112 00108335 UTL failed to load env file: .env
09/21 13:02:28.688123 00108335 UTL load from env variables cfg success
09/21 13:02:28.688620 00108335 UTL fail to load apoll url
09/21 13:02:28.688685 00108335 UTL load from cfg file /etc/taos/taos.cfg success
09/21 13:02:28.688696 00108335 UTL failed to load env file: .env
09/21 13:02:28.688703 00108335 UTL load from env variables cfg success
09/21 13:02:28.688789 00108335 UTL global config
09/21 13:02:28.688794 00108335 UTL =================================================================
09/21 13:02:28.688797 00108335 UTL cfg_file firstEp ht-energy:6030
09/21 13:02:28.688802 00108335 UTL default secondEp ht-energy:6030
09/21 13:02:28.688805 00108335 UTL default fqdn ht-energy
09/21 13:02:28.688809 00108335 UTL default serverPort 6030
09/21 13:02:28.688812 00108335 UTL default tempDir /tmp
09/21 13:02:28.688816 00108335 UTL default minimalTmpDirGB 1.00
09/21 13:02:28.688831 00108335 UTL default shellActivityTimer 3
09/21 13:02:28.688834 00108335 UTL default compressMsgSize -1
09/21 13:02:28.688837 00108335 UTL default compressColData -1
09/21 13:02:28.688840 00108335 UTL default queryPolicy 1
09/21 13:02:28.688844 00108335 UTL default querySmaOptimize 0
09/21 13:02:28.688847 00108335 UTL default queryPlannerTrace 0
09/21 13:02:28.688850 00108335 UTL default smlChildTableName
09/21 13:02:28.688854 00108335 UTL default smlTagName _tag_null
09/21 13:02:28.688857 00108335 UTL default smlDataFormat 1
09/21 13:02:28.688861 00108335 UTL default numOfTaskQueueThreads 4
09/21 13:02:28.688864 00108335 UTL default dataDir /var/lib/taos
09/21 13:02:28.688867 00108335 UTL default minimalDataDirGB 2.00
09/21 13:02:28.688871 00108335 UTL default supportVnodes 16
09/21 13:02:28.688874 00108335 UTL default maxShellConns 50000
09/21 13:02:28.688892 00108335 UTL default statusInterval 1
09/21 13:02:28.688897 00108335 UTL default minSlidingTime 10
09/21 13:02:28.688901 00108335 UTL default minIntervalTime 1
09/21 13:02:28.688904 00108335 UTL default maxNumOfDistinctRes 10000000
09/21 13:02:28.688908 00108335 UTL default countAlwaysReturnValue 1
09/21 13:02:28.688911 00108335 UTL default queryBufferSize -1
09/21 13:02:28.688914 00108335 UTL default printAuth 0
09/21 13:02:28.688918 00108335 UTL default multiProcess 0
09/21 13:02:28.688921 00108335 UTL default mnodeShmSize 20972544
09/21 13:02:28.688924 00108335 UTL default vnodeShmSize 104858624
09/21 13:02:28.688928 00108335 UTL default qnodeShmSize 41944064
09/21 13:02:28.688931 00108335 UTL default snodeShmSize 41944064
09/21 13:02:28.688934 00108335 UTL default bnodeShmSize 41944064
09/21 13:02:28.688937 00108335 UTL default numOfShmThreads 1
09/21 13:02:28.688941 00108335 UTL default numOfRpcThreads 4
09/21 13:02:28.688944 00108335 UTL default numOfCommitThreads 4
09/21 13:02:28.688947 00108335 UTL default numOfMnodeReadThreads 1
09/21 13:02:28.688950 00108335 UTL default numOfVnodeQueryThreads 16
09/21 13:02:28.688954 00108335 UTL default numOfVnodeStreamThreads 4
09/21 13:02:28.688957 00108335 UTL default numOfVnodeFetchThreads 4
09/21 13:02:28.688960 00108335 UTL default numOfVnodeWriteThreads 8
09/21 13:02:28.688964 00108335 UTL default numOfVnodeSyncThreads 16
09/21 13:02:28.688967 00108335 UTL default numOfVnodeRsmaThreads 8
09/21 13:02:28.688970 00108335 UTL default numOfQnodeQueryThreads 16
09/21 13:02:28.688973 00108335 UTL default numOfSnodeSharedThreads 2
09/21 13:02:28.688976 00108335 UTL default numOfSnodeUniqueThreads 2
09/21 13:02:28.688980 00108335 UTL default rpcQueueMemoryAllowed 3353018777
09/21 13:02:28.688985 00108335 UTL default monitor 1
09/21 13:02:28.688988 00108335 UTL default monitorInterval 30
09/21 13:02:28.688992 00108335 UTL default monitorFqdn
09/21 13:02:28.688995 00108335 UTL default monitorPort 6043
09/21 13:02:28.688998 00108335 UTL default monitorMaxLogs 100
09/21 13:02:28.689001 00108335 UTL default monitorComp 0
09/21 13:02:28.689005 00108335 UTL default telemetryReporting 1
09/21 13:02:28.689008 00108335 UTL default telemetryInterval 43200
09/21 13:02:28.689011 00108335 UTL default telemetryServer telemetry.taosdata.com
09/21 13:02:28.689015 00108335 UTL default telemetryPort 80
09/21 13:02:28.689018 00108335 UTL default transPullupInterval 2
09/21 13:02:28.689021 00108335 UTL default mqRebalanceInterval 2
09/21 13:02:28.689025 00108335 UTL default ttlUnit 86400
09/21 13:02:28.689028 00108335 UTL default ttlPushInterval 86400
09/21 13:02:28.689031 00108335 UTL default uptimeInterval 300
09/21 13:02:28.689034 00108335 UTL default udf 1
09/21 13:02:28.689038 00108335 UTL default configDir /etc/taos
09/21 13:02:28.689041 00108335 UTL default scriptDir /etc/taos
09/21 13:02:28.689044 00108335 UTL default logDir /var/log/taos
09/21 13:02:28.689048 00108335 UTL default minimalLogDirGB 1.00
09/21 13:02:28.689051 00108335 UTL default numOfLogLines 10000000
09/21 13:02:28.689055 00108335 UTL default asyncLog 1
09/21 13:02:28.689058 00108335 UTL default logKeepDays 0
09/21 13:02:28.689061 00108335 UTL default debugFlag 0
09/21 13:02:28.689065 00108335 UTL default simDebugFlag 143
09/21 13:02:28.689068 00108335 UTL default tmrDebugFlag 131
09/21 13:02:28.689071 00108335 UTL default uDebugFlag 131
09/21 13:02:28.689075 00108335 UTL default rpcDebugFlag 131
09/21 13:02:28.689078 00108335 UTL default jniDebugFlag 131
09/21 13:02:28.689081 00108335 UTL default qDebugFlag 131
09/21 13:02:28.689084 00108335 UTL default cDebugFlag 131
09/21 13:02:28.689087 00108335 UTL default dDebugFlag 135
09/21 13:02:28.689090 00108335 UTL default vDebugFlag 135
09/21 13:02:28.689113 00108335 UTL default mDebugFlag 135
09/21 13:02:28.689117 00108335 UTL default wDebugFlag 135
09/21 13:02:28.689120 00108335 UTL default sDebugFlag 135
09/21 13:02:28.689123 00108335 UTL default tsdbDebugFlag 131
09/21 13:02:28.689126 00108335 UTL default tqDebugFlag 135
09/21 13:02:28.689129 00108335 UTL default fsDebugFlag 135
09/21 13:02:28.689132 00108335 UTL default udfDebugFlag 135
09/21 13:02:28.689135 00108335 UTL default smaDebugFlag 131
09/21 13:02:28.689138 00108335 UTL default idxDebugFlag 135
09/21 13:02:28.689141 00108335 UTL default tdbDebugFlag 131
09/21 13:02:28.689144 00108335 UTL default metaDebugFlag 135
09/21 13:02:28.689147 00108335 UTL default timezone
09/21 13:02:28.689150 00108335 UTL default locale en_US.UTF-8
09/21 13:02:28.689154 00108335 UTL default charset UTF-8
09/21 13:02:28.689157 00108335 UTL default enableCoreFile 1
09/21 13:02:28.689160 00108335 UTL default numOfCores 8.00
09/21 13:02:28.689164 00108335 UTL default openMax 1024
09/21 13:02:28.689167 00108335 UTL default streamMax 16
09/21 13:02:28.689170 00108335 UTL default pageSizeKB 4
09/21 13:02:28.689173 00108335 UTL default totalMemoryKB 32744324
09/21 13:02:28.689179 00108335 UTL default os sysname Linux
09/21 13:02:28.689183 00108335 UTL default os nodename hostname
09/21 13:02:28.689186 00108335 UTL default os release 3.10.0-1160.el7.x86_64
09/21 13:02:28.689189 00108335 UTL default os version #1 SMP Mon Oct 19 16:18:59 UTC 2020
09/21 13:02:28.689192 00108335 UTL default os machine x86_64
09/21 13:02:28.689196 00108335 UTL default version 3.0.1.1
09/21 13:02:28.689199 00108335 UTL default compatible_version 3.0.0.0
09/21 13:02:28.689202 00108335 UTL default gitinfo e6bb4c1aead0e3f156b13d4536fd9966373c194b
09/21 13:02:28.689205 00108335 UTL default buildinfo Built at 2022-09-15 21:48
09/21 13:02:28.689208 00108335 UTL =================================================================
09/21 13:02:28.691051 00108335 DND start to init dnode env
09/21 13:02:28.691073 00108335 DND ERROR The default data directory /var/lib/taos contains old data of tdengine 2.x, please clear it before running!
09/21 13:02:28.691251 00108335 DND ERROR failed to init dnode since Config not found
Asegúrese de que los datos ya no sean necesarios (o que hayan sido exportados y respaldados)
Para eliminar archivos de datos, ejecute sudo rm -rf /var/lib/taos/
Nota:
¡Haga un buen trabajo en la exportación de datos y la copia de seguridad por adelantado! ! !
2. conductor de taos
java.lang.NoClassDefFoundError: Could not initialize class com.taosdata.jdbc.TSDBJNIConnector
3, java.lang.UnsatisfiedLinkError: no hay taos en java.library.path
java.lang.UnsatisfiedLinkError: no taos in java.library.path
https://github.com/taosdata/TDengine/issues/8235
4、java.sql.SQLException: ERROR JNI (2354): Ref no está allí
La esencia es que la conexión JNI es NULL
public static final int ERROR_JNI_CONNECTION_NULL = 0x2354; // JNI connection is NULL
12:47:02.779 [threadPoolTaskExecutor-11] INFO c.e.c.taos.TaosUtils - [instance,89] - 驱动 = com.taosdata.jdbc.TSDBDriver url = jdbc:TAOS://zm-dev:6030/tent_test_1?timezone=UTC-8&charset=UTF-8&locale=en_US.UTF-8
Taos get connection starting...
java.sql.SQLException: JNI ERROR (2354): Ref is not there
at com.taosdata.jdbc.TSDBError.createSQLException(TSDBError.java:75)
at com.taosdata.jdbc.TSDBJNIConnector.connect(TSDBJNIConnector.java:80)
at com.taosdata.jdbc.TSDBConnection.connect(TSDBConnection.java:35)
at com.taosdata.jdbc.TSDBConnection.<init>(TSDBConnection.java:21)
at com.taosdata.jdbc.TSDBDriver.connect(TSDBDriver.java:133)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at com.energy.common.taos.TaosUtils.instance(TaosUtils.java:99)
at com.energy.common.taos.TaosUtils.insertIntoBatchResult(TaosUtils.java:186)
at com.energy.jobTask.fiveMinutesTask.FiveMinutesTask.job(FiveMinutesTask.java:211)
at com.energy.startUp.InvokeJobTaskMethodsByPojo.doTask(InvokeJobTaskMethodsByPojo.java:82)
at com.energy.startUp.EnergyTaskStartUp$1$1.run(EnergyTaskStartUp.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
java.lang.NullPointerException
at com.energy.common.taos.TaosUtils.insertIntoBatchResult(TaosUtils.java:189)
at com.energy.jobTask.fiveMinutesTask.FiveMinutesTask.job(FiveMinutesTask.java:211)
at com.energy.startUp.InvokeJobTaskMethodsByPojo.doTask(InvokeJobTaskMethodsByPojo.java:82)
at com.energy.startUp.EnergyTaskStartUp$1$1.run(EnergyTaskStartUp.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
De hecho, el problema de los bloggers es el mismo, es decir, libtaos.so no se encuentra
En Linux, debe crear el siguiente enlace suave ln -s /usr/local/taos/driver/libtaos.so.xxxx /usr/lib/libtaos.so
cd /usr/lib
ln -s libtaos.so .1 libtaos.so.3.0.1.1
1. El blogger cambió el nombre de libtaos.so.2.4.0.14 en el directorio de instalación de taos /xx/taos/TDengine-server-2.4.0.14/driver/ en la versión 2.4.0.14 a libtaos.so, y lo copió en el archivo jar de servicio. el mismo directorio que el paquete , de la siguiente manera
2. Cree el Dockerfile de la siguiente manera
/usr/lib no está en java PATH, coloque libtaos.so en el directorio /usr/bin para probar
Código principal: AGREGAR libtaos.so /usr/lib
FROM java:8
MAINTAINER zm
EXPOSE 8104
ADD energy-task.jar energy-task.jar
ADD libtaos.so /usr/lib
# Dockerfile
RUN echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT ["java","-jar","energy-task.jar"]
3. Cuando los bloggers ejecutan el paquete jar del proyecto, necesitan asignar el nombre de host
-v /etc/hosts:/etc/hosts -v /etc/hostname:/etc/hostname
Complete de la siguiente manera:
#!/bin/sh
cd /data1/docker/server/energy/energy-task
docker rm -f energy-task
docker rmi energy-task:latest
# 根据Dockerfile文件 构建镜像;"."代表当前目录,-t参数设置标签;使用当前目录的Dockerfile文件创建镜像并设置标签
docker build -t energy-task .
docker run -d -p 8104:8081 -e "SPRING_PROFILES_ACTIVE=test"
-v /etc/localtime:/etc/localtime -v /data1/logs/energy-task:/logs
-v /data1/files/energy-task:/files
-v /etc/hosts:/etc/hosts -v /etc/hostname:/etc/hostname
--restart=always --privileged=true --name energy-task energy-task:latest