Les moteurs d'analyse de données fleurissent, pourquoi investir massivement dans ClickHouse ?

Pour plus d'échanges techniques, d'opportunités d'emploi et d'avantages d'essai, veuillez prêter attention au compte public WeChat de la plateforme de données ByteDance et répondre à [1] pour entrer dans le groupe d'échange officiel

Ces dernières années, la concurrence des produits OLAP est devenue de plus en plus féroce. À l'heure actuelle, il n'y a pas seulement les produits d'analyse de données plus matures de la génération précédente tels que Impala et Greenplum, mais aussi la nouvelle génération de ClickHouse, Kylin, Druid, Doris. , et StarRocks, qui ont leurs propres caractéristiques dans différents scénarios Moteur d'analyse. Chacun de ces produits a ses propres avantages.Les utilisateurs doivent avoir une compréhension globale de chaque produit lors de la sélection et ont besoin de connaissances sur le produit pour se tenir au courant de la dernière version afin de sélectionner avec précision le produit adapté à leur entreprise.

Les produits Douyin, Toutiao et autres de ByteDance ont connu une croissance rapide, et les données qui doivent être analysées et traitées ont également augmenté de façon exponentielle, ce qui a des exigences extrêmement élevées pour l'analyse en temps réel. Lors du choix d'un moteur OLAP, Byte a également essayé Kylin, Druid, Spark, etc., et a également effectué des recherches approfondies sur d'autres produits. Après des tentatives et des réflexions continues, Bytes a envisagé les performances, la stabilité et la réutilisabilité, et a finalement choisi ClickHouse comme moteur d'analyse principal pour effectuer le travail approfondi d'analyse de la croissance commerciale de ByteDance. À l'heure actuelle, le nombre total de nœuds ClickHouse dans ByteDance a dépassé 18 000, la quantité totale de données gérées dépasse 700 Po et la plus grande échelle de cluster dépasse les nœuds 2 400. C'est l'un des plus grands utilisateurs de ClickHouse dans le pays et même dans le monde. .

L'évolution OLAP de ByteDance

Au début, la plus grande exigence était "rapide", donc l'équipe d'octets a essayé Kylin, qui a l'avantage de fournir une latence de requête de l'ordre de la milliseconde. Cependant, dans le même temps, Kylin a également des problèmes tels que le besoin de pré-agrégation, la nécessité de définir le modèle de données à l'avance et l'incapacité d'effectuer une analyse interactive. retourner les résultats. Ensuite, l'équipe espère utiliser Spark pour résoudre le problème. Cependant, Spark a également de nombreux problèmes qui affligent l'équipe, tels que la vitesse de requête n'est pas assez rapide, le taux d'utilisation des ressources est élevé, la stabilité n'est pas assez bonne et les données ne peuvent pas être prises en charge plus longtemps.

Après mûre réflexion, Byte a décidé de choisir le moteur d'analyse OLAP selon les perspectives suivantes :

L'un est très simple et les exigences simples pour OLAP : haute disponibilité et performances élevées. Quelle que soit la quantité de réutilisation et d'identités ajoutées à OLAP, l'exigence principale et principale est de stocker suffisamment de données, d'être suffisamment stable et de trouver des données très rapidement. Il s'agit de la première exigence - être facile à utiliser, c'est-à-dire répondre aux exigences de performance de l'analyse interactive sous des données massives et obtenir une réponse de second niveau.

La seconde est la réutilisation. Sur la base de la facilité d'utilisation, l'équipe espère utiliser un ensemble de piles technologiques pour résoudre la plupart ou même tous les problèmes autant que possible, ce qui nécessite que le moteur soit personnalisable, permettant aux développeurs de construire divers scénarios orientés scénarios sur cette technologie. pile Applications.

Le troisième est la facilité d'utilisation, qui permet aux utilisateurs d'utiliser le produit de manière plus autonome.

En fin de compte, après avoir recherché et testé divers moteurs open source sur le marché à l'époque, l'équipe a finalement choisi ClickHouse comme moteur de requête OLAP et a commencé à itérer sur cette base.

 

