Compartir tecnología

construcción de starRocks

2024-07-12

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

La empresa quiere utilizar una nueva arquitectura de big data y planea sustituir las plataformas de big data extranjeras por plataformas nacionales. Así que aquí no sé si usar doris o starrocks. Si uso doris, debido a que es de código abierto, puedo usar directamente el proveedor de la nube en el futuro. Si usas starrocks, tendrás que construirlo tú mismo, pero definitivamente se comercializará en el futuro y tendrás que cobrar dinero. He usado doris antes, pero no starRocks. Quería probar para ver si realmente tiene tan alto rendimiento como el enlace de referencia a continuación, así que elegí starrocks. Úselo como almacén de datos para reemplazar hive-presto o kudu-impala en nuestro CDH anterior.

¿Crees que starRocks puede reemplazar a Hive? Creo que es posible. El conjunto Hadoop fue algo de lo que Google se cansó hace 20 años. El conjunto Hadoop tiene demasiados componentes. La ventaja es que es muy estable. Casi todos los errores importantes encontrados se han solucionado en los últimos 20 años. . No necesitas usar hadoop en absoluto, puedes usar starRocks en su lugar.

Compruebe si la CPU es compatible

gato /proc/cpuinfo | grep avx2

Si no se imprime nada, puede cambiar la CPU.

Be es responsable del cálculo. Si no tiene este conjunto de instrucciones, no podrá implementarlo.

introducir

startrocks es un [almacén de datos] para [análisis de datos], que puede reemplazar la colmena tradicional que tiene.vectorizaciónarquitectura MMPdeMotor de almacenamiento de columnas,apoyoanálisis en tiempo real , computación concurrente.Compatible con el protocolo mysql, se puede utilizaracoplamiento del cliente mysql .apoyoExpansión horizontal . Todo el sistema no tiene dependencias externas, es decir, no necesita zookeeper para administrarlo, ni existen metadatos en mysql, solo necesita mantenerse a sí mismo.

No es adecuado para operaciones de transacciones, como actualizaciones y otras operaciones. Los datos utilizados para el análisis no cambian después de escribirse, como datos de registro o informes de examen físico, etc.

Vectorización: se refiere al hecho de que después de vectorizar los datos, la CPU solo podía procesar un elemento, pero ahora puede procesar varios elementos al mismo tiempo.

Arquitectura MPP: arquitectura de procesamiento paralelo a gran escala, que divide los datos en varias máquinas para su ejecución conjunta y procesa grandes cantidades de datos.

Motor de almacenamiento de columnas: administra columnas y admite almacenamiento y análisis de tablas de gran ancho. MySQL no es bueno y colapsa cuando hay demasiados campos. La consulta de columnas individualmente es rápida y las columnas se pueden actualizar en tiempo real.

Análisis en tiempo real: la velocidad del análisis de consultas es relativamente rápida, nivel de milisegundos

Acoplamiento del cliente MySQL: por ejemplo, ¿navicat o jdbc pueden vincularse directamente a él?Para ser verificado

Expansión horizontal: 1 máquina es demasiado débil, puedo continuar agregando máquinas para fortalecer su capacidad de análisis

apoyola siguienteacoplamiento BI: Incluyendo Tableau, Power BI, FineBI y Smartbi.

