列式数据库ClickHouse,大宽表聚合、报表一下全搞定

一、前言

现在数据库的种类也是特别的多,大致的类别包括:

  • 关系型数据库( MySQL、Oracle、PostgreSQL)
  • 非关系型数据库(Redis、MongoDB、Cassandra、Neo4j)
  • 全文搜索引擎和分布式文档存储系统(Elasticsearch )
  • 列式数据库(ClickHouse)

每种都在各自的领域表现出色,但当涉及到大规模数据分析和复杂查询时,ClickHouse 出现在了舞台上。

ClickHouse 使用列式存储,这意味着它可以高效地执行聚合、过滤和排序操作。

面试经常问到大宽表查询聚合怎么办,这不是解决方案来了嘛!!

今天我们就一起来深入了解一下ClickHouse !看的人多的话,下期出实战哈!

二、ClickHouse简介

ClickHouse是一款由俄罗斯搜索引擎公司 Yandex 开发的开源列式数据库管理系统(DBMS)。发布于2016年,是使用 C++ 编程语言开发的。它的设计目标是用于高性能的大规模数据分析和查询,类似SQL语法降低开发和学习成本。

ClickHouse 是用于实时应用程序和分析的速度最快、资源效率最高的开源数据库。

Github的start数量已经:30.6k

官网地址

在这里插入图片描述

三、OLAP

简介

说起列式数据库,就不得不说OLAP,列式型数据库天然适合OLAP场景,下面我们一起了解一下什么是OLAP

OLAP(联机分析处理)是一种强大的数据处理分析方法,特别适用于需要深入探索大量多维数据的应用场景,如业务智能、数据仓库、销售分析、财务报告等。
OLAP 技术允许用户从不同的角度、维度和层次来查看和分析数据,以发现潜在的关联、趋势和模式,从而更好地做出决策。

场景特性

  • 表很“宽”,这意味着它们包含大量列。
  • 数据集很大,处理单个查询时查询需要高吞吐量(每台服务器每秒高达数十亿行)。
  • 列值相当小:数字和短字符串(例如,每个 URL 60 字节)。
  • 查询提取大量行,但只提取一小部分列。
  • 对于简单查询,允许 50 毫秒左右的延迟。
  • 每个查询有一张大表;除了一张大表外,所有表都很小。
  • 查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合单个服务器的 RAM。
  • 查询相对较少(通常每台服务器每秒数百个查询或更少)。
  • 插入发生在相当大的批次(> 1000 行)中,而不是单行。
  • 事务不是必须的。

为什么适合OLAP

面向列的数据库更适合 OLAP 场景:它们处理大多数查询的速度至少快 100 倍。下面详细解释了原因,但事实更容易直观地展示:

制作了一个动态图片能够直观的看到比行式数据库效率高很多!

在这里插入图片描述

四、业务场景

我们单独讲业务场景的话有点单调,我们一般喜欢那它和Elasticsearch 进行比较!

ClickHouse 和 Elasticsearch 都是用于数据存储和查询的强大工具,但它们在业务场景和使用方面有一些不同之处。

以下是 ClickHouse 和 Elasticsearch 的业务场景对比:

ClickHouse:

  • 数据仓库和大规模数据分析:ClickHouse 是一个出色的大规模数据分析工具,特别适用于存储和查询历史数据。它支持复杂的 SQL 查询,可以执行聚合、过滤、排序等操作,是构建数据仓库的理想选择。

  • 时序数据分析:ClickHouse 的列式存储结构和高性能使其非常适合处理时序数据,如传感器数据、监控数据、日志数据等。

  • 报表生成:如果你需要生成复杂的报表和分析结果,ClickHouse 可以提供高性能的数据检索和处理能力。

  • 数据压缩和存储优化:ClickHouse 使用快速压缩算法,可以大幅减小存储空间占用,降低硬件成本。

  • 复杂查询:ClickHouse 支持复杂的查询和聚合操作,适用于需要深入分析数据的场景。