Présentation de Click House

ClickHouse est un système de gestion de base de données en colonnes (SGBD) pour l'analyse en ligne (OLAP). Open source en 2016 et connu pour ses performances puissantes. Il présente les caractéristiques d'un stockage en colonnes, d'un moteur d'exécution vectorisé, d'un taux de compression élevé et d'un calcul parallèle multicœur.

1. De solides performances

Connu comme le moteur OLAP le plus rapide, la comparaison des performances d'un même serveur de l'ordre de 100 millions de données est la suivante :

2. Riche en fonctionnalités

ClickHouse prend en charge divers scénarios pour l'analyse statistique des données :

  • Prend en charge les requêtes de type SQL ;

  • Prend en charge de nombreuses fonctions de bibliothèque (telles que la conversion IP, l'analyse d'URL, etc., le calcul estimé/HyperLoglog, etc.);

  • Prise en charge du tableau (Array) et de la structure de données imbriquées (Nested Data Structure);

  • Prend en charge le déploiement de la géoréplication de la base de données.

3. Vitesse d'importation rapide des données

ClickHouse utilise un cadre de calcul parallèle à grande échelle, avec des capacités d'écriture en temps réel à très haut débit, de l'ordre de 50 à 200 M par seconde.

ClickHouse adopte une structure comme LSM Tree et se compacte périodiquement en arrière-plan après l'écriture des données. Grâce à la structure arborescente LSM, ClickHouse écrit toutes les données de manière séquentielle en les ajoutant, et le segment de données ne peut pas être modifié après l'écriture. Dans le compactage en arrière-plan, plusieurs segments sont fusionnés, triés et réécrits sur le disque de manière séquentielle. La fonction d'écriture séquentielle utilise pleinement la capacité de débit du disque.

4. De bonnes perspectives de développement

Depuis son open source en 2016, ClickHouse a connu une croissance rapide avec ses performances extrêmes plusieurs fois supérieures à celles des autres meilleures bases de données d'analyse interactives. À l'heure actuelle, ClickHouse a obtenu 24,2 000 étoiles sur Github, plus de 1 000 contributeurs.

 

Inconvénients de ClickHouse

Aucun moteur de données n'est parfait, et dans le processus d'utilisation intensive, Byte a également trouvé quelques lacunes de ClickHouse :

1. Mauvaise capacité de requête de corrélation

L'avantage de ClickHouse réside dans les performances des requêtes à table unique, mais dans certains scénarios nécessitant une requête flexible, le manque de capacité d'association multi-tables de ClickHouse est exposé et il est difficile de répondre à de tels scénarios.

2. Dépend de Zookeeper

Zookeeper est principalement utilisé pour la synchronisation des données de table répliquée (moteur ReplicatedMergeTree) et des opérations de table distribuée (Distributed) dans ClickHouse. Cependant, une mauvaise utilisation de Zookeeper peut facilement provoquer une instabilité du cluster ClickHouse.

3. Ne prend pas en charge l'upsert

ClickHouse ne prend en charge que la suppression ou la modification de données par lots, ReplacingMergeTree doit s'appuyer sur la fusion pour supprimer les doublons de manière asynchrone.

4. Exploitation et maintenance complexes

Lorsque ClickHouse s'agrandit ou se rétrécit, il est très peu pratique de créer une nouvelle table et d'importer à nouveau des données. Les clusters ClickHouse ne peuvent pas détecter automatiquement les changements de topologie de cluster, ni équilibrer automatiquement les données. Lorsque la quantité de données dans le cluster est importante, il y a trop de tables répliquées et de tables distribuées, essayer d'atteindre les dimensions de table ou l'équilibre des données entre les clusters entraînera des coûts d'exploitation et de maintenance élevés.

Rendez- vous sur le site officiel de Volcano Engine ByteHouse pour plus de détails ! Bienvenue pour télécharger le livre blanc "De ClickHouse à ByteHouse" pour en savoir plus~

 

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

Je suppose que tu aimes

Origine my.oschina.net/u/5588928/blog/5553446
conseillé
Classement