【程序员必知必会3】ClickHouse和Hive究竟哪些区别

news2024/11/28 8:34:10

ClickHouse和Hive究竟哪些区别

ClickHouse和Hive都是用于大数据处理和分析的分布式存储和计算系统,但它们之间存在一些区别:

  • 架构:ClickHouse采用列式存储和向量化执行引擎,可以实现亚秒级别的数据查询。而Hive采用基于Hadoop的数据存储和MapReduce计算引擎,数据查询速度相对较慢。

  • 查询语言:ClickHouse使用类似于SQL的查询语言,称为ClickHouse-SQL,易于学习和上手。Hive使用的是类似SQL的查询语言,但Hive在执行查询时需要将查询转换为MapReduce任务,查询速度较慢。

  • 数据类型:ClickHouse支持多种数据类型,包括数值、字符串、日期等,可以方便地处理各种类型的数据。而Hive主要支持数值和字符串类型,对于其他数据类型需要进行转换。

  • 数据导入和导出:ClickHouse支持多种数据导入方式,包括CSV、JSON、Parquet等,同时也支持多种数据导出方式,包括CSV、JSON、Parquet等。而Hive主要支持Hadoop Distributed File System(HDFS)的数据导入和导出。

  • 实时处理:ClickHouse支持实时数据处理,可以实时地分析和处理数据。而Hive主要用于离线数据分析,不支持实时处理。

  • 性能:ClickHouse具有较高的查询性能,可以实现亚秒级别的数据查询。而Hive查询性能相对较慢,需要进行MapReduce任务的转换和执行。

ClickHouse是什么

clickhouse是用于联机分析(OLAP)的列式数据库管理系统

(补充:OLAP 与OLTP. 联机分析处理(OLAP) 系统的主要用途是分析聚合数据,而联机事务处理(OLTP) 系统的主要用途是处理数据库事务。前者专注于构建报告,每个报告都基于大量历史数据,但这样做的频率不高。而后者通常处理连续的事务流,不断修改数据的当前状态。
OLAP 和 OLTP 系统之间的基本权衡仍然是:
• 为了有效地构建分析报告,能够单独读取列至关重要,因此大多数 OLAP 数据库都是列式的,
• 单独存储列会增加行操作的成本,例如附加或就地修改,与列的数量成比例(如果系统尝试收集事件的所有详细信息以防万一,这可能会很大)。因此,大多数 OLTP 系统存储按行排列的数据。)

传统的行式数据库系统中,数据按行存储,处于同一行的数据被物理的存在一起。
在这里插入图片描述
mysql、Postgres和MS SQL Server 是常见的行式数据库系统。而列式数据库是将同一个列的数据存储在一起.
在这里插入图片描述

OLAP是什么

OLAP场景的关键特征
总结下来是,一但写入就不改了,主要是读操作,用于分析。有大量的列,查询结果一般远小于数据源,因为是通常是聚合操作。
• 绝大多数是读请求
• 数据以相当大的批次(> 1000行)更新,而不是单行更新;或者根本没有更新。
• 已添加到数据库的数据不能修改。
• 对于读取,从数据库中提取相当多的行,但只提取列的一小部分。
• 宽表,即每个表包含着大量的列
• 查询相对较少(通常每台服务器每秒查询数百次或更少)
• 对于简单查询,允许延迟大约50毫秒
• 列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节)
• 处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行)
• 事务不是必须的
• 对数据一致性要求低
• 每个查询有一个大表。除了他以外,其他的都很小。
• 查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务器的RAM中

为何不使用 MapReduce等技术?

我们可以将MapReduce这样的系统称为分布式计算系统,其中的reduce操作是基于分布式排序的。这个领域中最常见的开源解决方案是Apache Hadoop。
这些系统不适合用于在线查询,因为它们的延迟很大。换句话说,它们不能被用作网页界面的后端。这些类型的系统对于实时数据更新并不是很有用。如果操作的结果和所有中间结果(如果有的话)都位于单个服务器的内存中,那么分布式排序就不是执行reduce操作的最佳方式,这通常是在线查询的情况。在这种情况下,哈希表是执行reduce操作的最佳方式。优化map-reduce任务的一种常见方法是使用内存中的哈希表进行预聚合(部分reduce)。用户手动执行此优化。在运行简单的map-reduce任务时,分布式排序是导致性能下降的主要原因之一。

