2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
L’entreprise souhaite utiliser une nouvelle architecture Big Data et prévoit de remplacer les plateformes Big Data étrangères par des plateformes nationales. Donc ici, je ne sais pas si je dois utiliser doris ou starrocks. Si j'utilise doris, parce qu'il est open source, je pourrai utiliser directement le fournisseur de cloud à l'avenir. Si vous utilisez des starrocks, vous devez le construire vous-même, mais il sera certainement commercialisé à l'avenir et vous devrez facturer de l'argent. J'ai déjà utilisé doris, mais pas starRocks. Je voulais essayer de voir s'il est vraiment aussi performant que le lien de référence ci-dessous, j'ai donc choisi starrocks. Utilisez-le comme entrepôt de données pour remplacer hive-presto ou kudu-impala dans notre précédent CDH.
Pensez-vous que starRocks peut remplacer Hive ? Je pense que c'est possible. L'ensemble hadoop était quelque chose dont Google s'était lassé il y a 20 ans. L'ensemble hadoop a trop de composants. L'avantage est qu'il est très stable. Presque tous les bugs majeurs rencontrés ont été corrigés au cours des 20 dernières années. . Vous n'avez pas du tout besoin d'utiliser hadoop, vous pouvez utiliser starRocks à la place.
chat /proc/cpuinfo | grep avx2
Si rien ne s'imprime, vous pouvez changer de processeur.
Be est responsable du calcul. Si vous ne disposez pas de ce jeu d’instructions, vous ne pouvez pas le déployer.
startrocks est un [entrepôt de données] pour [l'analyse des données], qui peut remplacer la ruche traditionnelle dont il dispose.vectorisation,Architecture MMPdeMoteur de stockage de colonnes,soutienanalyse en temps réel , calcul simultané.Compatible avec le protocole mysql, peut être utiliséaccueil du client MySQL .soutienExpansion horizontale . L'ensemble du système n'a pas de dépendances externes, c'est-à-dire qu'il n'a pas besoin de zookeeper pour être géré, ou que les métadonnées existent dans MySQL, il n'a besoin que de se maintenir.
Il ne convient pas aux opérations de transaction, telles que les mises à jour et autres opérations. Les données utilisées pour l'analyse restent inchangées après leur écriture, telles que les données de journal ou les rapports d'examen physique, etc.
Vectorisation : fait référence au fait qu'après avoir vectorisé les données, le CPU ne pouvait traiter qu'un seul élément, mais il peut désormais traiter plusieurs éléments en même temps.
Architecture MPP : architecture de traitement parallèle à grande échelle, divisant les données sur plusieurs machines pour une exécution ensemble, traitant de grandes quantités de données
Moteur de stockage de colonnes : gère les colonnes et prend en charge le stockage et l'analyse de tables de grande largeur. MySQL n'est pas bon et s'effondre lorsqu'il y a trop de champs. L'interrogation des colonnes individuellement est rapide et les colonnes peuvent être mises à jour en temps réel.
Analyse en temps réel : la vitesse d'analyse des requêtes est relativement rapide, au niveau de la milliseconde
Docking du client MySQL : par exemple, Navicat ou JDBC peuvent-ils s'y connecter directement ?À vérifier
Expansion horizontale : 1 machine est trop faible, je peux continuer à ajouter des machines pour renforcer sa capacité d'analyse
soutience qui suitAmarrage BI: Y compris Tableau, Power BI, FineBI et Smartbi.
En tant qu'entrepôt de données en temps réel, il ne peut que [Deuxième niveau】 Synchroniser les données, peut en temps réel【niveau milliseconde】Renseigner。
Le cœur du système ne comporte que des processus FE (Frontend), BE (Backend) ou CN (Compute Node).
Front-end (interface d'affichage), back-end (contrôle logique), nœud
Après la version 3.0, la séparation du stockage et du calcul est prise en charge, et les données persistantes doivent être stockées sur HDFS. Bien entendu, vous pouvez également choisir d’intégrer le stockage et le calcul.
3.0 prend également en charge les deux architectures.
Quelle est la différence entre les deux ? Si le stockage et le calcul sont intégrés, vous devez copier les données dans startRocks. Si le stockage et le calcul sont séparés, vous pouvez simplement utiliser les données directement dans HDFS. Il y a une étape de moins pour copier. La séparation du stockage et de l'informatique permet d'économiser de l'argent et des disques et permet une meilleure expansion dynamique. Vous n'avez pas à vous soucier du stockage lors de l'expansion, il suffit d'étendre directement les nœuds informatiques. L’inconvénient est que vous devez conserver un ensemble supplémentaire de données externes.
Le déploiement hybride n'est pas pris en charge. Si le stockage et l'informatique sont intégrés, vous ne pouvez pas séparer le stockage et l'informatique.
Fe est responsable de la coordination et de la gestion du catalogue
Être responsablestockageetcalculer
Fe (version détaillée):
Responsable de la gestionmétadonnées, gérer les connexions clients,planification des requêtes, planification des requêtes.
Les métadonnées FE sont stockées en mémoire et il existe également une copie sur le disque.
FE a trois rôles : leader, suiveur et observateur
Le Leader est élu et est responsable de la lecture et de l'écriture. Ensuite, après l'écriture, les métadonnées sont mises à jour et synchronisées avec les abonnés et les observateurs. Seule la moitié des abonnés réussissent.
L'abonné n'a pas d'autorisation d'écriture, seulement une autorisation de lecture
Observer, comme Follower, est facultatif à déployer, peut améliorer la vitesse des requêtes et ne participe pas aux élections, ce qui équivaut à ajouter plus de pouvoir à un tigre.
Être (version détaillée):
Chaque BE est identique (pas de leader ni de suiveur), mais tous les BE ne disposent pas de données complètes. BE est responsable du stockage et du calcul. FE alloue les données à BE, et BE les enregistre et génère des index.
Le calcul divisera le SQL en unités logiques (niveau de code) selon la signification grammaticale, puisSelon la répartition des donnéesDevenez une unité physique (niveau matériel) puis exécutez-la localement.
Métadonnées : personne ne le sait, pour être honnête, je ne veux même pas l'écrire, juste pour m'occuper de Xiaobai. Par exemple, de quel type de données s'agit-il, s'il s'agit d'une chaîne ou d'un nombre ? Il s'agit de métadonnées, les données utilisées pour modifier les données.
Planification des requêtes : quelle quantité de performances le plan consommera-t-il, quel code SQL doit être utilisé, optimisé et converti en plan physique
Planification des requêtes : choisissez qui exécutera ce plan physique
La plus petite unité de stockage de starRocks s'appelle une tablette. Nous pouvons nous partitionner puis spécifier des compartiments.
L'image est partitionnée par colonne de temps, puis des compartiments sont spécifiés pour 4 champs (4 colonnes, en fait, 1 colonne peut être utilisée), puis 3 copies sont spécifiées, et les données de chaque colonne et chaque unité de données sont distribué dans différents sous-nœuds. A-1, A-2 et A-3 sont tous les mêmes données et sont des sauvegardes de A.
Lorsqu'il se développe, il n'est pas nécessaire d'arrêter le service. L'ajout de nœuds migrera automatiquement et lorsque le nombre de nœuds diminuera, les données seront automatiquement réparties uniformément.
présenté【cache】concept, Be est [uniquement] responsable du calcul, et ensuiteRenommé en Cn(nœud de calcul-nœud de calcul)
Mise en cache : les données seront automatiquement mises en cache en fonction de la fréquence des requêtes.Changements dynamiques
Changements dynamiques : divisés en 3 niveaux, mémoire, source locale et externe. Les données les plus chaudes sont en mémoire, le reste est sur le disque local, et les données froides (moins fréquemment utilisées) se trouvent dans des sources externes.Ajustement dynamique des données en fonction de votre fréquence d'accès
Lors de la création d'une table utilisant un stockage et un calcul séparés, vous devez lui indiquer si vous souhaitez activer la mise en cache.
Le stockage back-end suivant est pris en charge :
J'ai terminé ici chaque phrase sur l'architecture système du site officiel avec mes propres mots. Commencez à construire ci-dessous.
Il utilise un conteneur Docker pour empaqueter l'environnement pour vous, afin qu'il puisse être démarré directement.
Installez d’abord Docker, avec au moins 4 Go de mémoire et 10 Go d’espace.
Le processeur de notre serveur ne prend pas en charge avx2. Ici, j'utilise une machine virtuelle et je prévois d'obtenir un Ubuntu.22 sous Windows, car mon ordinateur personnel prend en charge avx2. ---Quand j'aurai fini le téléchargement, je commencerai à écrire le reste.
faire référence à:
📚 【源码解析】StarRocks 查询优化系列文章 - 原理解读 - StarRocks中文社区论坛
Roches étoilées | Roches étoilées