A era da nuvem chegou, como é realizada a nova geração de plataforma de análise de dados?

Em maio de 2023, de acordo com os dados da pesquisa anual de desenvolvedores de 2023 iniciada pelo Stackoverflow, o PostgreSQL ultrapassou o MySQL e ficou em primeiro lugar, tornando-se a primeira escolha dos desenvolvedores. O PostgreSQL está se tornando cada vez mais popular na China. Em 17 de junho, o PostgreSQL Database Technology Summit foi realizado com sucesso em Chengdu. Com o tema “Novas Oportunidades, Novas Tendências, Novos Desenvolvimentos”, esta conferência convidou muitos líderes da indústria a participar neste evento. Chen Jinbao, diretor de produto do PieCloudDB, também foi convidado para fazer uma palestra na conferência "A arquitetura e a implementação do módulo principal do PieCloudDB, um data warehouse virtual nativo da nuvem". 

Com o advento da era da computação em nuvem, a plataforma em nuvem fornece recursos de computação quase ilimitados e ricos e, ao mesmo tempo, reduz consideravelmente os custos de computação, liberando mais oportunidades para a computação de dados gerar inteligência. Já em 2019, o Gartner fez uma previsão: o futuro do mercado de banco de dados está na nuvem. Com o desenvolvimento da tecnologia de computação em nuvem, as empresas também estão se aproximando dessa tendência e cada vez mais empresas estão migrando seus dados de negócios para a nuvem. Acreditamos que o futuro dos bancos de dados está na nuvem, e é por isso que construímos o PieCloudDB, um data warehouse nativo da nuvem.

O PieCloudDB será lançado oficialmente em outubro de 2022. É um data warehouse distribuído nativo da nuvem que oferece suporte completo à linguagem SQL, recursos eficientes de computação distribuída e suporte completo a transações. Ao mesmo tempo, ele realiza multiclustering de um único conjunto de dados, elasticidade de segundo nível e a capacidade de pagar apenas pela computação e armazenamento necessários. 

1. Por que precisamos do PieCloudDB?

1.1 NoSQL e data lakes não podem mais atender às necessidades de análise dos usuários

Por muito tempo, as soluções NoSQL + data lake ocuparam o mercado principal no campo da análise de dados, e os bancos de dados NoSQL, como Hadoop e HDFS, também são as principais plataformas de análise de dados. No entanto, como a Cloudera anunciou que deixará de oferecer suporte à tecnologia CDH, as dúvidas sobre as plataformas NoSQL, como o Hadoop, também estão crescendo.

Esse fenômeno ocorre precisamente porque o sistema NoSQL + data lake tem deficiências óbvias em importantes recursos de análise de dados, como suporte a consultas complexas, alto isolamento de simultaneidade e consistência. adequado para análise avançada. (como análise de gráficos, análise de informações geográficas, etc.) o suporte é fraco. Como resultado, o NoSQL começou a ser rotulado como "obsoleto" e não detinha mais uma grande participação no mercado de análise de dados. 

Além disso, as ferramentas de análise necessárias para NoSQL e infraestruturas baseadas em data lake não são fáceis de integrar e implantar. O uso de um data lake para análise de dados requer a integração e implantação de vários componentes, o que requer um esforço de desenvolvimento significativo. Devido à falta de suporte para ANSI SQL, os usuários geralmente precisam ter habilidades técnicas especializadas e precisam arcar com altos requisitos técnicos e de custo. Além disso, os mecanismos/ferramentas especializados (como bancos de dados de gráficos) exigidos pela plataforma costumam ser difíceis de integrar ao sistema de registro, reduzindo a manobrabilidade e a inovação da análise de dados.

Essas restrições e desafios impulsionam a necessidade de plataformas de análise de dados mais poderosas, fáceis de integrar e fáceis de usar. Empresas e organizações estão cada vez mais inclinadas a adotar plataformas de análise baseadas em SQL padrão. Essas plataformas podem atender às necessidades dos usuários com uma ampla variedade de funções de análise, fácil integração e implantação e são compatíveis com as tecnologias existentes de armazenamento e processamento de dados.

1.2 É difícil para um data warehouse baseado em um banco de dados relacional se adaptar a um ambiente de nuvem

