código-fonte do kernel openGemini é oficialmente de código aberto

Resumo: openGemini é um sistema de banco de dados de séries temporais distribuído de código aberto, que pode ser amplamente utilizado em cenários de negócios como Internet das Coisas, Internet de Veículos, monitoramento de operação e manutenção e Internet industrial. capacidades de análise de dados.

Este artigo é compartilhado pela comunidade HUAWEI CLOUD " HUAWEI CLOUD Officially Opens the OpenGemini Kernel Source Code to the World ", autor: Cloud Database Innovation Lab.

1. Introdução aos antecedentes

A era da Internet das Coisas chegou e os dispositivos IoT entraram em nossas vidas diárias, como geladeiras inteligentes, carros elétricos, relógios inteligentes e muito mais. De acordo com relatórios públicos, espera-se que, até 2025, o número de conexões de Internet das Coisas na China represente 30% do mundo. Esses dispositivos em rede estão gerando uma grande quantidade de dados o tempo todo, e o crescimento diário de dados pode atingir o nível de GB ou até mesmo o nível de TB, o que traz grandes desafios para o banco de dados. Dados lentos e massivos causam altos custos de armazenamento e atrasos nas consultas, etc. Como um cenário típico no campo de IoT, os cenários de séries temporais são muito diferentes dos cenários tradicionais de banco de dados relacional. Bancos de dados de séries temporais são especialmente projetados e otimizados para cenários de séries temporais e têm recebido cada vez mais atenção nos últimos anos.

O HUAWEI CLOUD integra vantagens técnicas e do setor para criar um banco de dados de séries temporais de nível empresarial líder do setor, GaussDB for Influx, que foi temperado por serviços de nuvem pública externa como serviço e DevOps interno e outros serviços por um longo tempo. Armazenamento de compactação hierárquica e outros aspectos têm vantagens óbvias. Em junho deste ano, a HUAWEI CLOUD anunciou que o kernel GaussDB para Influx era oficialmente de código aberto, e a marca de código aberto foi nomeada openGemini.

openGemini é um sistema de banco de dados de séries temporais distribuído de código aberto que pode ser amplamente utilizado em cenários de negócios como Internet das Coisas, Internet de Veículos, monitoramento de operação e manutenção e Internet industrial. Possui excelente desempenho de leitura e gravação e recursos eficientes de análise de dados .

Em segundo lugar, a arquitetura de software openGemini

2.1 Projeto de Arquitetura

O openGemini adota a arquitetura em camadas de processamento paralelo de grande escala MPP, que consiste em três partes: ts-sql (mecanismo de computação), ts-store (mecanismo de armazenamento) e ts-meta (mecanismo de metadados). O openGemini oferece suporte à implantação de cluster e à implantação independente.

ts-sql: processamento unificado de solicitações de clientes

  • Fornece uma interface RESTful
  • Compatível com InfluxDB Line Protocol e API v1, e também suporta leitura e gravação remota de dados do Prometheus
  • Durante a execução da instrução de consulta, os dados são obtidos do ts-store e resumidos e retornados ao cliente
  • Suporta expansão horizontal

ts-store: gerenciamento de dados

  • Organize e armazene dados brutos uniformemente em um formato de dados otimizado
  • Consultar dados por intervalo de tempo e ID da linha do tempo
  • Suporta expansão horizontal

ts-meta: gerenciamento de metadados

  • Gerenciamento de metadados de cluster de banco de dados, como informações de nó, etc.
  • Gerenciamento de metadados de banco de dados, como tempo de retenção de dados, informações de partição de dados, informações de tabela, etc.

2.2 Principais recursos

Leitura e gravação de alto desempenho

  • Gravação simultânea de dezenas de milhões de dados de índice por segundo e suporte de resposta de consulta em nível de milissegundo para análise de dados de série temporal
  • Algoritmo de análise de dados de IA integrado para oferecer suporte à detecção e previsão de anomalias em tempo real

Compatível com ecologia de tempo

  • Totalmente compatível com InfluxDB Line Protocol e InfluxQL
  • Integração perfeita com a cadeia de ferramentas InfluxDB existente
  • Suporte para armazenamento remoto de dados Prometheus

distribuído

  • Oferece a capacidade de escalar horizontalmente, suportando centenas de clusters de nós

Gerenciamento eficiente de dados massivos de séries temporais

  • Suporte ao gerenciamento de linha do tempo em nível de bilhão
  • Algoritmo de compressão de dados eficiente integrado, o custo de armazenamento é de apenas 1/20 do banco de dados relacional tradicional

Implantação flexível

  • A implantação só precisa executar o arquivo executável compilado, não são necessárias dependências externas
  • Todos os parâmetros de configuração do banco de dados possuem valores padrão sensatos e não precisam ser definidos manualmente
  • Suporte a implantação autônoma e de cluster