ClickHouse特性

  • 固定长度节省空间
    在一个真正的列式数据库管理系统中,除了数据本身外不应该存在其他额外的数据。这意味着为了避免在值旁边存储它们的长度«number»,你必须支持固定长度数值类型。例如,10亿个UInt8类型的数据在未压缩的情况下大约消耗1GB左右的空间,如果不是这样的话,这将对CPU的使用产生强烈影响。即使是在未压缩的情况下,紧凑的存储数据也是非常重要的,因为解压缩的速度主要取决于未压缩数据的大小。
  • 数据压缩高效
    除了在磁盘空间和CPU消耗之间进行不同权衡的高效通用压缩编解码器之外,ClickHouse还提供针对特定类型数据的专用编解码器
  • 基于磁盘存储
    提供每GB更低的存储成本,比其他需要在内存中工作的列式数据库更省钱。
  • 多核心并行处理
  • 多服务器分布式处理
  • 支持sql
    使用的是基于sql的声明式查询语言。
  • 实时的数据更新、适合在线查询
    为了使查询能够快速在主键中进行范围查找,数据总是以增量的方式有序的存储在MergeTree中。因此,数据可以持续不断地高效的写入到表中,并且写入的过程中不会存在任何加锁的行为。
  • 支持数据复制和数据完整性
    ClickHouse使用异步的多主复制技术。当数据被写入任何一个可用副本后,系统会在后台将数据分发给其他副本,以保证系统在不同副本上保持相同的数据。在大多数情况下ClickHouse能在故障后自动恢复,在一些少数的复杂情况下需要手动恢复。

劣势

  • 没有完整是事务支持
  • 缺少高频率 低延迟的修改数据的能力,仅能批量删除修改数据
  • 稀疏索引导致不适合利用其键 检索单行的点查询

(注:点查询是应用访问OLTP数据库的一种常见方式,特点是返回结果前只扫描表中的少量数据,在淘宝上查看订单或者商品信息对应到数据库上的操作就是点查。)

ClickHouse解析JSON字符串和JSON数组

SELECT
   JSONExtractArrayRaw(
    cast(JSONExtractArrayRaw(
        cast(JSONExtractString(
            JSONExtractArrayRaw(
                cast(JSONExtractString(
                    JSONExtractString(a.info,'logOfChain'),'11') as String) ,'logInfo')[1],'table') as String),'rows')[1] as String) ,'columnValue')[2]
FROM table_name
WHERE 
    toDate(`timestamp` / 1000) in ( '2023-08-16')
    and toHour(toDateTime(`timestamp` / 1000)) in ('17')
    and userId = 'xxxxx'
    and reqId = 'xxxxx'
    and
    ORDER BY `timestamp` DESC
LIMIT 10

参考

https://clickhouse.com/docs/zh
https://juejin.cn/post/7233004121682575418

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设置Linux CentOS7桥接模式连网

在虚拟机上安装centos7系统后,首要任务就是设置网络。 我们在文章《设置linux centos7连接网络》中讨论了如何设置NAT模式连网。本文讨论如何在设置好NAT模式后,调换为桥接模式。 仍采用图形化方式设置方法。 一、查看物理机网络 把虚拟机设置为桥接…

JDK源码解析-HashMap面试题

1. HashMap类 * HashMap底层数据结构(为什么引入红黑树、存储数据的过程、哈希碰撞相关问题)* HashMap成员变量(初始化容量是多少、负载因子、数组长度为什么是2的n次幂)* HashMap扩容机制(什么时候需要扩容? 怎么进行扩容?)* JDK7 与 Jdk8比较&#xff…

检索与毒害 —— 对抗人工智能供应链攻击

作者:DAVE ERICKSON 在这篇文章中,了解人工智能大语言模型的供应链漏洞,以及如何利用搜索引擎的人工智能检索技术来对抗人工智能的错误信息和故意篡改。 虽然对于人工智能研究人员来说可能是新鲜事,但供应链攻击对于网络安全世界…

如何批量生成并分割m3u8视频,轻松提升您的视频制作效率!

亲爱的视频制作爱好者,您是否曾经为如何高效地批量生成和分割m3u8视频而烦恼?今天,我们为您带来了一款神奇的软件,让您的视频剪辑工作变得轻松无比! 第一步,进入“媒体梦工厂”在主界面中有八个板块&#…

新手如何备考PMP考试?

回头看来,从战略上来说: 备考第一重点:要有一个清晰的目标——我要过! 第二重点:足够重视它——把它的优先级调整到仅次于工作:万籁俱寂,唯有学习。 第三重点:自律——有了第一点…

Python入门教程 | Python 流程控制语句