Elasticsearch:

  • 全文搜索和文本分析:Elasticsearch 是一个出色的全文搜索引擎,专注于文本数据的高级搜索、分析和相关性排序。它通常用于构建搜索引擎、日志分析和全文搜索应用。

  • 实时数据分析:Elasticsearch 支持实时数据分析,可以实时监控、查询和可视化数据。它在监控、日志分析和实时数据仓库等场景中表现出色。

  • 数据探索:Elasticsearch 提供了灵活的数据探索能力,用户可以通过自由组合查询条件来探索数据。

  • 非结构化数据:Elasticsearch 适用于非结构化或半结构化数据,如日志、社交媒体数据、文档等。

  • 数据可视化:结合 Kibana 工具,Elasticsearch 可以用于创建交互式数据可视化仪表板。

  • 高并发查询:相对于ClickHouse 更适合高并发下的查询

五、拓展

当然我们也有列式存储,字节在 ClickHouse 架构基础上进行了升级,于 2020 年在内部启动了 ByConity 项目,并于 2023 年 1 月发布 Beta 版本,5月底正式对外开源。

ByConity官网地址

ByConity 是字节跳动开源的云原生数据仓库,它采用计算-存储分离的架构,支持多个关键功能特性,如计算存储分离、弹性扩缩容、租户资源隔离和数据读写的强一致性等。

通过利用主流的 OLAP 引擎优化,如列存储、向量化执行、MPP 执行、查询优化等,ByConity 可以提供优异的读写性能

在这里插入图片描述

字节也在内部准备从ClickHouse 全面切换为ByConity

我们本次了解一下ClickHouse,后面再深入学习一下ByConity!

五、总结

综上所述,ClickHouse 更适用于大规模数据分析、数据仓库、复杂查询、大宽表聚合、报表等场景,而 Elasticsearch 更适用于全文搜索、实时数据分析、日志分析和数据探索等场景。

大家根据自己的业务具体使用那个即可!

如果想了解Elasticsearch 的可以看一下小编之前写的文章:

Springboot整合ElasticSearch进行简单的测试及用Kibana进行查看

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES


看到这里了,还请动一下您的发财小手,关注一下公众号哈!!谢谢您的关注!!文章首发看!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/176644.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kafka入门教程,介绍全面

1、官网下载最新版本的kafka,里面已经集成zookeeper。直接解压到D盘 2、配置文件修改,config目录下面的zookeeper.properties. 设置zookeeper数据目录 dataDirD:/kafka_2.12-3.6.0/tmp/zookeeper 3、修改kafka的配置文件server.properties. 主要修…

了解千兆光模块和万兆光模块的优势与劣势

光模块是现代通信网络中核心的传输设备之一。千兆光模块和万兆光模块作为其中的重要代表,广泛应用于数据中心和云计算等领域。它们采用光纤作为传输介质,具有高速、高带宽等优势。本文将从千兆光模块和万兆光模块的性能和应用范围入手,详述了…

LLM - 训练与推理过程中的 GPU 算力评估

目录 一.引言 二.FLOPs 和 TFLOPs ◆ FLOPs [Floating point Opearation Per Second] ◆ TFLOPs [Tera Floating point Opearation Per Second] 三.训练阶段的 GPU 消耗 ◆ 影响训练的因素 ◆ GPT-3 训练统计 ◆ 自定义训练 GPU 评估 四.推理阶段的 GPU 消耗 ◆ 影响…

[推荐]SpringBoot,邮件发送附件含Excel文件(含源码)。

在阅读本文前,可以先阅读我的上一篇文章: SpringBoot,使用JavaMailSender发送邮件(含源码)。 ,本文使用的代码案例涉及到的 jar包、application.properties配置与它相同。 先看一下效果。 图一 图二 在下方代码案例中,…

速卖通卖家如何通过自己搭建测评补单系统,提高产品权重和排名?

速卖通卖家如何给店铺增加权重和排名? 在竞争激烈的速卖通平台上,为自己的店铺增加权重是吸引更多买家和提升销售的关键。店铺的权重决定着在搜索排名、推荐位和广告展示方面的优先级。今天珑哥为您介绍一些有效的策略,帮助您提升速卖通店铺…

Apache Shiro 越权访问漏洞 CVE-2020-1957 漏洞复现

一、漏洞描述 Apache Shiro 是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。 CVE-2020-1957,Spring Boot中使用 Apache Shiro 进行身份验证、权限控制时,可以精心构造…

五款好用的数据备份软件推荐!

在当今信息时代,数据备份的重要性不言而喻。选择一款可靠的、功能强大的免费备份软件,不仅能确保数据的安全存储,还能为用户节省宝贵的时间和精力。针对这一需求,精心挑选了几款备受推荐的免费数据备份软件,它们不仅操…