3. Quais são as vantagens do openGemini

3.1 Vantagens de desempenho

Em resposta às necessidades de gerenciamento e análise de dados em massa nas áreas de Internet das Coisas, monitoramento de operação e manutenção, etc., o openGemini fez muitos projetos de otimização para o mecanismo de computação e o mecanismo de armazenamento.

  • O mecanismo de consulta implementa uma variedade de tecnologias de otimização e execução de consultas, como vetorização, computação distribuída, pushdown de operador e pré-agregação, melhorando a eficiência da consulta de dados. Ele pode atingir latência de consulta interativa em cenários como Internet das Coisas industrial e monitoramento de operação e manutenção, e também pode atingir latência de consulta muito baixa no caso de um grande banco de dados (nível de trilhões).
  • O mecanismo de armazenamento, projetado em um formato de armazenamento de dados colunar, alinha os dados da série temporal multivariada por tempo, reduz o armazenamento repetido de carimbos de data e hora e desenvolve um conjunto de mecanismos de armazenamento eficientes para realizar o armazenamento ordenado de dados, partição e classificação de dados e dados prefetching. , indexação esparsa e outras funções ricas.

A taxa de transferência de dados e a latência de consulta são indicadores-chave para avaliar o desempenho de um banco de dados de séries temporais. Após muitas otimizações, o openGemini apresenta um excelente desempenho geral. Os resultados dos testes abaixo mostram o desempenho do openGemini expandindo de 4U para 32U. Pode-se observar que:

  • De 4U a 32U, o desempenho de gravação do openGemini pode ser dimensionado linearmente (taxa de escala é 0,8)
  • Crescimento constante de 1,55 milhão de Métricas/s em 4U para 5,6 milhões de Métricas/s em 32U

Nos 15 cenários de teste padrão da popular ferramenta de teste de benchmark de banco de dados de séries temporais do setor TSBS , o openGemini tem excelente desempenho. Os 15 cenários de teste padrão podem ser divididos em três tipos: consulta simples, consulta média e consulta complexa:

  • Consulta simples: Poucas ou nenhuma função ou expressão é usada, o intervalo de tempo da consulta é de 24 horas e o atraso da consulta é de vários milissegundos.
  • Consulta moderada: usando várias funções ou expressões, o intervalo de tempo da consulta é de algumas semanas e o agrupamento GROUP BY é usado e a latência da consulta é de dezenas a centenas de milissegundos.
  • Consulta complexa: várias funções ou expressões agregadas são usadas para consultar o intervalo de tempo por mês ou ano. O atraso da consulta geralmente pode atingir o nível de minuto.

Comparado com o InfluxDB de código aberto, o openGemini tem uma melhoria de mais de 2 vezes em cenários de consulta simples e mais de 4 vezes em cenários de consulta média. Em cenários de consulta complexos, o openGemini ainda pode responder rapidamente, mas o InfluxDB não pode funcionar devido ao OOM.

3.2 Recursos avançados de análise de dados

O objetivo final da coleta de dados de séries temporais é fazer com que os dados sejam compreendidos e usados, e a análise de dados é uma parte fundamental disso. O banco de dados de séries temporais possui uma ampla gama de cenários de aplicativos, tornando os aplicativos de séries temporais cada vez mais diversificados, e os requisitos de análise de dados estão mudando e aumentando constantemente, o que exige que o banco de dados de séries temporais responda rapidamente a diferentes necessidades de análise de dados e enriqueça constantemente os operadores de análise interna.

Ao mesmo tempo, as ferramentas tradicionais de análise de big data (como Spark, Flink, etc.) análise não pode atender aos requisitos. Com o rápido desenvolvimento da Internet das Coisas, tecnologia de sensores e 5G, há uma necessidade urgente de um método mais eficiente para processar dados de séries temporais massivas e de alta velocidade. O que os usuários realmente precisam é de um sistema que possa processar, detectar e prever com a menor latência e maior taxa de transferência.Sistema de informação, tal sistema é muito raro no banco de dados de código aberto na indústria.

Correspondentemente, o openGemini possui operadores de análise de agregação ricos (mais de 60 tipos de COUNT, SUM, MAX, MIN, etc.), operadores de análise estatística (quantil PERCENTILE, histograma HISTOGRAM, etc.), operadores de detecção e previsão de anomalias (Existem 13 construídos -em detectores de anomalias, que podem cobrir cenários comuns de anomalias de séries temporais, como valores discrepantes, alterações numéricas, limites, subida e descida contínuas). Na implementação da detecção de anomalias baseada em IA, a distribuição de dados é totalmente considerada e os recursos de computação de dados próximos são fornecidos, o que pode melhorar a análise de dados de ponta a ponta e a eficiência da computação.

