添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
精明的核桃  ·  MongoDB(13)- ...·  10 月前    · 
千杯不醉的西装  ·  Spring ...·  1 年前    · 

elasticsearch优点:

a. 查询速度快,es是基于lucene的倒排索引实现,数据分词后预先已经排好序了,所以查询速度很快,qps较高,并且cpu消耗不大
b.es的索引字段比较灵活,可以随意的增加新字段到es中

elasticsearch缺点:

a.数据写入时要对所有的字段进行分词操作,然后在对这些分词构建倒排索引,事实上,并不是所有的分词都会在搜索中用到,这里类似于数据预聚合的概念,有些分词是没必要的
b.es的倒排索引文件,正排文件,docvalue文件等都很大,压缩效果很小,这就造成了数据写入到IndexBuffer内存后flush到磁盘时不仅速度慢,而且磁盘占用很大,而且我们知道es搜索时是会把segment缓存到内存中的,segment文件很大也就意味着内存占用极大,不管是读取磁盘还是内存消耗都很大,硬件成本高
c.es的分片数的调整代价很大,需要新建新的索引才能做到调整分片的目的,这对于日志来说很不合理,因为你很难预先知道日志量的大小,所以分片数很难精确估计,此外,es需要很多的脚本做一些比如关闭旧索引,创建新索引等工作
d.es的查询语句有自己的一套规则,聚合查询语句尤其复杂,学习成本较高
e.es是Master-Slaver的架构,当某个分片挂掉时,Master需要重新确认并选择主分片,在这段时间内,该分片不能进行写入操作

clickhouse优点:

a. clickhouse是列式存储,有分区,一级稀疏索引,二级跳数索引,列式压缩存储的优势,这使得clickhouse的数据文件很小,压缩比一般都能达到十几倍的压缩率,所以clickhouse不管是磁盘io还是内存消耗都不高,而且因为文件很小,所以即使是磁盘io,速度也很快,clickhouse的数据定位流程如下:先通过分区建确定分区,然后通过主键确定数据块,定位到读取数据块,进行解压缩并搜索
b.clickhouse充分利用了SIMD单指令多数据指令,多线程,cpu L1 L2 L3等硬件层面的优化手段,加快查询速度
c.clickhouse的所有数据都可以放到一张mergetree的表中,通过使用时间作为分区键,域名+时间戳作为主键搜索条件即可,这样几千G的文件都可以放到一个表中,不需要考虑分片等操作,管理非常方便
d.clickhouse是基于sql语句的,很容易写出各种聚合操作的sql,查询方便,学习成本低
e.clickhouse是Mul-Master的架构,无论哪个副本挂掉了,另一个副本马上可以接管写入和查询操作,中途没有任何延迟.

clickhouse缺点

a. clickhouse的CPU消耗很大,因为clickhouse大量使用SIMD和多线程等手段,所以数据查询时cpu消耗很大,而且总体上来说查询速度相对es来说,查询响应的速度比es速度慢
b.clickhouse的每次insert操作,不管是批量还是只是一条数据,都会创建一个分区part的目录,如果每次都是写入小批量的数据的话,就会导致创建大量的分区part目录,clickhouse会一直忙于合并分区part,这对于clickhouse来说简直就是灾难,所以写入数据的时候,最好先按分区批量提交的方式,预先按照分区归类数据,然后一次insert写入,这样这一批的数据就只会创建一个分区part目录,这样目录文件数就会少的多,而且clickhouse也不用一直合并大量的分区目录文件了

clickhouse日志表可以这样创建:

create table ck_log(ts timestamp, domain string, loglevel string,msg string, INDEX msg_index msg token_bf_v1(10240,2,0) granularity 2) engine = ReplicateMergeTree partition by toDate(ts) order by domain,ts
以天的时间作为分区键,域名+时间戳作为一级索引查找创建日志表,单表就可以搞定几千g的日志文件了,并且对字符串列创建了二级索引(tokenbf_v1会通过标点符号对字符串进行分词),这样就通过索引直接支持msg like ‘%test clickhouse%’的模糊查询