Muitos data warehouses tradicionais convencionais, incluindo Teradata e Greenplum, são bancos de dados relacionais que usam modelos relacionais para organizar os dados. Esses armazéns de dados têm muitas vantagens, incluindo boa compatibilidade SQL, execução eficiente de consultas complexas e suporte a propriedades ACID transacionais. No entanto, esses bancos de dados MPP tradicionais também apresentam alguns defeitos, como baixo desempenho elástico, alta disponibilidade insuficiente e ilhas de dados.

Esses problemas levam à incapacidade dos armazéns de dados tradicionais de aproveitar ao máximo as vantagens das nuvens públicas em ambientes de nuvem. Nuvens públicas têm muitas vantagens sobre ambientes privados, sendo duas das mais notáveis:

  • Recursos de computação elástica quase ilimitados: a nuvem pública fornece recursos de computação elástica. Os usuários podem alocar recursos sob demanda de acordo com as necessidades reais e realizar expansão e contração elástica conforme necessário. Os usuários podem solicitar os recursos de computação necessários de acordo com as necessidades de negócios sem manter e gerenciar sua própria infraestrutura de hardware.
  • Armazenamento de objetos barato e com capacidade ilimitada: as nuvens públicas oferecem armazenamento de objetos barato com capacidade virtualmente ilimitada. O preço do armazenamento de objetos é relativamente baixo, o que pode fornecer aos usuários capacidade de armazenamento em grande escala, ajudar os usuários a reduzir custos e melhorar a eficiência. 

Para melhor se adaptar ao ambiente de nuvem e aproveitar ao máximo as vantagens da nuvem pública, uma nova geração de data warehouses está surgindo gradualmente. O data warehouse nativo da nuvem de nova geração tem um design de arquitetura nativa da nuvem, que pode utilizar melhor os recursos elásticos de computação e armazenamento de objetos da nuvem pública. Eles podem ser implantados e expandidos rapidamente na nuvem pública e fornecem recursos de análise e processamento de dados de alto desempenho para atender às necessidades da análise de dados moderna. 

1.3 Um produto que leva em consideração as vantagens do data warehouse relacional e da nuvem pública

Os usuários precisam de um produto que leve em conta as vantagens dos data warehouses relacionais e das nuvens públicas para se adaptar à chegada da era da nuvem. Em termos de mecanismos de computação, ele precisa ter muitas vantagens dos armazéns de dados relacionais, ser capaz de suportar linguagem SQL completa, ter recursos eficientes de computação distribuída e ser capaz de ter características ACID de transação completas. Em termos de recursos de nuvem pública, ela realiza a separação de armazenamento e computação, fornece clusters de computação elásticos, permite que os usuários paguem apenas pela computação necessária e faz pleno uso das vantagens trazidas pelas nuvens públicas. Este é o objetivo de design do PieCloudDB.

2. O que o PieCloudDB pode trazer para os usuários?

Como uma nova geração de data warehouse nativo da nuvem, o PieCloudDB realiza a separação entre computação e armazenamento de data warehouse na nuvem, levando em consideração as muitas vantagens dos data warehouses relacionais tradicionais e os muitos benefícios trazidos pelas nuvens públicas.

2.1 Suporte completo para SQL

O PieCloudDB fez melhorias significativas no PostgreSQL, realizando a função de computação distribuída e separação de armazenamento e computação. Além disso, módulos como bloqueios, transações, logs, armazenamento de tabelas do sistema e tabelas do usuário foram totalmente reescritos, trazendo mudanças subversivas. Ao mesmo tempo, o PieCloudDB também mantém o suporte completo do PostgreSQL para os padrões SQL, incluindo consultas complexas como agregação (Agg), subplano (Subplano), sublink (Sublink), consulta de junção externa (Outer Join), função de agregação de janela (Window agg) E visão materializada (Visualização Materializada) e assim por diante. Essas melhorias permitem que o PieCloudDB forneça recursos de consulta mais eficientes e poderosos, mantendo a compatibilidade com o padrão SQL.

2.2 Otimização eficiente de consultas e correspondência de executores

PieCloudDB implementa um otimizador projetado para consultas complexas e um executor eficiente correspondente.

  • Otimizador projetado para consultas complexas

O otimizador do PieCloudDB fornece uma série de funções de otimização lógica abrangentes, incluindo pushdown de predicado, promoção de subjunção de subconsulta e eliminação de junção externa. Além disso, o otimizador executa uma otimização detalhada com base em um modelo de custo puro, estima o custo de cada nó no processo de agregação de vários estágios e usa algoritmos como programação dinâmica para gerar vários caminhos e, finalmente, seleciona o caminho com o menor custo para executar a consulta. Esses recursos são projetados para melhorar o desempenho e a eficiência das consultas, otimizando assim o processo de execução de consultas do PieCloudDB.

