Compartilhamento de tecnologia

construção starRocks

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

A empresa deseja usar uma nova arquitetura de big data e planeja substituir plataformas estrangeiras de big data por plataformas nacionais. Então aqui estou confuso sobre se devo usar doris ou starrocks. Se eu usar doris, porque é de código aberto, posso usar diretamente o fornecedor de nuvem no futuro. Se você usar starrocks, terá que construí-lo sozinho, mas com certeza será comercializado no futuro e você terá que cobrar dinheiro. Já usei doris antes, mas não o starRocks. Queria tentar ver se ele é realmente tão poderoso quanto o link de referência abaixo, então escolhi o starrocks. Use-o como um data warehouse para substituir o Hive-presto ou o kudu-impala em nosso CDH anterior.

Você acha que starRocks pode substituir a colmeia? Acho que é possível. O conjunto Hadoop foi algo de que o Google se cansou há 20 anos. O conjunto Hadoop tem muitos componentes. A vantagem é que quase todos os principais bugs encontrados foram corrigidos nos últimos 20 anos. . Você não precisa usar o hadoop, você pode usar o starRocks.

Verifique se a CPU suporta

gato /proc/cpuinfo | grep avx2

Se nada for impresso, você poderá alterar a CPU.

Be é responsável pelo cálculo. Se você não tiver esse conjunto de instruções, não poderá implantá-lo.

introduzir

startrocks é um [data warehouse] para [análise de dados], que pode substituir o hive tradicional que possui.vetorizaçãoArquitetura MMPdeMecanismo de armazenamento de coluna,apoiaranálise em tempo real , computação simultânea.Compatível com protocolo mysql, pode ser usadoencaixe do cliente mysql .apoiarExpansão horizontal . Todo o sistema não possui dependências externas, ou seja, não precisa do zookeeper para gerenciar, ou existem metadados no mysql, ele só precisa se manter.

Não é adequado para operações de transação, como atualizações e outras operações. Os dados usados ​​para análise permanecem inalterados após serem gravados, como dados de registro ou relatórios de exame físico, etc.

Vetorização: refere-se ao fato de que após vetorizar os dados, a CPU só poderia processar um item, mas agora pode processar vários itens ao mesmo tempo.

Arquitetura MPP: Arquitetura de processamento paralelo em grande escala, dividindo dados em várias máquinas para execução conjunta, processando grandes quantidades de dados

Mecanismo de armazenamento de colunas: gerencia colunas e suporta armazenamento e análise de tabelas de grande largura. O MySQL não é bom e entra em colapso quando há muitos campos. Consultar colunas individualmente é rápido e as colunas podem ser atualizadas em tempo real.

Análise em tempo real: a velocidade de análise da consulta é relativamente rápida, no nível de milissegundos

Encaixe do cliente MySQL: por exemplo, o navicat ou o jdbc podem ser vinculados diretamente a ele?A ser verificado

Expansão horizontal: 1 máquina é muito fraca, posso continuar adicionando máquinas para tornar sua capacidade de análise mais forte

apoiara seguirEncaixe de BI: Incluindo Tableau, Power BI, FineBI e Smartbi.

