
本文字数3202估计阅读时间9 分钟作者Lionel Palacin本文在公众号【ClickHouseInc】首发GitHub 不断生成议题issues、拉取请求pull requests和评论comments。这些被称为 GitHub 事件GitHub events。随着时间的推移这数十亿事件捕捉了技术的完整生命周期框架frameworks、库libraries和工具tools如何兴起和衰落。但捕捉这种庞大的数据流并将其转化为实时趋势分析器real-time trends analyzer却是一个挑战。GitTrends使这成为可能。它是一个新的开源open-source演示应用程序demo application功能类似于科技界的专业版 Google Trends让你能够实时搜索和比较超过100亿个 GitHub 事件中任何主题、技术或关键词的趋势。该应用现已上线网址为 https://gittrends.clickhouse.com。GitTrends 是一个公开演示应用旨在展示 ClickHouse 的全文搜索full-text search能力。它功能齐全但可能缺少一些功能或偶尔存在错误bug。如何使用 GitTrends在 GitTrends 中输入一个搜索词即可立即查看该词在每个 GitHub 仓库repository的议题issues、拉取请求pull requests和评论comments中被提及的次数。这为你提供了以下概览一项技术随时间推移的流行度、推动相关讨论的仓库、最活跃地讨论该技术的开发者以及该词出现的实际议题和拉取请求。但当你开始进行比较时GitTrends 的功能才真正变得有趣。比较技术采用tech adoption搜索和比较任何关键词的提及趋势这与 Google Trends 完全相同但其数据源是全球最相关的开源技术数据。例如你可以比较ClickHouse vs Druid以了解这两个分析型数据库analytics databases如何随时间推移此消彼长或者追踪Claude vs OpenAI观察人工智能AI格局如何在真实的开发者对话中发生转变。识别生态系统Ecosystems识别围绕任何话题推动讨论的顶级仓库。ClickHouse 的讨论主要集中在其自身生态系统内还是正在拓展到数据工程data engineering和可观测性observability项目中OpenAI 是否在广泛的仓库中被提及而 Claude 则仅集中在少数几个仓库中了解一项技术主要活跃在哪些领域其重要性不亚于了解它有多流行。深入探究来源Drill into the Source从宏观趋势深入了解其背后的实际讨论。选择任意一个仓库repository探索其具体活动最活跃的贡献者以及推动该趋势的最常被提及的议题issues和拉取请求PRs。规模化全文搜索GitTrends 基于一个简单的理念构建在近 100 亿条 GitHub 事件中实时搜索任意词条且无需进行数据转换。你无需查询预先计算好的结果而是直接索引原始文本并在查询时进行搜索。这正是 ClickHouse 最近发布的新全文搜索full-text search功能所能提供的核心优势。只需在文本列上构建文本索引text index即可使用全文搜索功能。ClickHouse 之所以在这里表现得特别强大是因为全文搜索功能full-text search和聚合功能集成在同一个引擎中。单个查询就能一次性完成原始文本的搜索和结果的聚合无需跨系统连接无需数据迁移且没有额外的延迟开销。正是这种结合让用户体验到的是即时响应而非仅仅是速度快。GitHub 事件数据集包含近 100 亿行议题issues、拉取请求pull requests和评论comments是一次刻意为之的压力测试。即便如此GitTrends 依然能对所有这些数据提供快速搜索。为了凸显新全文搜索索引的性能优势GitTrends 内置了实时查询性能对比功能。进行任意搜索时你可以在全文搜索full-text search、布隆过滤器bloom filter和全表扫描full table scan之间进行切换并实时观察它们之间的性能差异。这最直观地展示了在海量数据规模下选择正确的索引能带来怎样的优势。探究内部机制GitTrends 是完全开放的其设计便于从各个层面进行探索和分析。数据是如何摄取的我们一直在摄取 GitHub 事件数据集并在我们的 SQL Playground 中公开它供所有人通过 SQL 进行探索。我们还在这个页面上记录了多个示例查询和分析方法。用于将数据加载到 ClickHouse 的摄取脚本可在此处查看。请注意GitHub 从2025年10月起对 Events API 有效载荷payload引入了更改。因此某些字段与早期数据有所不同这可能会影响分析并使在完整历史数据上进行趋势检测的准确性降低。更多详情可查阅 GitHub 更新日志。每个图表背后运行着什么 SQL 查询GitTrends 中的每个图表都由真实的查询驱动。点击任何图表上的 SQL 按钮即可在 SQL playground 中打开该查询你可以在其中检查、编辑并亲自运行它。SELECT toStartOfDay(created_at) AS bucket, count() AS count FROM github.github_events WHERE event_type IN (IssueCommentEvent,IssuesEvent,PullRequestEvent,PullRequestReviewCommentEvent,PullRequestReviewEvent) AND hasAllTokens(body, clickhouse) AND created_at (now() - toIntervalMonth(1)) AND 11 GROUP BY bucket ORDER BY bucket ASC SETTINGS enable_parallel_replicas 1, enable_full_text_index 1, use_skip_indexes 1, query_plan_direct_read_from_text_index 1, use_skip_indexes_on_data_read 1每种搜索类型包括全文搜索full-text search、布隆过滤器bloom filter和全表扫描full table scan都有其专属查询这样你就能清楚地看到底层机制的差异。应用程序是如何构建的想在本地运行 GitTrends 或将此方法应用于自己的数据集吗此演示的大部分内容是使用 Claude Code 开发的。完整的源代码和详细部署说明可在 GitHub 上找到。欢迎前往 https://gittrends.clickhouse.com 试用该演示并与我们分享您的宝贵反馈。征稿启示面向社区长期正文文章内容包括但不限于关于 ClickHouse 的技术研究、项目实践和创新做法等。建议行文风格干货输出图文并茂。质量合格的文章将会发布在本公众号优秀者也有机会推荐到 ClickHouse 官网。请将文章稿件的 WORD 版本发邮件至Tracy.Wangclickhouse.com