Como um banco de dados distribuído, o PieCloudDB precisa implementar muitas operações distribuídas, incluindo redistribuição múltipla de dados (reembaralhamento) e operações de agregação distribuídas (agg). Para ser capaz de executar uniões de tabelas distribuídas eficientes durante consultas entre tabelas, o otimizador do PieCloudDB precisa descrever completamente as características de distribuição de dados para estimativa de custo distribuído.

Por meio de uma descrição abrangente das características de distribuição de dados, o otimizador do PieCloudDB pode levar em consideração a distribuição de dados em diferentes nós, estimando assim com mais precisão o custo das consultas entre tabelas. Isso permite que o otimizador gere planos de consulta eficientes, evite operações de redistribuição de dados desnecessárias e melhore o desempenho e a eficiência da consulta.

  • Atuador Eficiente para Ambientes Distribuídos

Para cooperar com o otimizador projetado para consultas complexas, o PieCloudDB implementa um executor eficiente para realizar operações de consulta em um ambiente distribuído. Ao adotar um modelo de execução multigrupo e multiestágio e realizar uma grande quantidade de troca de dados, os executores do PieCloudDB podem executar operações de consulta com eficiência em um ambiente distribuído. Este modelo de execução pode fazer pleno uso dos recursos de computação do sistema distribuído e melhorar o paralelismo e o desempenho geral da consulta. Ao mesmo tempo, por meio de estreita cooperação com o otimizador, o PieCloudDB pode otimizar a estratégia de execução do executor de acordo com as características do plano de consulta gerado pelo otimizador, melhorando ainda mais o desempenho e a eficiência da consulta.

2.3 Suporte completo para transações (ACID)

O PieCloudDB fornece suporte completo para transações, incluindo as características ACID das transações: atomicidade, consistência, isolamento e durabilidade.

  • Atomicidade: PieCloudDB garante que todas as operações em uma transação sejam concluídas com sucesso ou falhem e sejam revertidas. Se uma operação em uma transação falhar, todas as operações na transação serão revertidas e o estado do banco de dados retornará ao estado anterior ao início da transação, mantendo a consistência dos dados.
  • Consistência: Antes que a transação seja confirmada, o PieCloudDB verificará se a operação da transação está em conformidade com as restrições e regras predefinidas para garantir a consistência do banco de dados. Uma transação é considerada bem-sucedida se o banco de dados permanecer consistente após a conclusão da transação.
  • Isolamento: PieCloudDB oferece suporte a dois níveis de isolamento comumente usados: Read Committed (leitura confirmada) e Repeatable Read (leitura repetível). No nível Read Committed, uma transação pode ver apenas as modificações que outras transações confirmaram, enquanto no nível Repeatable Read, uma transação pode ver um instantâneo consistente em toda a transação sem ser afetada por outras transações simultâneas.
  • Durabilidade: PieCloudDB garante que, uma vez que uma transação seja confirmada com sucesso, suas modificações no banco de dados serão salvas permanentemente, mesmo que ocorra uma falha ou travamento do sistema. Isso é feito gravando o log de transação em um meio de armazenamento estável para que possa ser reproduzido durante a recuperação.

Ao fornecer suporte completo para propriedades ACID de transações, o PieCloudDB fornece um mecanismo de gerenciamento de dados confiável e consistente. Seja em um ambiente simultâneo ou diante de falhas, o PieCloudDB garante a integridade e confiabilidade dos dados.

2.4 Elasticidade Extrema do Cluster de Computação

O PieCloudDB tem os melhores recursos de expansão e contração de cluster de computação e pode realizar rápida expansão e contração de clusters de computação. O nó Executor do PieCloudDB não contém dados persistentes e as operações de expansão e contração não envolvem movimentação de dados. Além disso, os nós do Executor não acessam diretamente as tabelas, transações e bloqueios do sistema. Ao expandir o cluster de computação, o PieCloudDB só precisa implantar o binário no novo nó da máquina virtual e se registrar no serviço de metadados. Esse design garante a eficiência das operações de dimensionamento.

