大数据组件ClickHouse介绍(场景、优劣势、性能)

这篇具有很好参考价值的文章主要介绍了大数据组件ClickHouse介绍(场景、优劣势、性能)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

clickhouse是一个高性能的列式存储分析数据库管理系统,由俄罗斯搜索引擎公司yandex开发。

clickhouse具有以下特点

  • 高性能:clickhouse优化了查询和数据压缩算法,支持多维度数据分析和快速聚合查询。
  • 分布式:clickhouse采用共享无状态架构,可以轻松实现水平扩展,并且支持数据分片、复制等功能。
  • 可扩展性:clickhouse的内部存储格式非常灵活,可以根据需要添加或删除新的字段,支持pb级别的数据存储。

使用场景

clickhouse适用于以下场景:

  • 海量数据处理:clickhouse可以轻松处理数十亿行的数据,并在秒级别内返回查询结果。尤其对于大批量数据的入库和存储,以及后续的统计分析,clickhouse可以提供很好的支撑。
  • 复杂查询:clickhouse支持多种聚合函数和窗口函数,可以进行各种复杂的数据分析和查询操作。
  • 实时数据分析:clickhouse支持实时数据导入和查询,可以在毫秒级别内完成大规模实时数据分析任务。它对于海量数据的查询速度,相比关系型数据库MySQL/PostgreSQL,提升了不止一个数量级。
  • 总结一下,clickhouse适用于海量数据的写入、存储与查询分析,例如前端设备数据、日志数据、网页浏览数据等。

优势与劣势

优势

相比传统的关系型数据库管理系统,clickhouse具有以下优势:

  • 查询速度快:clickhouse采用列式存储和数据压缩技术,可以大幅提升查询速度。
  • 水平扩展方便:clickhouse采用共享无状态架构,可以轻松实现水平扩展。
  • 数据安全性高:clickhouse支持数据分片和复制功能,可以确保数据的可用性和安全性。
  • 存储成本低:相对于关系型数据库MySQL/PostgreSQL,文本数据库MongoDB,搜索引擎Elasticsearch,clickhouse是列式数据库压缩存储,且压缩比很高,能节省存储成本。

劣势

相比传统的关系型数据库管理系统,clickhouse也存在一些劣势:文章来源地址https://www.toymoban.com/news/detail-501376.html

  • 对修改操作支持度不够:clickhouse适用于海量数据的写入与存储,但是不适合与需要经常修改变动的业务数据,数据修改可能会涉及大量part操作,也不会很实时的生效。
  • 不支持事务:clickhouse不支持acid事务,对于需要事务支持的场景并不适合。
  • 数据导入速度较慢:clickhouse在数据导入方面的表现并不优秀,如果需要大规模导入数据,则需要考虑额外的优化。clickhouse不建议频繁的写入,而是建议一大批数据一次写入。
  • 复杂性:clickhouse是构建在高度优化和复杂数据结构之上的,这使得它需要更多的学习和经验才能正确地使用。对于初学者来说,它可能会有点困难。对于开发和生产使用,建议先从单节点clickhouse开始,单节点的clickhouse也足以支撑相当数量级的业务需求了。
  • 查询限制:虽然clickhouse可以处理大型数据集,但它在某些查询方面存在限制。例如,它对join的支持不太友好,当然,对于大表join,无论哪个数据库都是要慎重处理的。
  • 缺乏完整性约束:clickhouse没有内置的外键约束或其他完整性约束。因此,在数据输入时,必须谨慎确保数据的准确性和完整性。
  • 社区规模:与其他流行的开源数据库相比,clickhouse的社区还相对较小。这意味着可能很难找到足够的技术支持或资源,以及扩展其功能等方面的帮助。

性能

单个查询吞吐量

  • 如果数据被放置在page cache中,则一个不太复杂的查询在单个服务器上大约能够以2-10GB/s(未压缩)的速度进行处理(对于简单的查询,速度可以达到30GB/s)。
  • 如果数据没有在page cache中的话,那么速度将取决于你的磁盘系统和数据的压缩率。
  • 例如,如果一个磁盘允许以400MB/s的速度读取数据,并且数据压缩率是3,则数据的处理速度为1.2GB/s。这意味着,如果你是在提取一个10字节的列,那么它的处理速度大约是1-2亿行每秒。
  • 对于分布式处理,处理速度几乎是线性扩展的,但这受限于聚合或排序的结果不是那么大的情况下。

处理短查询的延时时间

  • 数据被page cache缓存的情况下,它的延迟应该小于50毫秒(最佳情况下应该小于10毫秒)。
  • 否则,延迟取决于数据的查找次数。
  • 延迟可以通过以下公式计算得知: 查找时间(10 ms)* 查询的列的数量 * 查询的数据块的数量。

处理大量短查询

  • ClickHouse可以在单个服务器上每秒处理数百个查询(在最佳的情况下最多可以处理数千个)
  • 但是由于这不适用于分析型场景。建议每秒最多查询100次。