3.3 Reduzir custos e aumentar benefícios

openGemini originado do HUAWEI CLOUD GaussDB para Influx. O GaussDB para Influx tem sido usado em muitos serviços internos importantes do HUAWEI CLOUD. Por meio de atualizações de tecnologia, ele substituiu a implantação de vários sistemas como Cassandra, InfluxDB, HBase e OpenTSDB, obtendo redução de custos e melhoria da eficiência.

No mesmo cenário de serviço, o openGemini reduz a latência de ponta a ponta em 50% em comparação com o sistema original, economiza 68% dos recursos da CPU, 50% dos recursos de memória e mais de 90% dos recursos do disco rígido.

4. Por que código aberto

O código aberto é um meio eficaz de inovação aberta, o padrão de fato e a patente da era digital. Estatísticas de DB-Engines mostram que, a partir de 2021, o índice de popularidade dos bancos de dados de código aberto ultrapassou o dos bancos de dados comerciais, e a proporção de bancos de dados de séries temporais de código aberto chegou a 80%. para abraçar o código aberto.

Originado de código aberto, retribuindo ao código aberto

O banco de dados de séries temporais openGemini passou por vários estágios de desenvolvimento. Desde a transformação arquitetônica inicial baseada no InfluxDB de código aberto, até lidar com os desafios de bilhões de linhas de tempo internas, até o mecanismo de banco de dados autodesenvolvido, todo o caminho, ele resistiu ao teste de produção de mais de 100 usuários internos e externos de Nuvem Huawei. As conquistas do openGemini agora e no futuro são inseparáveis ​​do solo fértil da comunidade de código aberto. O código aberto do openGemini espera defender a cultura do código aberto e retribuir ao código aberto com ações práticas.

Cooperação aberta, co-construção e compartilhamento

Sabemos que uma única árvore é difícil de formar uma floresta, e cem rios se juntam no rio e no mar. No entanto, a construção ecológica open source não é um sucesso da noite para o dia, nem pode ser concluída por um empreendimento próprio, mas um processo de juntar areia em torres e axilas em peles. Somente construindo e compartilhando podemos criar um ecossistema de código aberto saudável e próspero. Esperamos usar a comunidade openGemini como um fulcro e uma plataforma de inovação aberta. Ao liberar a experiência prática em P&D e aplicação da tecnologia de banco de dados de séries temporais acumulada no HUAWEI CLOUD ao longo dos anos, atrairemos mais parceiros e desenvolvedores para participar e contribuir , e melhorar continuamente o ecossistema e a competitividade do openGemini. , continuar a criar um produto de tecnologia aberta e ecologia de aplicativos, permitir a transformação digital da Internet das Coisas, Internet industrial e outras indústrias e promover a sinergia industrial para lidar com o ambiente de vida cada vez mais complexo , concorrência cada vez mais acirrada no setor e desenvolvimento de negócios cada vez mais diversificado.

Imprimir

A v0.1.0 lançada desta vez é uma versão com funções completas de banco de dados de séries temporais. Para obter detalhes, clique para visualizar o guia do usuário.

Os principais recursos da versão v0.1.0:

  • Suporte a implantação de máquina única e cluster distribuído, alto desempenho e escalabilidade
  • Verificação de certificado de suporte e autenticação de usuário
  • Totalmente compatível com InfluxDB Line Protocol v1, InfluxQL
  • Suporta leitura e gravação de dados remotos do Prometheus
  • Suporte ao sistema operacional Linux
  • Indicadores de operação do kernel ricos (mais de 60 itens), fornecendo ferramenta de monitoramento de indicadores ts-monitor

A versão detalhada da placa de trânsito foi lançada, por favor, vá até a comunidade para conferir.

Junte-se à comunidade

Para facilitar a compreensão e a participação nas contribuições da comunidade, preparamos um guia de contribuição para você .

outro

Cooperação comunitária, busca de ajuda comunitária, canais de consulta para questões relacionadas:

  1. Recomenda-se enviar problemas e discussões para a comunidade no GitHub
  2. Envie um e-mail para a caixa de correio da comunidade openGemini ([email protected]) e responda dentro de 1-2 dias úteis
  3. Junte-se ao grupo de troca WeChat da comunidade openGemini (WeChat adiciona xiangyu5632, note openGemini)
  4. Junte-se ao Slack.

Página inicial do site oficial do openGemini : http://www.openGemini.org/ 

endereço de código aberto openGemini : https://github.com/openGemini 

 

Clique em Seguir para conhecer as novas tecnologias da HUAWEI CLOUD pela primeira vez~

{{o.name}}
{{m.name}}

おすすめ

転載: my.oschina.net/u/4526289/blog/5586046