① clickhouse代替es如何对文档做模糊查询
模糊查询在日志存储的场景中非常普遍。ClickHouse作为大数据分布式引擎,被作为日志存储备选方案。业界多家企业如Uber、石墨文档、映客、快手、携程、唯品会等已采用ClickHouse。日志查询以模糊查询为主,ES凭借逆天的分词能力在日志存储领域表现出色,但存储瓶颈显现,如压缩率低,成本高,性能差。ClickHouse在写入性能、存储压缩率方面有明显优势,适合模糊查询的优化空间。其中最具代表性的技术是跳数索引。
跳数索引(二级索引)在ClickHouse中独立于主键索引之外,提供不同类型的索引,如用于去重的set、计算极值的minmax,以及针对全文搜索的布隆过滤器家族。详细的索引概念和使用实践可查阅ClickHouse官网文档。
针对全文查询,适合的索引有tokenbf_v1、ngrambf_v1和新推出的倒排索引inverted。ngrambf_v1是最适合全文查询的索引。接下来的实战将验证三种索引在查询优化上的能力。
通过Java程序循环写入日志数据,内容包括异常、backtrace等,总数据量为1亿条。构建表SQL如下,具体数据写入过程略。
查询场景为查找包含[INFO]和gfdsamnbvcxz-asdfghjkl-poiuytrewqlkjh-qwertyuiop的记录数量。使用不同的索引进行查询,比较性能。
使用tokenbf_v1创建索引,但物化操作后发现全表扫描,执行计划显示索引未起作用。接着尝试inverted索引,同样全表扫描,索引未优化。
ngrambf_v1索引的优化过程展示:初始n=6时,全表扫描,执行计划显示索引未生效。调整n=48,查询时间减少到4秒多,扫描数据减少至1500万。n=30时,查询时间进一步缩短至3秒多,扫描数据减少至约1253个数据块。n=20时,查询效率提升有限,之后无继续优化的必要。
ngrambf_v1索引的性能与n的值有关,n不是越小越好。优化时需要考虑假阳性概率与过滤效率之间的权衡。在不同的查询场景下,n的设置应灵活调整。本文示例中,优化效果主要针对长文本的查询,而非[INFO]条件。建议针对确定的搜索条件,如日志级别,创建单独字段并使用物化视图或projection优化。
跳数索引仅适用于MergeTree引擎,其他引擎不支持此特性。
② 【分享】Notion零基础 | 小白如何快速入门
大家好!
接下来,我们将一起踏上Notion的探索之旅,学习如何快速上手这款全能工具。
要开始使用Notion,首先在浏览器搜索“notion官网”,注册新账号,通过邮箱验证。选择个人版,如果没有协作需求。
电脑端:点击官网下载链接,根据系统安装;手机或iPad在应用商店搜索“notion”下载。
Notion相当于印象笔记+滴答清单+石墨文档,整合日程、笔记和项目管理,具有丰富的模板、协作功能、文件导入和多样化的数据库视图。
复制模板:访问分享链接(链接略)点击Duplicate,登录账号后即可在个人空间看到。汉化方法:下载Notion电脑版,安装后替换韩文语言包(链接略)。
Notion的斜杠命令是常用快捷键,输入"/"后,选择操作,界面会提供清晰的图示指导。
Notion有免费版(文件上传限制5mb)和个人专业版(无限制),团队版价格更高。免费版功能已能满足日常需求。
今天的入门就到这里,下期我们将讨论如何打造个人管理体系,期待你的继续关注!