Como almacén de datos en tiempo real, solo puede [Segundo nivel】 Sincronizar datos, puede en tiempo real 【nivel de milisegundosPreguntar

Arquitectura del sistema (debe leerse para mantenimiento y construcción)

El núcleo del sistema tiene únicamente procesos FE (Frontend), BE (Backend) o CN (Compute Node).

Front-end (interfaz de visualización), back-end (control lógico), nodo

Después de 3.0, se admite la separación de almacenamiento y cálculo, y los datos persistentes deben almacenarse en HDFS. Por supuesto, también puedes optar por integrar almacenamiento y cálculo.

3.0 también admite ambas arquitecturas.

¿Cuál es la diferencia entre los dos? Si el almacenamiento y el cálculo están integrados, debe copiar los datos a startRocks. Si el almacenamiento y el cálculo están separados, puede usar los datos directamente en HDFS. Hay un paso menos para copiar. Separar el almacenamiento y la informática ahorra dinero y disco y permite una mejor expansión dinámica. No necesita preocuparse por el almacenamiento al expandir, simplemente expanda los nodos informáticos directamente. La desventaja es que necesita mantener un conjunto adicional de datos externos.

No se admite la implementación híbrida. Si el almacenamiento y la informática están integrados, no se puede separar el almacenamiento y la informática.

Fe es responsable de la coordinación y gestión del catálogo.

Almacenamiento y cálculo integrados

Sé responsablealmacenamientoycalcular

Fe (versión detallada)

Responsable de la gestionMetadatos, gestionar las conexiones de los clientes,planificación de consultas, programación de consultas.

Los metadatos de FE se almacenan en la memoria y también hay una copia en el disco.

FE tiene tres roles, líder, seguidor y observador.

El Líder es elegido y es responsable de la lectura y la escritura. Luego, después de escribir, los metadatos se actualizan y sincronizan con los seguidores y observadores. Solo la mitad de los seguidores tienen éxito.

El seguidor no tiene permiso de escritura, solo permiso de lectura.

El observador, al igual que el seguidor, es opcional de implementar, puede mejorar la velocidad de consulta y no participa en las elecciones, lo que equivale a agregar más poder a un tigre.

Ser (versión detallada)

Cada BE es igual (ni líder ni seguidor), pero no todos los BE tienen datos completos. BE es responsable del almacenamiento y el cálculo. FE asigna datos a BE, y BE los guarda y genera índices.

El cálculo dividirá el sql en unidades lógicas (nivel de código) de acuerdo con el significado gramatical, y luegoSegún distribución de datosConviértase en una unidad física (nivel de hardware) y luego ejecútela localmente.

Metadatos: nadie lo sabe. Para ser honesto, ni siquiera quiero escribirlo, solo para cuidar de Xiaobai. Por ejemplo, ¿qué tipo de datos son, ya sean una cadena o un número? Estos son metadatos, los datos utilizados para modificar los datos.

Planificación de consultas: cuánto rendimiento consumirá el plan, qué SQL se debe utilizar, optimizar y convertir en un plan físico

Programación de consultas: elija cuál ejecutar este plan físico

Gestión integrada de datos de almacenamiento, cálculo y retirada.

La unidad de almacenamiento más pequeña de starRocks se llama tableta. Podemos particionarnos y luego especificar depósitos.

La figura se divide por la columna de tiempo, y luego se especifican depósitos para 4 campos (4 columnas, de hecho, se puede usar 1 columna), y luego se especifican 3 copias, y los datos de cada columna y cada unidad de datos son distribuidos en diferentes bajo nodos. A-1, A-2 y A-3 son todos los mismos datos y son copias de seguridad de A.

Cuando se expande, no es necesario detener el servicio. Agregar nodos migrará automáticamente y, cuando la cantidad de nodos disminuya, los datos se distribuirán automáticamente de manera uniforme.

Separación de almacenamiento y cálculo.

introducido【cache】concepto, Be es [únicamente] responsable del cálculo, y luegoRenombrado a Cn(nodo de cálculo-nodo de cálculo)

Almacenamiento en caché: los datos se almacenarán en caché automáticamente según la frecuencia de las consultas.Cambios dinámicos

Cambios dinámicos: divididos en 3 niveles, memoria, fuente local y externa. Los datos más activos están en la memoria, luego el resto está en el disco local y luego los datos fríos (que se usan con menos frecuencia) están en fuentes externas.Ajuste dinámico de datos según su frecuencia de acceso

Al crear una tabla utilizando almacenamiento y cálculo separados, debe decirle si desea habilitar el almacenamiento en caché.

Se admite el siguiente almacenamiento backend:

  • Sistema de almacenamiento de objetos compatible con el protocolo AWS S3 (admite sistemas de almacenamiento de objetos convencionales como AWS S3, Google GCP, Alibaba Cloud OSS, Tencent Cloud COS, Baidu Cloud BOS, Huawei Cloud OBS y MinIO, etc.)
  • Almacenamiento de blobs de Azure
  • HDFS implementado en centros de datos tradicionales


He terminado cada frase sobre la arquitectura del sistema del sitio web oficial aquí con mis propias palabras. Comience a construir a continuación.

Experiencia de inicio rápido

Utiliza un contenedor acoplable para empaquetar el entorno por usted, de modo que pueda iniciarlo directamente.

Primero instale Docker, al menos 4G de memoria y 10 GB de espacio.

La CPU de nuestro servidor no es compatible con avx2. Aquí estoy ejecutando una máquina virtual y planeo obtener Ubuntu.22 en Windows, porque mi computadora personal es compatible con avx2. ---Cuando termine de descargar, comenzaré a escribir el resto.


 

Referirse a:

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

Rocas estelares | Rocas estelares

Requisitos previos de implementación |

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