Compétences cc-skill-clickhouse-io
📦

cc-skill-clickhouse-io

Sûr

Maîtrisez l'analyse ClickHouse et l'optimisation des requêtes

Vous rencontrez des problèmes avec des requêtes analytiques lentes sur de grands ensembles de données ? Apprenez les modèles spécifiques à ClickHouse pour le stockage orienté colonne, l'optimisation des requêtes et les agrégations en temps réel pour obtenir des analyses hautes performances.

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 "cc-skill-clickhouse-io". Créer une table pour les statistiques de marché horaires

Résultat attendu:

CREATE TABLE market_stats_hourly (hour DateTime, market_id String, total_volume AggregateFunction(sum, UInt64), total_trades AggregateFunction(count, UInt32), unique_users AggregateFunction(uniq, String)) ENGINE = AggregatingMergeTree() PARTITION BY toYYYYMM(hour) ORDER BY (hour, market_id)

Utilisation de "cc-skill-clickhouse-io". Requêter les utilisateurs actifs quotidiens pour les 30 derniers jours

Résultat attendu:

SELECT toDate(timestamp) AS date, uniq(user_id) AS daily_active_users FROM events WHERE timestamp >= today() - INTERVAL 30 DAY GROUP BY date ORDER BY date

Utilisation de "cc-skill-clickhouse-io". Calculer les percentiles de taille de transaction (médiane, p95, p99)

Résultat attendu:

SELECT quantile(0.50)(trade_size) AS median, quantile(0.95)(trade_size) AS p95, quantile(0.99)(trade_size) AS p99 FROM trades WHERE created_at >= now() - INTERVAL 1 HOUR

Audit de sécurité

Sûr
v1 • 2/25/2026

This skill is documentation-only containing SQL queries and TypeScript code examples for ClickHouse database operations. All 87 static analyzer findings are false positives: backticks are markdown code fences not shell execution, SQL aggregation functions (uniq, sum, countMerge) are not cryptographic algorithms, and system table queries are legitimate ClickHouse monitoring features. No executable code or security risks detected.

1
Fichiers analysés
437
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 construisant une plateforme d'analyse

Concevoir et optimiser des tables ClickHouse pour le suivi d'événements à haut volume et l'analytique utilisateur avec des vues matérialisées pour des tableaux de bord en temps réel.

Analyste effectuant une analyse de cohorte

Exécuter une analyse de rétention, un suivi de conversion en entonnoir et des requêtes de séries temporelles sur de grands ensembles de données en utilisant des fonctions d'agrégation spécifiques à ClickHouse.

Développeur intégrant des métriques en temps réel

Implémenter l'ingestion de données en flux et des pipelines ETL automatisés pour synchroniser les données transactionnelles de PostgreSQL vers ClickHouse pour des charges de travail analytiques.

Essayez ces prompts

Débutant : Créer une table d'analyse de base
Aidez-moi à créer une table ClickHouse pour stocker des données d'analyse de marché quotidiennes avec des colonnes pour la date, market_id, volume et le nombre de transactions. Utilisez le moteur approprié et une stratégie de partitionnement pour des requêtes basées sur le temps.
Intermédiaire : Optimiser une requête lente
Ma requête ClickHouse filtrant par market_name et volume est lente sur une table avec 100M de lignes. La table est ordonnée par (date, market_id). Suggérez des optimisations et expliquez comment restructurer la table ou la requête pour de meilleures performances.
Avancé : Concevoir un backend de tableau de bord en temps réel
Concevez un schéma ClickHouse avec des vues matérialisées pour alimenter un tableau de bord de trading en temps réel affichant le volume horaire, le nombre de transactions et les traders uniques par marché. Incluez la table de base, la définition de la vue matérialisée et des exemples de requêtes pour le tableau de bord.
Expert : Implémenter une analyse de rétention utilisateur
Créez une requête ClickHouse pour calculer les cohortes de rétention utilisateur par mois d'inscription, affichant les utilisateurs actifs au jour 0, jour 1, jour 7 et jour 30 après l'inscription. Utilisez une table events avec des colonnes user_id et timestamp.

Bonnes pratiques

  • Partitionnez les tables par temps (mois ou jour) en utilisant des colonnes DATE ou DateTime pour optimiser les requêtes de plage temporelle
  • Ordonnez les clés par les colonnes les plus fréquemment filtrées avec la cardinalité la plus élevée en premier pour maximiser l'utilisation de l'index
  • Utilisez des insertions par lots au lieu d'insertions de lignes individuelles pour améliorer considérablement les performances d'ingestion

Éviter

  • Utiliser SELECT * au lieu de spécifier les colonnes - augmente inutilement les E/S et l'utilisation de la mémoire
  • Effectuer des insertions petites et fréquentes au lieu de les regrouper - provoque des opérations de fusion excessives et dégrade les performances
  • S'appuyer sur la clause FINAL dans les requêtes - force la fusion des données avant l'exécution de la requête, ralentissant considérablement les lectures

Foire aux questions

Quelle est la différence entre les moteurs MergeTree et ReplacingMergeTree ?
MergeTree est le moteur polyvalent pour la plupart des cas d'usage. ReplacingMergeTree déduplique automatiquement les lignes avec la même clé primaire pendant les fusions, utile lors de l'ingestion de données depuis plusieurs sources qui peuvent produire des doublons.
Comment fonctionnent les vues matérialisées dans ClickHouse ?
Les vues matérialisées traitent automatiquement les opérations INSERT sur les tables sources et peuplent les tables cibles avec des données transformées ou agrégées. Elles permettent des agrégations en temps réel sans travaux ETL manuels.
Quelle est la taille de lot optimale pour l'insertion de données ?
Visez des lots de 10 000 à 100 000 lignes ou 10-100 Mo par insertion. Évitez d'insérer plus fréquemment qu'une fois par seconde par table pour prévenir la création excessive de parties.
Quand dois-je utiliser AggregatingMergeTree ?
Utilisez AggregatingMergeTree lorsque vous devez stocker des agrégations pré-calculées qui peuvent être fusionnées ultérieurement. Cela nécessite des types de données AggregateFunction et des fonctions state/merge mais fournit une interrogation rapide des métriques agrégées.
Comment puis-je surveiller les requêtes lentes dans ClickHouse ?
Interrogez la table system.query_log en filtrant par query_duration_ms et type='QueryFinish'. Cela affiche le temps d'exécution, les lignes lues, les octets lus et l'utilisation de la mémoire pour les requêtes terminées.
ClickHouse prend-il en charge les transactions ?
ClickHouse ne prend pas en charge les transactions ACID traditionnelles. Il est optimisé pour les charges de travail analytiques avec des opérations lourdes en écriture. Utilisez des opérations INSERT atomiques et concevez des schémas pour gérer la cohérence à terme.

Détails du développeur

Structure de fichiers

📄 SKILL.md