数据写入性能

  • 建议每次写入不少于1000行的批量写入,或每秒不超过一个写入请求
  • 当使用tab-separated格式将一份数据写入到MergeTree表中时,写入速度大约为50到200MB/s。
  • 如果您写入的数据每行为1Kb,那么写入的速度为50,000到200,000行每秒。如果您的行更小,那么写入速度将更高。
  • 为了提高写入性能,您可以使用多个INSERT进行并行写入,这将带来线性的性能提升。

查询性能

  • count: 千万级别,500毫秒,1亿 800毫秒 2亿 900毫秒 3亿 1.1秒
  • group: 百万级别 200毫米,千万 1秒,1亿 10秒,2亿 20秒,3亿 30秒
  • join:千万-10万 600 毫秒, 千万 -百万:10秒,千万-千万 150秒
  • ClickHouse并非无所不能,查询语句需要不断的调优,可能与查询条件有关,不同的查询条件表是左join还是右join也是很有讲究的。

到了这里,关于大数据组件ClickHouse介绍(场景、优劣势、性能)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ClickHouse进阶|如何自研一款企业级高性能网关组件?

    使用原生ClickHouse集群进行节点数据查询和写入时,离不开第三方开源网关组件chproxy支持。但由于chproxy缺少TCP协议支持,导致性能、查询能力等受限。这也成为困扰众多ClickHouse开发者的一大难题。那么,究竟应该如何突破?本文将揭秘火山引擎ByteHouse企业版自研网关组件如何

    2024年02月07日
    浏览(37)
  • 大数据场景下clickhouse查询时长优化sop

    ClickHouse的优化需要结合实际的数据特点和查询场景,从多个方面进行综合优化,以提高系统的性能和可靠性。 数据模型设计 :在使用ClickHouse之前,需要充分考虑数据模型的设计,因为数据模型的设计对查询性能有很大的影响。通常来说,ClickHouse适合存储大量的、高维度的

    2024年02月16日
    浏览(30)
  • 【大数据进阶第三阶段之ClickHouse学习笔记】ClickHouse的简介和使用

    ClickHouse是一种 列式数据库管理系统(DBMS) ,专门用于 高性能数据分析 和 数据仓库 应用。它是一个开源的数据库系统,最初由俄罗斯搜索引擎公司Yandex开发,用于满足 大规模数据分析和报告的需求 。 开源地址:GitHub - ClickHouse/ClickHouse: ClickHouse® is a free analytics DBMS for bi

    2024年02月03日
    浏览(33)
  • FPGA简介、工作原理、优势与劣势

    目录 一、FPGA简介 二、FPGA工作原理 三、FPGA的优势与劣势 FPGA(Field-Programmable Gate Array)是一种基于可编程逻辑门阵列(PLA)和可编程交叉开关(PCS)的可编程逻辑器件。与传统的ASIC(Application-Specific Integrated Circuit)相比,FPGA具有更高的灵活性和可重构性。FP

    2024年02月13日
    浏览(39)
  • (一)RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理

    Lison dreamlison@163.com , v1.0.0 , 2023.06.22 RabbitMQ,俗称“兔子MQ”(可见其轻巧,敏捷),是目前非常热门的一款开源消息中间件,不管是互联网行业还是传统行业都广泛使用(最早是为了解决电信行业系统之间的可靠通信而设计)。 高可靠性、易扩展、高可用、功能丰富等 支持

    2024年02月15日
    浏览(37)
  • ClickHouse性能调优之排序和数据类型

    每个DBA都关心数据库性能调优,我们知道不同数据类型可以描述不能业务场景,同时也影响数据访问和有效存储。ClickHoue支持高级压缩算法提升速度和降低存储成本,优化ClickHoue存储架构提升内存和网络带宽的性能。那我们如何选择压缩算法和数据类型呢? 创建表并指定排序

    2024年02月10日
    浏览(33)
  • 大数据技术之ClickHouse---入门篇---介绍

                           星光下的赶路人star的个人主页                        一棵树长到它想长到的高度之后,它才知道怎样的空气适合它 ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C++ 语言

    2024年02月14日
    浏览(39)
  • 大数据ClickHouse(五):数据库引擎介绍与实例演示

    文章目录 数据库引擎介绍与实例演示 一、Ordinary默认数据库引擎 二、MySQL数据库引擎

    2024年02月03日
    浏览(37)
  • clickhouse里的数组数据类型与相关使用介绍

    clickhouse支持丰富的数据类型,给我们的数据存储和查询带来很多遍历。我比较喜欢的一种类型是数组类型,MySQL和PostgreSQL不支持这种数据结构,clickhouse提供了支持 clickhouse支持以下数组类型: Array(T):其中T可以是任何有效的数据类型,例如Array(Int32),Array(String)等。 FixedStr

    2024年02月03日
    浏览(32)
  • 大数据:Trino简介及ETL场景的解决方案

    Presto 在 Facebook 的诞生最开始是为了填补当时 Facebook 内部实时查询和 ETL 处理之间的空白。Presto 的核心目标就是提供交互式查询,也就是我们常说的 Ad-Hoc Query,很多公司都使用它作为 OLAP 计算引擎。但是随着近年来业务场景越来越复杂,除了交互式查询场景,很多公司也需要

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包