​ 程序流程控制的三种结构 1.顺序结构 计算机执行程序的步骤是从上到下依次执行 2.选择结构(条件控制) Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。 可以通过下图来简单了解条件…

【2023集创赛】国家集创中心杯三等奖:不对称轻失配运算放大器

本文为2023年第七届全国大学生集成电路创新创业大赛(“集创赛”)国家集创中心杯三等奖作品分享,参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电…

打工人必知:考取了HCIE后,哪些工作内容,工作岗位有哪些?

作为一个打工人,都很关心考到HCIE后,我们可以做哪些工作内容,就是有哪些岗位呢? 先给直接说答案,如果你现在手边有电脑,现在打开智联招聘,输入我现在所说的这些职位名称: 第一个&…

苹果电脑要安装杀毒软件吗?mac用什么杀毒软件好?

对于这个问题让人很是纠结,Mac不需要杀毒这个理论一直都深入人心,Mac OS X权限管理特性可以防毒的说法也一直甚嚣尘上,很多小伙伴如我一样搞不清楚到底要不要安装杀毒软件。,毕竟当前个人信息安全泄露泛滥不穷的年代,我…

振动智能监测解析:从数据中预测设备故障

在现代工业领域,设备的可靠性和稳定性对于生产效率和产品质量至关重要。设备故障可能导致生产停滞、维修成本增加以及产品质量下降,因此,采用先进的监测技术来预测和防止设备故障变得尤为重要。本文将深入探讨振动智能监测,这是一…

PMP是什么?项目管理专业人士资格认证介绍

PMP认证旨在评估和确认具备一定经验和知识的项目管理专业人士的能力。通过获得PMP认证,项目经理可以证明他们具备在各个行业中成功领导和管理项目所需的技能。这些技能包括十二原则、8大绩效等方面的知识。 以下是PMP认证的详细介绍: 1. 资格要求&…

基于SpringBoot+Vue架构的药物咨询平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 随着人们对健康和医疗…

安装python第三方模块出现Requirement already satisfied:模块名 in XX:\XXXX\XX\site-packages

安装python第三方模块出现Requirement already satisfied:模块名 in XX:\XXXX\XX\site-packages Requirement already satisfied:模块名 in XX:\XXXX\XX\site-packages Requirement already satisfied: PyQtWebEngine in d:\anaconda2021\lib\site-packages (5.12.1) 解决办…

Conformer: Local Features Coupling Global Representationsfor Visual Recognition

论文链接:https://arxiv.org/abs/2105.03889 代码链接:https://github.com/pengzhiliang/Conformer 参考博文:Conformer论文以及代码解析(上)_conformer代码_从现在开始壹并超的博客-CSDN博客 摘要 在卷积神经网络…

【K哥爬虫普法】百亿电商数据,直接盗取获利,被判 5 年!

我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知晓如何合法合规利用…

最快1个月录用!9月SCI/SSCI/EI刊源表已更新!

2023年9月SCI/SSCI/EI期刊目录更新 2023年9月份刊源表已更新!计算机、医学、工程、环境、SSCI均有新增期刊,1区(TOP),最快1个月录用,好刊版面紧俏,切莫错失机会! 01 计算机领域 02 医学与制药领域 03 工…

修改部署后的SSM项目配置文件

修改部署后的SSM项目配置文件 环境配置:window10,JDK8,项目采用SSM编写,部署在tomcat上,maven打包是打成war包 1、找到配置文件 打开tomcat目录 D:\Programming\apache-tomcat-8.5.58\webapps\MyPRO\WEB-INF\class…

磁共振脑灌注成像方法(ASL)

前言 与结构成像相比,生理成像是一个可以揭示组织和器官功能的领域,而不仅仅是提供形态信息。通过这种方式,它可以为评估人体提供补充信息。在一些疾病中,与结构变化相比,预期组织中的生理变化发生的时间要早得多。然…

postgresql 安装教程

postgresql 安装教程 本文以window 15版本为教程 文章目录 postgresql 安装教程1.下载地址2.以管理员身份运行3.选择安装路径,点击Next4.选择组件(默认都勾选),点击Next5.选择数据存储路径,点击Next6.设置超级用户的…

智能算力时代,一个中国答案

今年以来,随着AI大模型极速获得认可,全球智能化产业迎来了新的发展高峰。全球各大科技厂商纷纷布局大模型,国内更是出现了“百模大战”的盛况。 而随着大模型的快速崛起,一个早已萦绕在AI行业多年的问题也进一步暴露:针…