Como um data warehouse em tempo real, ele só pode [Segundo nível】Sincronizar dados, pode em tempo real【nível de milissegundosInvestigar

Arquitetura do sistema (leitura obrigatória para manutenção e construção)

O núcleo do sistema possui apenas processos FE (Frontend), BE (Backend) ou CN (Compute Node).

Front-end (interface de exibição), back-end (controle lógico), nó

Após a versão 3.0, a separação entre armazenamento e cálculo é suportada e os dados persistentes devem ser armazenados no HDFS. Claro, você também pode optar por integrar armazenamento e cálculo.

3.0 também oferece suporte a ambas as arquiteturas.

Qual é a diferença entre os dois? Se o armazenamento e o cálculo estiverem integrados, você deve copiar os dados para startRocks. Se o armazenamento e o cálculo estiverem separados, você pode simplesmente usar os dados diretamente no HDFS. Há uma etapa a menos para copiar. Separar o armazenamento e a computação economiza dinheiro e disco e permite uma melhor expansão dinâmica. Você não precisa se preocupar com o armazenamento ao expandir, apenas expanda os nós de computação diretamente. A desvantagem é que você precisa manter um conjunto extra de dados externos.

A implantação híbrida não é suportada Se o armazenamento e a computação estiverem integrados, não será possível separar o armazenamento e a computação.

Fe é responsável pela coordenação e gestão do catálogo

Armazenamento e cálculo integrados

Seja responsávelarmazenarecalcular

Fe (versão detalhada)

Responsável pela gestãoMetadados, gerenciar conexões de clientes,planejamento de consulta, agendamento de consultas.

Os metadados FE são armazenados na memória e também há uma cópia no disco.

FE tem três funções: líder, seguidor e observador

O Líder é eleito e é responsável pela leitura e escrita. Depois de escrever, os metadados são atualizados e sincronizados para os seguidores e observadores. Apenas metade dos seguidores são bem-sucedidos.

Seguidor não tem permissão de gravação, apenas permissão de leitura

O observador, assim como o seguidor, tem implantação opcional, pode melhorar a velocidade de consulta e não participa de eleições, o que equivale a adicionar mais poder a um tigre.

Seja (versão detalhada)

Cada BE é o mesmo (sem líder ou seguidor), mas nem todo BE possui dados completos. O BE é responsável pelo armazenamento e cálculo dos dados para o BE, e o BE os salva e gera índices.

O cálculo irá dividir o sql em unidades lógicas (nível de código) de acordo com o significado gramatical, e entãoDe acordo com a distribuição de dadosTorne-se uma unidade física (nível de hardware) e execute localmente.

Metadados: Ninguém sabe disso. Para ser sincero, nem quero escrever, só para cuidar de Xiaobai. Por exemplo, que tipo de dados são, se são uma string ou um número. São metadados, os dados usados ​​para modificar os dados.

Planejamento de consultas: quanto desempenho o plano consumirá, qual SQL deve ser usado, otimizado e convertido em um plano físico

Agendamento de consultas: escolha qual será executar este plano físico

Gerenciamento integrado de dados de armazenamento, cálculo e retirada

A menor unidade de armazenamento do StarRocks é chamada de tablet. Podemos nos particionar e então especificar buckets.

A figura é particionada pela coluna de tempo e, em seguida, os intervalos são especificados para 4 campos (4 colunas, na verdade, 1 coluna pode ser usada) e, em seguida, 3 cópias são especificadas e os dados de cada coluna e cada unidade de dados são distribuído em diferentes subnó. A-1, A-2 e A-3 são todos os mesmos dados e são backups de A.

Quando ele se expande, não há necessidade de interromper o serviço. A adição de nós migrará automaticamente e, quando o número de nós diminuir, os dados serão automaticamente distribuídos uniformemente.

Separação de armazenamento e cálculo

introduzido【cache】conceito, Be é [apenas] responsável pelo cálculo, e entãoRenomeado para Cn(nó de computação-nó de computação)

Cache: os dados serão armazenados em cache automaticamente com base na frequência da consulta.Mudanças dinâmicas

Mudanças dinâmicas: divididas em 3 níveis, memória, fonte local e externa. Os dados mais quentes estão na memória, o restante está no disco local e os dados frios (usados ​​com menos frequência) estão em fontes externas.Ajuste dinâmico de dados com base na sua frequência de acesso

Ao criar uma tabela usando armazenamento e cálculo separados, você precisa informar se deseja ativar o cache.

O seguinte armazenamento de back-end é compatível:

  • Sistema de armazenamento de objetos compatível com o protocolo AWS S3 (suporta sistemas convencionais de armazenamento de objetos, como AWS S3, Google GCP, Alibaba Cloud OSS, Tencent Cloud COS, Baidu Cloud BOS, Huawei Cloud OBS e MinIO, etc.)
  • Armazenamento de Blobs do Azure
  • HDFS implantado em data centers tradicionais


Terminei cada frase sobre a arquitetura do sistema do site oficial aqui com minhas próprias palavras. Comece a construir abaixo.

Experiência de início rápido

Ele usa um contêiner docker para empacotar o ambiente para você, para que possa ser iniciado diretamente.

Primeiro instale o docker, pelo menos 4G de memória e 10 GB de espaço.

A CPU do nosso servidor não suporta avx2. Aqui estou executando uma máquina virtual e pretendo obter um Ubuntu.22 no Windows, porque meu computador pessoal suporta avx2. ---Quando terminar o download, começarei a escrever o resto.


 

referir-se:

📚 【源码解析】StarRocks 查询优化系列文章 - 原理解读 - StarRocks中文社区论坛

EstrelasRocks | EstrelasRocks

Pré-requisitos de implantação | StarRocks

https://www.cnblogs.com/huanghanyu/p/18186894