Base de datos de series temporales: uso y peligros de TEngine Taos (taos)

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:

  1. Para eliminar el archivo de configuración, ejecute sudo rm -rf /etc/taos/taos.cfg
  2. Para eliminar el archivo de registro, ejecute sudo rm -rf /var/log/taos/
  3. 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:

  1. 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
  1. 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.

  2. En el servidor, ejecute  systemctl status taosd para verificar el estado de ejecución de taosd . Si no se está ejecutando, inicie taosd

  3. Confirme 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 .

  4. 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.

  5. 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í. .

  6. 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

  7. 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 )

  8. 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} si nc -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

  1. 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/hostnamey/etc/hosts

/etc/hostnameUna 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

HikariCP

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
}

druida

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

java.lang.NoClassDefFoundError: no se pudo inicializar la clase com.taosdata.jdbc.TSDBJNIConnector · Problema n.° 4238 · taosdata/TDengine · GitHub

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

Supongo que te gusta

Origin blog.csdn.net/MinggeQingchun/article/details/124553960
Recomendado
Clasificación