Compétences clickhouse-io
📦

clickhouse-io

Sûr

Maîtriser l'analytique ClickHouse et l'optimisation des requêtes

Construisez des systèmes analytiques haute performance avec la base de données orientée colonnes ClickHouse. Apprenez des modèles éprouvés pour l'optimisation des requêtes, les vues matérialisées et les pipelines de données en temps réel.

Prend en charge: Claude Codex Code(CC)
🥉 74 Bronze
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "clickhouse-io". Créer une table pour l'analytique de marché avec date, market_id, volume et trades

Résultat attendu:

Crée une table MergeTree avec partitionnement mensuel, un ordre approprié par date et market_id, et des types de données appropriés (Date, String, UInt64, UInt32) pour une compression et des performances de requête optimales.

Utilisation de "clickhouse-io". Optimiser une requête filtrant par volume puis date sur une grande table

Résultat attendu:

Réorganise la clause WHERE pour filtrer d'abord par les colonnes indexées (date, market_id), suggère d'utiliser quantile() pour les calculs de percentiles, et recommande d'ajouter des projections appropriées pour les modèles de filtrage courants.

Utilisation de "clickhouse-io". Configurer l'agrégation en temps réel pour les métriques horaires

Résultat attendu:

Crée une table cible AggregatingMergeTree avec des colonnes AggregateFunction, définit une vue matérialisée avec les fonctions sumState/countState/uniqState, et fournit le modèle de requête utilisant sumMerge/countMerge/uniqMerge.

Audit de sécurité

Sûr
v1 • 2/25/2026

This skill contains documentation and code examples for ClickHouse database usage. Static analyzer flagged 86 patterns that are all false positives: backticks in markdown denote SQL code blocks (not shell execution), environment variable references are configuration examples, and system table queries are legitimate ClickHouse monitoring features. No executable code or security risks present.

1
Fichiers analysés
431
Lignes analysées
0
résultats
1
Total des audits
Aucun problème de sécurité trouvé
Audité par: claude

Score de qualité

38
Architecture
90
Maintenabilité
87
Contenu
50
Communauté
100
Sécurité
100
Conformité aux spécifications

Ce que vous pouvez construire

Ingénieur de données concevant une plateforme d'analytique

Concevoir des schémas de tables évolutifs et implémenter des pipelines d'ingestion de données efficaces pour le suivi d'événements à haut volume et l'analytique utilisateur.

Développeur backend optimisant des requêtes

Apprendre les modèles de requêtes spécifiques à ClickHouse pour réduire la latence sur les grands jeux de données et implémenter des stratégies d'indexation appropriées.

Analyste créant des tableaux de bord en temps réel

Utiliser des vues matérialisées et des modèles de pré-agrégation pour alimenter des requêtes de tableau de bord en moins d'une seconde sur des milliards de lignes.

Essayez ces prompts

Conception de table de base
Créer un schéma de table ClickHouse pour stocker des événements d'activité utilisateur avec des colonnes pour user_id, event_type, timestamp et properties. Utiliser le moteur approprié pour la déduplication et partitionner par mois.
Optimisation de requête
Examiner cette requête ClickHouse qui s'exécute lentement sur 100 millions de lignes ou plus. Suggérer des optimisations pour la clause WHERE, les index et les fonctions d'agrégation : [coller la requête]
Configuration de vue matérialisée
Créer une vue matérialisée qui pré-agrège les utilisateurs actifs quotidiens et le nombre total d'événements par heure à partir d'une table d'événements. Inclure le schéma de la table cible et la définition de la vue matérialisée.
Conception de pipeline ETL
Concevoir un pipeline ETL pour synchroniser les données de PostgreSQL vers ClickHouse toutes les heures. Inclure la logique d'extraction et de transformation, ainsi que les modèles d'insertion par lots avec gestion des erreurs.

Bonnes pratiques

  • Partitionner les tables par temps (mois ou jour) mais éviter un partitionnement excessif qui impacte les performances
  • Ordonner les clés primaires par les colonnes les plus fréquemment filtrées avec la plus forte cardinalité en premier
  • Utiliser des insertions par lots au lieu d'insertions de lignes individuelles pour une ingestion de données efficace
  • Exploiter les vues matérialisées pour des métriques pré-agrégées afin d'atteindre une latence de requête inférieure à une seconde

Éviter

  • Utiliser SELECT * au lieu de spécifier les colonnes requises - augmente l'utilisation des E/S et de la mémoire
  • Effectuer de petites insertions fréquentes au lieu de regrouper en lots - cause une création excessive de partitions
  • Compter sur le modificateur FINAL dans les requêtes - force une fusion de données coûteuse au moment de la requête
  • Créer trop de JOINs dans les requêtes analytiques - dénormaliser les données pour de meilleures performances

Foire aux questions

À quoi ClickHouse est-il le mieux adapté ?
ClickHouse excelle dans les charges de travail OLAP (Online Analytical Processing) avec de grands jeux de données nécessitant des agrégations rapides et des analyses de séries chronologiques. Il n'est pas conçu pour les charges de travail transactionnelles (OLTP) avec des mises à jour fréquentes.
Comment ClickHouse atteint-il des performances de requête rapides ?
ClickHouse utilise un stockage orienté colonnes pour une compression efficace, une exécution de requête vectorisée, un traitement parallèle sur les cœurs CPU, et des structures d'index spécialisées comme les clés primaires creuses et les index de saut de données.
Quelle est la différence entre MergeTree et ReplacingMergeTree ?
MergeTree est le moteur à usage général pour la plupart des cas d'utilisation. ReplacingMergeTree déduplique également les lignes avec la même clé primaire lors des fusions, utile lors de l'ingestion de données provenant de plusieurs sources qui peuvent produire des doublons.
À quelle fréquence dois-je insérer des données dans ClickHouse ?
Les insertions par lots sont fortement recommandées. Insérez des milliers de lignes à la fois plutôt que des lignes individuelles. Visez au moins 1000 lignes par insertion ou regroupez par intervalles de temps (par exemple, toutes les quelques secondes) pour des performances optimales.
Que sont les vues matérialisées et quand dois-je les utiliser ?
Les vues matérialisées pré-agrégent automatiquement les données lors de leur insertion. Utilisez-les pour les tableaux de bord en temps réel, les agrégations fréquemment consultées, ou lorsque la latence de requête doit être inférieure à une seconde sur de grands jeux de données.
Comment surveiller les performances des requêtes ClickHouse ?
Interrogez la table system.query_log pour analyser les requêtes lentes, vérifiez system.parts pour les statistiques de table et l'activité de fusion, et surveillez system.metrics pour les compteurs de performance en temps réel.

Détails du développeur

Structure de fichiers

📄 SKILL.md