openGemini solución de análisis de tiempos lista para usar

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.

imagen

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.

imagen

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 -port6666 -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 GROUPBY 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 examplename: exampletime tId value---- --- -----...1668685272000000000 1 01668685273000000000 1 11668685274000000000 1 11668685275000000000 1 341668685276000000000 1 111668685277000000000 1 1101668685278000000000 1 31668685279000000000 1 701668685280000000000 1 1111668685281000000000 1 1111668685282000000000 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: exampletags: tId=1time   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.
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/3234792/blog/10107717
Recomendado
Clasificación