O PieCloudDB fornece aos usuários um pool de computação independente, preparado para suportar escalabilidade rápida. Neste pool de computação, o PieCloudDB pode alcançar operações de expansão e contração de segundo nível dentro de um determinado intervalo. Isso significa que, quando os usuários precisam aumentar os recursos de computação, o PieCloudDB pode adicionar rapidamente novos nós de computação para que todo o cluster possa lidar com mais solicitações simultâneas. Por outro lado, quando os usuários precisam reduzir os recursos de computação, o PieCloudDB também pode reduzir rapidamente os nós de computação para economizar custos e recursos.

2.5 Multicluster e alta disponibilidade

PieCloudDB oferece suporte a vários clusters. Os usuários podem iniciar vários clusters no mesmo conjunto de dados. Em um ambiente de produção, é frequente que departamentos diferentes tenham requisitos diferentes para tamanhos de cluster. Neste caso, se houver apenas um único cluster, é necessário criar um cluster de acordo com a demanda máxima do cluster, resultando em desperdício de recursos. Em um cenário multi-cluster, diferentes departamentos podem criar clusters de tamanhos diferentes de acordo com suas próprias necessidades, e o cluster pode ser desligado ao final da tarefa. Vários clusters podem acessar o mesmo conjunto de dados e compartilhar o mesmo recurso ACID.

Como o PieCloudDB Executor é stateless, quando um Executor falha, o Coordinator executa a próxima Query, e os demais Executors executam a tarefa. Durante esse processo, os usuários não têm percepção e não afetarão os serviços.

Por meio desses recursos, o PieCloudDB permite que os usuários usem o PieCloudDB como o PostgreSQL em cenários OLAP. Os usuários pagam apenas pela computação e armazenamento que já ocorreram. Os usuários podem iniciar e parar vários clusters de tamanhos diferentes sob demanda para se adaptar a diferentes tipos de tarefas, de modo a alcançar um equilíbrio entre desempenho e eficiência de desenvolvimento.

3. Implementação da Arquitetura Nativa da Nuvem PieCloudDB

Para se adaptar ao ambiente de nuvem, o PieCloudDB implementa os dois principais recursos nativos da nuvem de clusters e multiclusters elasticamente escaláveis ​​e cria nós Executor completamente sem estado, tabelas de sistema independentes e bloqueios distribuídos.

3.1 Armazém de dados virtual

O PieCloudDB separa os dados do usuário em armazenamento de objetos para perceber que não há necessidade de mover dados durante o processo de expansão e contração. Além disso, o nó Executor não armazena tabelas do sistema, transações e informações de bloqueio, mas depende do Coordenador para resolver esses problemas, de modo que o nó Executor se torne um nó sem estado e realize escalabilidade de segundo nível.

Para implementar a arquitetura multimestre e implementar nós coordenadores com estado, o PieCloudDB usa serviços de metadados para concluir essas funções. As tabelas do sistema são armazenadas no banco de dados KV FoundationDB na forma de valor-chave, e os bloqueios e transações distribuídas são realizados por meio das características de transações de curto prazo e de pequena escala do FoundationDB. Dessa forma, o PieCloudDB pode lidar com bloqueios e transações distribuídas no nó Coordenador e garantir a consistência e a confiabilidade do sistema.

Por meio dessa série de design e operações, o PieCloudDB criou um data warehouse virtual completamente sem estado. Os usuários podem criar e fechar armazéns de dados virtuais conforme necessário, sem mover dados durante o processo de expansão e contração, e podem expandir e contrair nós rapidamente. Isso permite que o PieCloudDB se adapte com eficiência às necessidades de diferentes escalas e cargas e forneça armazenamento flexível de dados e gerenciamento de recursos de computação.

  • Tabela do sistema: mStore

PieCloudDB armazena tuplas na forma de Key-Value em FoundationDB e utiliza a classificação natural de FoundationDB Key para implementar a indexação. No PieCloudDB, cada tupla é codificada como um par Chave-Valor, onde Chave representa as informações de índice da tupla e Valor contém o conteúdo de dados da tupla. Consultas de intervalo e pesquisas de índice podem ser feitas de forma eficiente, aproveitando a ordem natural das chaves FoundationDB, permitindo acesso e recuperação de dados rápidos.

Para obter o controle de simultaneidade de várias versões, o PieCloudDB usa mecanismos como Xmin, Xmax e cid. Xmin e Xmax registram as informações de visibilidade das transações em tuplas, onde Xmin representa a primeira transação visível e Xmax representa a última transação visível. cid (ID de confirmação) indica a ID de confirmação da transação. Por meio desses mecanismos, o PieCloudDB pode obter isolamento e consistência de transações simultâneas e oferece suporte a consultas de várias versões e operações de reversão.

