En la era actual del big data, las empresas necesitan recopilar, procesar, analizar y gestionar grandes cantidades de datos desde diversos dispositivos y aplicaciones. Las bases de datos de series de tiempo surgieron a medida que los tiempos lo exigían, brindando a las empresas servicios de almacenamiento, procesamiento y análisis de datos de series de tiempo eficientes y escalables. Una de las excelentes bases de datos de series temporales es openGemini, que puede proporcionar procesamiento de datos en tiempo real, alta disponibilidad y escalabilidad.
Resumen
La siguiente figura es la solución integral de openGemini, que proporciona soluciones de recopilación, acceso, almacenamiento, cálculo y visualización de datos para ayudar a los clientes a administrar y analizar mejor sus grandes cantidades de datos de series temporales.
En la actualidad, openGemini ha alcanzado un cierto nivel líder en la industria en escritura, almacenamiento, consulta, etc. de datos, pero cómo hacer un buen uso de los datos y ayudar a los clientes a hacer un uso más eficiente del valor de los datos aún requiere esfuerzos continuos.
Las soluciones tradicionales de big data se dividen en dos categorías: computación en flujo y procesamiento por lotes. El cálculo previo parcial o el cálculo de sensibilidad al retraso se realiza antes de que los datos se almacenen en la base de datos, lo que se denomina computación en flujo, o después de que los datos se almacenen en la base de datos. base de datos, a través de consultas SQL y otros métodos, recupera los datos de la base de datos y realiza cálculos, lo que se denomina procesamiento por lotes. Todas las bases de datos de series de tiempo tradicionales están en modo de computación por lotes. En base a esto, openGemini también proporciona capacidades de computación de transmisión de acuerdo con los requisitos de algunas empresas de series de tiempo con un gran volumen de datos y una alta sensibilidad al retraso, lo que satisface los requisitos de retener los datos originales y parcial. La reducción de dimensionalidad se puede realizar según las necesidades del cliente. La computación en flujo no se discutirá en detalle aquí.
El procesamiento por lotes tradicional, especialmente los escenarios de análisis de datos, ejerce una enorme presión comercial sobre la base de datos y, al mismo tiempo, una gran cantidad de datos se devuelve a la plataforma de big data. El formato de datos de la base de datos y el formato de datos de big data Las plataformas se convierten entre sí y la sobrecarga de cálculo también es muy alta. Debido a este problema, algunos proveedores de bases de datos almacenan directamente archivos de datos en un formato de datos que la plataforma de big data puede leer directamente durante el almacenamiento de datos, para mejorar la experiencia de interacción entre la base de datos y la plataforma de big data. también traerá puntualidad y armonización El problema del acoplamiento de plataformas de big data. La plataforma de big data también reducirá algunos cálculos y completará los cálculos respaldados por la base de datos subyacente dentro de la base de datos. De esta manera, se extraerán menos datos a la plataforma de big data, lo que reducirá los costos de red e informática.
Listo para salir
¿Existe una solución mejor?
Con base en años de experiencia en el campo de series de tiempo, el equipo de openGemini ha descubierto que existen muchas habilidades profesionales en la computación de series de tiempo: una es cómo extraer el valor de los datos de series de tiempo y la otra es cómo realizar cálculos de series de tiempo de manera eficiente. . ¿Tengo que hablar sobre cómo surgió la base de datos de series temporales? En el análisis final, la base de datos de series de tiempo es en realidad una base de datos especial. Hay demasiados datos de series de tiempo y las bases de datos generales no pueden manejarlos. Por lo tanto, nació una base de datos especial, que tiene las capacidades de alta tasa de compresión, alto rendimiento, alto rendimiento, envejecimiento automático, etc. Las bases de datos especiales deben tener habilidades especiales.
Los clientes pueden crear rápidamente un sistema basado en el diagrama de arquitectura de la solución, pero cómo extraer el valor de datos comerciales específicos y cómo realizar cálculos de series de tiempo de manera rápida y eficiente tiene un cierto umbral y, a través de la exploración y el descubrimiento del equipo, se optimiza. La eficiencia del marco de cálculo de tiempos y los cálculos aproximados de tiempos pueden diferir en uno o dos órdenes de magnitud. Con base en las razones anteriores, el equipo de openGemini desarrolló y abrió una biblioteca de algoritmos de análisis de datos de series de tiempo openGemini-castor (https://github.com/openGemini/openGemini-castor), que cumple con la mayoría de los escenarios de análisis de series de tiempo (código abierto). Algoritmo de detección de anomalías). Al mismo tiempo, viene con un marco de cálculo de tiempo en dos modos: transmisión y lote. Los usuarios pueden personalizar y ampliar las capacidades relacionadas según sus propias necesidades. Y openGemini-castor puede integrarse bien en el motor de cálculo de tiempo existente de openGemini a través de un componente llamado ts-udf. Puede realizar cálculos de manera inteligente según el escenario y proporcionar capacidades de transmisión de tiempo eficientes. Se puede abrir un número especial más adelante relacionado. tecnologías Explicación detallada.
Habiendo dicho tanto antes, ¿cómo lo juegas?
Aquí hay otra pausa. El componente ts-udf es un componente opcional. Para cumplir con los complejos requisitos de cálculo de los usuarios, les permite agregar sus propios operadores y motores de cálculo. Actualmente, está oficialmente conectado a la biblioteca de algoritmos openGemini-castor, que se puede copiar desde la calabaza. Actualmente, las capacidades de computación por lotes son de código abierto y se planea que las capacidades de computación en flujo sean abiertas en el futuro.
ts-udf es responsable de la interacción entre openGemini y los algoritmos definidos por el usuario (Funciones definidas por el usuario), proporcionando capacidades de análisis de datos que incluyen detección de anomalías, predicción, etc.;
En el directorio ts-udf, definimos la interfaz y las configuraciones relacionadas para que openGemini interactúe con la biblioteca de algoritmos de Python. Los usuarios solo necesitan implementar las interfaces relevantes en ts-udf e iniciarlo como un proceso de Python (llamado pyworker) a través de python- agente. , ejecuta algoritmos definidos por el usuario.
Ponte en practica
Puede preparar uno o más nodos según sea necesario. Se recomienda que la configuración sea 4u8g o superior. El sistema operativo es openEuler, Centos, Redhat, etc. A continuación se utiliza openEuler como ejemplo.
Preparación ambiental
Ir a la instalación del entorno de compilación de idiomas
sudo yum install go
También se pueden instalar otros sistemas operativos descargando el paquete de instalación o apt-get install go.
Verifique la versión de Golang instalada, se recomienda go1.18 y superior
go version
Instalación del entorno de compilación del lenguaje Python
La dirección de descarga del paquete de instalación del lenguaje Python es: https://www.python.org/downloads/, puede consultar la guía oficial para la instalación.
Instale Python3.9.1 y superior
> tar -xf Python-3.10.5.tar.xz
> cd Python-3.10.5
> ./configure --enable-optimizations --with-openssl=/usr/local/openssl -withopenssl-rpath=auto && make altinstall
> make -j && make install
Nota: Debido a las diferentes versiones del sistema operativo, las dependencias básicas son diferentes, por lo que no entraré en detalles aquí (compilar Python requiere muchas dependencias del sistema)
controlar
/usr/local/bin/python3.10 --version
/usr/local/bin/pip3.10 --version
Configuración
> ln -sf /usr/local/bin/python3.10 /usr/bin/python3
> ln -sf /usr/local/bin/pip3.10 /usr/bin/pip3
compilar
Extraiga el código fuente de openGemini
> git clone https://github.com/openGemini/openGemini.git
Compilar openGemini
> cd openGemini
> python build.py --clean
Instale el agente udf (más práctico, se puede implementar en nodos independientes)
> cd openGemini
> cd python/agent
> pip3 install -r requirements.txt
> python3 setup.py install
Extraiga el código fuente de openGemini-castor e instálelo
> git clone https://github.com/openGemini/openGemini-castor.git
> pip3 install -r requirements.txt
> python3 setup.py install
> cd /var
> ln -sf /opt/openGemini-castor openGemini-castor
Nota: Puede eliminar scipy en requisitos.txt
puesta en marcha
Inicie openGemini (independiente)
> mkdir -p /tmp/openGemini
> vim config/openGemini.singlenode.conf
# 修改castor的enable为true
> sh scripts/install.sh
examinar
build/ts-cli -host 127.0.0.1 -port 8086
Iniciar ts-udf
> cd openGemini
> cd python
> mkdir -p /log/openGemini-castor
> sh pyworker.sh start -config ts-udf/conf/python_handler.conf -ip 127.0.0.1 -port
6666 -pidfile /tmp/pyworker.pid -log /tmp/openGemini/pyworker_extra.log
examinar
> sh pyworker.sh status -pidfile /tmp/pyworker.pid
Ejemplo de análisis de tiempo
openGemini-castor es una biblioteca Python de análisis de datos de series de tiempo. La descripción del algoritmo se puede encontrar en https://github.com/openGemini/community/blob/main/openGemini-castor_user_manual.md. Esta sección utilizará el algoritmo BatchDIFFERENTIATEAD para proporcionar un ejemplo de cómo utilizar openGemini castor Operador para detección de anomalías
Uso
SELECT castor(field, 'algorithm', 'config_name', 'type') FROM example_mst GROUP
BY example_tag1, example_tag2, ...
en:
campo : el indicador a analizar
algoritmo : Indica el nombre del algoritmo de análisis utilizado, como DIFFERENTIATEAD, ThresholdAD, IncrementalAD, etc.
config_name : indica el nombre del archivo de configuración del algoritmo utilizado
tipo : tipo de análisis de datos, como detección, predicción, etc.
Ejemplo de uso:
Datos de ejemplo:
> SELECT * FROM example
name: example
time tId value
---- --- -----
...
1668685272000000000 1 0
1668685273000000000 1 1
1668685274000000000 1 1
1668685275000000000 1 34
1668685276000000000 1 11
1668685277000000000 1 110
1668685278000000000 1 3
1668685279000000000 1 70
1668685280000000000 1 111
1668685281000000000 1 111
1668685282000000000 1 1
...
Utilice la función castor y BatchDIFFERENTIATEAD proporcionadas por la biblioteca openGemini-castor para la detección:
SELECT
castor(value, 'BatchDIFFERENTIATEAD', 'detect_base', 'detect')
FROM
example
GROUP BY tId
-------------------------------------
name: example
tags: tId=1
time castor
---- ------
1668685281000000000 1
El resultado de retorno del SQL de análisis de datos anterior es que la anomalía en los datos de ejemplo se detecta utilizando el algoritmo BatchDIFFERENTIATEAD. El valor de castor en el resultado es [0,1]. Cuanto mayor sea el valor, más significativa será la anomalía y el mayor es el nivel de la anomalía. Esto se repite aquí La marca de tiempo es el punto de tiempo 1668685281000000000 cuando existe un posible riesgo anormal durante el período de detección.
Los usuarios pueden realizar negocios de detección de anomalías basándose en este operador, o combinarlo con la interfaz de usuario para mostrar anomalías en la cartelera. También pueden usar el marco informático para desarrollar sus propios operadores de análisis, y también pueden conectarse a su propio proceso informático y permitir openGemini. vincularse con él. Flexibilidad y libre control.
resumen
Este artículo describe brevemente el marco actual de extremo a extremo de openGemini y describe brevemente los antecedentes, el estado actual y los puntos débiles del campo de análisis de tiempo actual. Al proponer una nueva ruta, la comunidad openGemini proporciona un conjunto de marcos informáticos y de análisis de tiempo escalables y de alto rendimiento, así como algoritmos de análisis de tiempo de alto rendimiento y alta precisión basados en puntos débiles del negocio. Proporciona capacidades de análisis listas para usar para usuarios comunes y capacidades de marco básico para usuarios avanzados. Continuaremos aportando más algoritmos de análisis de IA a la comunidad en el futuro. Todos son bienvenidos a seguir prestando atención.
Sitio web oficial de openGemini: http://www.openGemini.org
Dirección de código abierto de openGemini: https://github.com/openGemini
Cuenta pública openGemini:
Bienvenido a prestar atención ~ ¡Te invitamos sinceramente a unirte a la comunidad openGemini para construir, gobernar y compartir el futuro juntos!
El autor del marco de código abierto NanUI pasó a vender acero y el proyecto fue suspendido. La primera lista gratuita en la App Store de Apple es el software pornográfico TypeScript. Acaba de hacerse popular, ¿por qué los grandes empiezan a abandonarlo? Lista de octubre de TIOBE: Java tiene la mayor caída, C# se acerca Java Rust 1.73.0 lanzado Un hombre fue alentado por su novia AI a asesinar a la Reina de Inglaterra y fue sentenciado a nueve años de prisión Qt 6.6 publicado oficialmente Reuters: RISC-V La tecnología se convierte en la clave de la guerra tecnológica entre China y Estados Unidos. Nuevo campo de batalla RISC-V: no controlado por ninguna empresa o país, Lenovo planea lanzar una PC con Android.