污水一体处理设备工艺有哪些

污水一体处理设备工艺主要包括以下几种: AO工艺:AO工艺是增加好氧池缺氧池形成硝化-反硝化系统,处理污水中氮含量效率提升。SBR工艺:SBR工艺是按间歇曝气方式运行的活性污泥处理技术,厌氧、好氧、缺氧处于交替状态&am…

ElasticSearch快速入门实战

全文检索 数据分类: 1、结构化数据: 固定格式,有限长度 比如mysql存的数据 2、非结构化数据:不定长,无固定格式 比如邮件,word文档,日志 3、半结构化数据: 前两者结合 比如xml&am…

第一个QT程序

新建工程&#xff1a; 1. 点击“New Project” 2. 选择“Qt Widgets Application” 3. 工程名和路径 4. 构建系统选择 5. Details 一些细节 6. 选择Kits 7. 完成工程创建 点完成按钮 8. 运行下看 9. 一些示例代码 //main.cpp #include "mywidget.h"#include <Q…

编程助手DevChat:让开发更轻松

#AI编程助手哪家好&#xff1f;DevChat“真”好用 # 目录 前言一、安装Vscode1、下载链接2、安装 二、注册DevChat1、打开注册页2、验证成功完成邮箱绑定3、绑定微信可获得8元 三、安装插件四、配置Access Key1、获取Access Key2、设置Access Key①、点击左下角管理&#xff08…

稳定扩散的高分辨率图像合成

推荐稳定扩散AI自动纹理工具&#xff1a;DreamTexture.js自动纹理化开发包 1、稳定扩散介绍 通过将图像形成过程分解为去噪自动编码器的顺序应用&#xff0c;扩散模型 &#xff08;DM&#xff09; 在图像数据及其他数据上实现了最先进的合成结果。此外&#xff0c;它们的配方…

如何在《阴阳师》游戏中使用Socks5搭建工具

题目&#xff1a;如何在《阴阳师》游戏中使用S5搭建工具S5一键搭建脚本进行游戏战队组建&#xff1f; 引言&#xff1a; 游戏加速和游戏战队组建已经成为《阴阳师》玩家们非常关心的话题。在这篇文章中&#xff0c;我们将向您展示如何在《阴阳师》游戏中使用S5搭建工具S5一键搭…

最新ai系统ChatGPT程序源码+详细搭建教程+以图生图+Dall-E2绘画+支持GPT4+Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

RGB-T Salient Object Detection via Fusing Multi-Level CNN Features

ADFC means ‘adjacent-depth feature combination’&#xff0c;MGF means ‘multi-branch group fusion’&#xff0c;JCSA means ‘joint channel-spatial attention’&#xff0c;JABMP means ‘joint attention guided bi-directional message passing’ 作者未提供代…

uniapp-自定义表格,右边操作栏固定

uniapp-自定义表格&#xff0c;右边操作栏固定 在网上找了一些&#xff0c;没找到特别合适的&#xff0c;收集了一下其他人的思路&#xff0c;基本都是让左边可以滚动&#xff0c;右边定位&#xff0c;自己也尝试写了一下&#xff0c;有点样式上的小bug&#xff0c;还在尝试修…

剑指offer(C++)-JZ5:替换空格(算法-其他)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 题目描述&#xff1a; 请实现一个函数&#xff0c;将一个字符串s中的每个空格替换成“%20”。 例如&#xff0c;当字符串为We A…

嵌入式应用选择正确的系统设计方法:第三部分

产品质量低下的原因有很多&#xff0c;例如&#xff0c;产品制造粗糙&#xff0c;组件设计不当&#xff0c;架构不佳以及对产品的要求了解不多。点击领取嵌入式物联网学习路线 必须设计质量。 您不能测试出足够的错误来交付高质量的产品。的质量保证&#xff08;QA&#xff09…

【送书福利-第二十三期】《从零基础到精通Flutter开发》

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

有什么可以自动保存微信收到的图片和视频的方法么

8-1 在一些有外勤工作的公司里&#xff0c;经常会需要在外面工作的同事把工作情况的图片发到指定微信或者指定的微信群里&#xff0c;以记录工作进展等&#xff0c;或者打卡等&#xff0c;对于外勤人员来说&#xff0c;也就发个图片的事&#xff0c;但是对于在公司里收图片的人…