Ao armazenar tuplas como pares de chave-valor, usando a classificação natural do FoundationDB e adotando o mecanismo MVCC, o PieCloudDB pode lidar com armazenamento de dados, indexação e acesso simultâneo com eficiência, fornecendo serviços de banco de dados confiáveis ​​e de alto desempenho.

  • Folha de Dados: oStore

PieCloudDB usa oStore para criar tabelas de usuário no armazenamento de objetos, separando dados para armazenamento de objetos (como S3). Como o próprio armazenamento de objetos suporta apenas operações de inserção (inserção) e exclusão (exclusão), ele não suporta operações de atualização (atualização) e anexação (acrescentar). PieCloudDB cria tabelas auxiliares no mStore para implementar recursos MVCC (controle de simultaneidade de várias versões).

Na tabela auxiliar de mStore, cada tupla corresponde a um bloco de oStore, e uma parte dos dados do usuário é armazenada no bloco de oStore. Dessa forma, a visibilidade de cada tupla da tabela auxiliar é associada à visibilidade do bloco correspondente, realizando assim as características do MVCC. Quando uma operação de atualização (atualização) ou exclusão (exclusão) é executada, o PieCloudDB gera um novo bloco, coloca a tupla inalterada no novo bloco e coloca os dados do usuário atualizados no novo bloco (por exemplo, após executar a operação de atualização no bloco 4, gere um novo bloco 5 e coloque os dados atualizados do usuário no novo bloco 5). Por fim, a tabela auxiliar concluirá a operação de atualização (atualização). 

Por meio desse design e operação, o PieCloudDB pode implementar recursos MVCC no armazenamento de objetos e gerenciar a versão e a visibilidade dos dados por meio de tabelas auxiliares. Isso permite que o PieCloudDB suporte operações de atualização e exclusão, mantendo a consistência dos dados e a correção do controle de simultaneidade.

  • Bloqueios e transações distribuídas

O PieCloudDB utiliza o mecanismo de conflito de confirmação de transação do FoundationDB para obter acesso correto à área compartilhada de bloqueios, realizando bloqueios distribuídos.

No PieCloudDB, quando várias transações precisam acessar a área compartilhada, elas competirão e se coordenarão por meio do mecanismo de transação do FoundationDB. Cada transação tenta adquirir bloqueios e executar operações em recursos compartilhados. Se várias transações solicitarem o mesmo bloqueio compartilhado ao mesmo tempo, o mecanismo de conflito de confirmação de transação do FoundationDB garantirá que apenas uma transação possa adquirir o bloqueio e operar com sucesso, enquanto outras transações serão bloqueadas ou revertidas.

Ao utilizar o mecanismo de conflito de confirmação de transação do FoundationDB, o PieCloudDB pode implementar o gerenciamento de bloqueio distribuído para garantir o acesso correto a áreas compartilhadas e exclusão mútua de recursos. Esse mecanismo garante o isolamento e a consistência entre várias transações, evita competição e conflitos de dados e fornece uma função de bloqueio distribuído confiável.

Além disso, o PieCloudDB também implementa transações distribuídas no FoundationDB e cria uma arquitetura distribuída nativa da nuvem por meio da implementação de mStore, oStore, bloqueios e transações distribuídas. Essa arquitetura pode fornecer serviços de banco de dados de alta confiabilidade e alto desempenho e oferecer suporte a operações e gerenciamento de dados distribuídos.

Um excelente projeto de arquitetura é o primeiro passo para o sucesso de um produto de banco de dados. A equipe de P&D do OpenPie continuará iterando no produto PieCloudDB e introduzirá funções como pushdown de agregação, pré-computação e salto de bloco para desempenho e lançará em breve o Time Travel , Branch, Data Sharing e outras séries melhoram a experiência do usuário. O PieCloudDB continuará avançando e, com o suporte de várias tecnologias principais, como tecnologia de patente distribuída eMPP, criptografia de dados sem servidor e transparente (TDE), ele criará um sistema de alta segurança, alta confiabilidade e alta disponibilidade "duro como O data warehouse virtual nativo da nuvem da Panshi ajuda as empresas a maximizar o valor dos dados. Bem-vindo ao prestar atenção! 

 

 


 

 

 

 

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

Acho que você gosta

Origin my.oschina.net/u/5944765/blog/10085813
Recomendado
Clasificación