elasticsearch优点:a. 查询速度快,es是基于lucene的倒排索引实现,数据分词后预先已经排好序了,所以查询速度很快,qps较高,并且cpu消耗不大b.es的索引字段比较灵活,可以随意的增加新字段到es中elasticsearch缺点:a.数据写入时要对所有的字段进行分词操作,然后在对这些分词构建倒排索引,事实上,并不是所有的分词都会在搜索中用到,这里类似于数据预聚合的概念,有些分词是没必要的b.es的倒排索引文件,正排文件,docvalue文件等都很大,压缩效果很小,这就造成了数
更新(20年12月):请注意, 日志 库已不再积极开发。 早在2017年(当我们创建此项目时),就没有其他解决方案来获得我们急需的东西(在)。 但是,创建此类工具超出了我们的主要重点,因此,在维护 日志 库的同时,我们也一直在等待其他项目的出现。 幸运的是,Kubernetes生态系统以惊人的速度增长和发展。 今天,我们很高兴地承认我们可以依靠其他可靠的 日志 管理解决方案。 在大多数情况下,我们使用 。 (基于和的解决方案(ELK,EFK)可能是要考虑的其他选择。) 这意味着我们不再需要改进 日志 库。 由于它仍然是开源的,非常欢迎您提供帮助(甚至以成为维护者)。 现成的Kubernetes 日志 管理解
@ Elasticsearch Clickhouse 数据 存储 对比 1.使用背景 随着公司业务发展, Elasticsearch 开始暴露出一些弊端,不适合大批量的数据查询,高频次分页导出导致宕机、 存储 成本较高。 Elasticsearch 的查询语句维护成本较高、在聚合计算场景下出现数据不精确等问题。 Clickhouse 是列式数据库,列式型数据库适合OLAP场景,类似SQL语法降低开发和学习成本,采用快速压缩算法节省 存储 成本,采用向量执行引擎技术大幅缩减计算耗时。 2.OLAP OLAP意思是On-Li
❄️大多数同学都知道数据有mysql、mongodb、oracle、nosql等等,这些是我们在学校能接触到最多的数据库,今天我们就来认识2个企业中比较常用的数据库 clickhouse elasticsearch 。对 大数据 感兴趣的同学可以参考下面的文章👇: hadoop专题: hadoop系列文章. spark专题: spark系列文章. flink专题: Flink系列文章. ⛄️处理 大数据 这一方面不只有hadoop这一脉、类似的像支持分布式的数据产品 clickhouse elasticsearch
Clickhouse 是俄罗斯搜索巨头 Yandex 开发的完全列式 存储 计算的分析型数据库。 ClickHouse 在这两年的 OLAP 领域中一直非常热门,国内互联网大厂都有大规模使用。 Elasticsearch 是一个近实时的分布式搜索分析引擎,它的底层 存储 完全构建在 Lucene 之上。简单来说是通过扩展 Lucene 的单机搜索能力,使其具有分布式的搜索和分析能力。 Elasticsearch 通常会和其它两个开源组件 Logstash( 日志 采集)和 Kibana(仪表盘)一起提供端到端的 日志 /搜索
以前用的阿里云的 日志 服务,又慢又贵还不灵活。想到 clickhouse 的性能非常强,我们又没有什么全文搜索的场景。于是计划将 日志 写入 clickhouse ,用grafana可视化,看grafana已经指出重 clickhouse 数据源。 选用的方案是通过 clickhouse tcp客户端流试写入。这样也不用担心文件碎片问题,性能也非常好(每秒轻松可以写入几十万) 占用资源比常规的 日志 收集器( Logstash,Fluentd,Logtail) 更少。 可以轻松收集各种数据源的数据 ,各种格式。写了一个库 htt