cc-skill-clickhouse-io
掌握 ClickHouse 分析與查詢優化
是否苦惱於大型資料集上的緩慢分析查詢?學習 ClickHouse 特定的面向列式儲存、查詢優化和即時聚合模式,实现高效能分析。
下載技能 ZIP
在 Claude 中上傳
前往 設定 → 功能 → 技能 → 上傳技能
開啟並開始使用
測試它
正在使用「cc-skill-clickhouse-io」。 建立每小時市場統計表
預期結果:
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)
正在使用「cc-skill-clickhouse-io」。 查詢過去 30 天的每日活躍使用者
預期結果:
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
正在使用「cc-skill-clickhouse-io」。 計算交易規模百分位數(中位數、p95、p99)
預期結果:
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
安全審計
安全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.
品質評分
你能建構什麼
資料工程師建構分析平台
為大量事件追蹤和使用者分析設計和優化 ClickHouse 表,使用物化視圖實現即時儀表板。
分析師執行同期群組分析
使用 ClickHouse 特定的聚合函數在大型資料集上執行留存分析、漏斗轉換追蹤和時間序列查詢。
開發人員整合即時指標
實作串流資料擷取和自動化 ETL 管道,將 PostgreSQL 交易資料同步至 ClickHouse 以執行分析工作負載。
試試這些提示
幫我建立一個 ClickHouse 表,用於儲存每日市場分析資料,包含日期、市場 ID、交易量和交易次數欄位。請使用適當的引擎和分區策略以優化時間查詢。
我的 ClickHouse 查詢按 market_name 和 volume 過濾,在 1 億行的表上很慢。表按 (date, market_id) 排序。請建議優化方案,並解釋如何重構表或查詢以獲得更好的效能。
設計一個帶有物化視圖的 ClickHouse 架構,為即時交易儀表板提供支援,顯示每小時交易量、交易次數和每個市場的唯一交易者。請包含基礎表、物化視圖定義和儀表板的範例查詢。
建立一個 ClickHouse 查詢,按註冊月份計算使用者留存同期群組,顯示註冊後第 0、1、7 和 30 天的活躍使用者。請使用包含 user_id 和 timestamp 欄位的 events 表。
最佳實務
- 使用 DATE 或 DateTime 欄位按時間(月或日)分區表,以優化時間範圍查詢
- 按最常過濾且基數最高的欄位排序鍵,以最大化索引使用
- 使用批量插入而非單一列插入,可顯著改善擷取效能
避免
- 使用 SELECT * 而非指定欄位 - 不必要地增加 I/O 和記憶體使用
- 執行小而頻繁的插入而非批量處理 - 導致過多的合併操作並降低效能
- 依賴查詢中的 FINAL 子句 - 在查詢執行前強制進行資料合併,顯著減慢讀取速度