clickhouse 存储过程_Kylin、Druid、ClickHouse核心技术对比 | 知识转载_齐帆齐的博客-CSDN博客


本站和网页 https://blog.csdn.net/weixin_29485605/article/details/113051883 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

clickhouse 存储过程_Kylin、Druid、ClickHouse核心技术对比 | 知识转载_齐帆齐的博客-CSDN博客
clickhouse 存储过程_Kylin、Druid、ClickHouse核心技术对比 | 知识转载
齐帆齐
于 2021-01-11 19:37:11 发布
2608
收藏
文章标签:
clickhouse 存储过程
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_29485605/article/details/113051883
版权
Kylin的数据模型
Kylin的数据模型本质上是将二维表(Hive表)转换为Cube,然后将Cube存储到HBase表中,也就是两次转换。
第一次转换,其实就是传统数据库的Cube化,Cube由CuboId组成,下图每个节点都被称为一个CuboId,CuboId表示固定列的数据数据集合
​第二次转换,是将Cube中的数据存储到HBase中,转换的时候CuboId和维度信息序列化到rowkey,度量列组成列簇。在转换的时候数据进行了预聚合。下图展示了Cube数据在HBase中的存储方式。
Kylin的索引结构
因为Kylin将数据存储到HBase中,所以kylin的数据索引就是HBase的索引。HBase的索引是简化版本的B+树,相比于B+树,HFile没有对数据文件的更新操作。HFile的索引是按照rowkey排序的聚簇索引,索引树一般为二层或者三层,索引节点比MySQL的B+树大,默认是64KB。数据查找的时候通过树形结构定位到节点,节点内部数据是按照rowkey有序的,可以通过二分查找快速定位到目标。
Kylin小结:适用于聚合查询场景;因为数据预聚合,Kylin可以说是最快的查询引擎(group-by查询这样的复杂查询,可能只需要扫描1条数据);kylin查询效率取决于是否命中CuboId,查询波动较大;HBase索引有点类似MySQL中的联合索引,维度在rowkey中的排序和查询维度组合对查询效率影响巨大;所以Kylin建表需要业务专家参与。
Druid的数据模型
Druid数据模型比较简单,它将数据进行预聚合,只不过预聚合的方式与Kylin不同,kylin是Cube化,Druid的预聚合方式是将所有维度进行Group-by,可以参考下图:
Druid的索引结构Druid索引结构使用自定义的数据结构,整体上它是一种列式存储结构,每个列独立一个逻辑文件(实际上是一个物理文件,在物理文件内部标记了每个列的start和offset)。对于维度列设计了索引,它的索引以Bitmap为核心。下图为“city”列的索引结构:
首先将该列所有的唯一值排序,并生成一个字典,然后对于每个唯一值生成一个Bitmap,Bitmap的长度为数据集的总行数,每个bit代表对应的行的数据是否是该值。Bitmap的下标位置和行号是一一对应的,所以可以定位到度量列,Bitmap可以说是反向索引。同时数据结构中保留了字典编码后的所有列值,其为正向的索引。
Druid小结:Druid适用于聚合查询场景但是不适合有超高基维度的场景;存储全维度group-by后的数据,相当于只存储了KYLIN Cube的 Base-CuboID;每个维度都有创建索引,所以每个查询都很快,并且没有类似KYLIN的巨大的查询效率波动。
ClickHouse索引结构(只讨论MergeTree引擎)
因为Clickhouse数据模型就是普通二维表,这里不做介绍,只讨论索引结构。整体上Clickhouse的索引也是列式索引结构,每个列一个文件。Clickhouse索引的大致思路是:首先选取部分列作为索引列,整个数据文件的数据按照索引列有序,这点类似MySQL的联合索引;其次将排序后的数据每隔8192行选取出一行,记录其索引值和序号,注意这里的序号不是行号,序号是从零开始并递增的,Clickhouse中序号被称作Mark’s number;然后对于每个列(索引列和非索引列),记录Mark’s number与对应行的数据的offset。
下图中以一个二维表(date, city, action)为例介绍了整个索引结构,其中(date,city)是索引列。
该实例中包含了对于列的正反两个方向的查找过程。反向:查找date=toDate(2020-01-01) and city=’bj’数据的行号;正向:根据行号查找action列的值。对于反向查找,只有在查找条件匹配最左前缀的时候,才能剪枝掉大量数据,其它时候并不高效。
Clickhouse小结:MergeTree Family作为主要引擎系列,其中包含适合明细数据的场景和适合聚合数据的场景;Clickhouse的索引有点类似MySQL的联合索引,当查询前缀元组能命中的时候效率最高,可是一旦不能命中,几乎会扫描整个表,效率波动巨大;所以建表需要业务专家,这一点跟kylin类似。
小结:
Kylin、Druid只适合聚合场景,ClickHouse适合明细和聚合场景聚合场景,查询效率排序:Kylin > Druid > ClickHouseKylin、ClickHouse建表都需要业务专家参与Kylin、ClickHouse查询效率都可能产生巨大差异ClickHouse在向量化方面做得的最好,Druid少量算子支持向量化、Kylin目前还不支持向量化计算。
齐帆齐
关注
关注
点赞
收藏
打赏
评论
clickhouse 存储过程_Kylin、Druid、ClickHouse核心技术对比 | 知识转载
Kylin的数据模型Kylin的数据模型本质上是将二维表(Hive表)转换为Cube,然后将Cube存储到HBase表中,也就是两次转换。第一次转换,其实就是传统数据库的Cube化,Cube由CuboId组成,下图每个节点都被称为一个CuboId,CuboId表示固定列的数据数据集合​第二次转换,是将Cube中的数据存储到HBase中,转换的时候CuboId和维度信息序列化到rowkey,度量列组...
复制链接
扫一扫
数据仓库中的拉链表-Clickhouse实现.pdf
08-26
Clickhouse是一个用于联机分析处理(OLAP)的列式数据库管理系统(columnar DBMS)。
传统数据库在数据大小比较小,索引大小适合内存,数据缓存命中率足够高的情形下能正常提供服务。但残酷的是,这种理想情形最终会随着业务的增长走到尽头,查询会变得越来越慢。你可能通过增加更多的内存,订购更快的磁盘等等来解决问题(纵向扩展),但这只是拖延解决本质问题。如果你的需求是解决怎样快速查询出结果,那么ClickHouse也许可以解决你的问题。
大数据kylin权威指南
12-04
Apache Kylin是Hadoop大数据平台上的一个开源OLAP引擎。它采用
多维立方体预计算技术,可以将大数据的SQL查询速度提升到亚秒级别。
相对于之前的分钟乃至小时级别的查询速度,亚秒级别速度是百倍到千
倍的提升,该引擎为超大规模数据集上的交互式大数据分析打开了大
门。
参与评论
您还未登录,请先
登录
后发表或查看评论
【ClickHouse】-01.万字带你快速入门使用CK
最新发布
Pushkin.的博客
09-18
780
【ClickHouse】-01.万字带你快速入门使用CK
ClickHouse安装;ClickHouse引擎;ClickHouse数据类型;
ClickHouse Sql 案例操作
clickhouse SQL笔记
shihan175的博客
03-04
302
随时更新
1. clickhouse不支持存储过程,也不支持事务
2.clickhouse的索引类似于mysql的联合索引,这取决于order by 后面跟的索引列
sql 新建发布 找不到存储过程_看云上 ClickHouse 如何做计算存储分离
weixin_39871162的博客
12-12
214
各位朋友大家好,我是陈龙,我今天给大家分享的内容是:看云上 ClickHouse 如何做计算存储分离。首先介绍下我自己,我来自腾讯云大数据团队,2011 年加入腾讯,先后主导开发了腾讯云 Redis,云数据库 HBase 以及 EMR 等多款云产品的开发工作,在多个开源社区贡献过代码,目前专注于腾讯云 EMR 和云数仓
ClickHouse 的开发工作,我今天分享的内容主要分为三部分:...
Clickhouse sql 笔记
azhang190426的博客
03-12
540
1. Clickhouse 目前不支持存储过程
2. 创建表
CREATE TABLE tableName(`CompanyId` String,`Version` DateTime,`CalculateStatus` String)
ENGINE = MergeTree()
ORDER BY(CompanyId,Version)
SETTINGS index_granularity = 8192
3.case when ... END AS columnName 的...
存储过程根据参数排序_干货连载 | ClickHouse内核分析-MergeTree的存储结构和查询加速...
weixin_39945475的博客
12-01
84
作者:仁劼注:以下分析基于开源 v19.15.2.2-stable 版本进行引言ClickHouse是最近比较火的一款开源列式存储分析型数据库,它最核心的特点就是极致存储压缩率和查询性能,本人最近正在学习ClickHouse这款产品中。从我个人的视角来看存储是决定一款数据库核心竞争力、适用场景的关键所在,所以接下来我会陆续推出一系列文章来分析ClickHouse中最重要的MergeTree存储内核...
clickhouse官方文档_Siem落地方案:初识clickhouse
weixin_39932344的博客
11-21
62
简述首先,ELK是支持SIEM,一开始我也是用ELK进行数据收集、数据展示和数据分析,但是逐渐到后面,有一些功能需求使用查询语句是非常复杂,虽然ELK提供云SIEM,但是作为动手能力非常强的人(穷),就有放弃ELK这个想法。后来某大佬说clickhouse非常香,于是就开始去了解这个东西。clickhouse(以下简称CH)是列式数据库,作为数据库小白,当然要查询一下与传统行式数据库的区...
ClickHouse 存储原理初窥
qianshanding0708的博客
05-31
333
更多内容关注微信公众号:fullstack888背景目前业务中有大量实时分析需求,随着数据量的增加,基于行存储的 OLTP 数据库已经不能满足性能的需求,我们对 ClickHouse 进行了基础调研与性能摸底,并最终决定引入 ClickHouse 作为新系统的 OLAP 方案。简介ClickHouse 是一个列式存储数据库管理系统(DBMS)。相比于其他传统行式数据库系统...
clickhouse语句_Siem落地方案:初识clickhouse
weixin_35452656的博客
01-01
112
简述首先,ELK是支持SIEM,一开始我也是用ELK进行数据收集、数据展示和数据分析,但是逐渐到后面,有一些功能需求使用查询语句是非常复杂,虽然ELK提供云SIEM,但是作为动手能力非常强的人(穷),就有放弃ELK这个想法。后来某大佬说clickhouse非常香,于是就开始去了解这个东西。clickhouse(以下简称CH)是列式数据库,作为数据库小白,当然要查询一下与传统行式数据库的区...
ClickHouse之初步认识
weixin_34240520的博客
03-31
88
最近在Percona的blog上看到一篇文章:Column Store Database Benchmarks: MariaDB ColumnStore vs. Clickhouse vs. Apache Spark,从中可以看到Clickhouse的性能完爆MariaDB ColumnStore和 Spark。于是对Clickhouse产生了浓厚的兴趣,所以也打算进行学习。目前Clickhous...
存储过程
06-11
36
例:CREATE OR REPLACE PROCEDURE myproc(id IN varchar2)ISname varchar2(20);BEGINSELECT dname INTO name FROM dept WHER...
ClickHouse 存储层 解析
lg4546的专栏
12-03
136
一、列式存储
与行存将每一行的数据连续存储不同,列存将每一列的数据连续存储相比于行式存储,列式存储在分析场景下有着许多优良的特性。
1)分析场景中往往需要读大量行但是少数几个列。在行存模式下,数据按行连续存储,所有列的数据都存储在一个block中,不参与计算的列在IO时也要全部读出,读取操作被严重放大。而列存模式下,只需要读取参与计算的列即可,极大的减低了IO cost,加速了查询。
2)同一列中的数据属于同一类型,压缩效果显著。列存往往有着高达十倍甚至更高的压缩比,节省了大量的存储空间,降低了存储成本
多表查询分页存储过程
银狐的专栏
08-23
816
调用:Exec Sp_AllSiteSearch 10,1,'关键字','',''
存储过程:
Create Proc Sp_AllSiteSearch
@pagesize int,
@pageindex int,
@key varchar(100),
@dt datetime,
@itype varchar(10)
As
/*
Declare @pagesize int,@p
mysql存储过程和执行计划案例
weixin_30765577的博客
03-11
166
开启event_scheduler指令:
SET GLOBAL event_scheduler = ON;SET @@global.event_scheduler = ON;SET GLOBAL event_scheduler = 1;SET @@global.event_scheduler = 1;关闭event_scheduler指令:
SET GLOBAL event_scheduler...
clickhouse基本语法
小兔子乖乖
09-06
651
clickhouse基本语法一.基本语法演示二.基本的建表语法三.DDL基础
一.基本语法演示
show databases;
create database if not exists test1;
use test1;
select currentDatabase(); //查看当前使用的数据库drop database test1;
drop database test1;
二.基本的建表语法
注意在ck中关键字严格区分大小写
ck中建表的时候,一定指定表引擎
create table tb_
ClickHouse 入门学习
qq_43682716的博客
01-17
180
ClickHouse 入门学习
Clickhouse概览(一)
百看不如一RUN
02-24
286
什么是clickhouse
ClickHouse是一个面向列的数据库管理系统(DBMS),用于联机分析处理查询(OLAP)
在“普通”面向行的数据库管理系统中,数据按以下顺序存储:
换句话说,与一行相关的所有值在物理上紧挨着存储。
面向行的 DBMS 的例子有 MySQL、 Postgres 和 MS SQL Server。
在列式数据库中,数据是这样存储的:
这些示例仅显示数据的排列顺序。来...
怎么跑出 ClickHouse 这套全新的高效列式存储引擎的极致性能?
过往记忆大数据
11-09
105
开始介绍神器前,先听我唠半分钟的。01、技术圈最值钱的 π 型人才随着全行业数字化转型和新基建时代的到来,对技术人才提出了更高的要求。9月22日上午,美团联合创始人兼高级副总裁王慧文在清...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:游动-白
设计师:我叫白小胖
返回首页
齐帆齐
CSDN认证博客专家
CSDN认证企业博客
码龄5年
暂无认证
70
原创
周排名
179万+
总排名
9万+
访问
等级
63
积分
13
粉丝
获赞
评论
48
收藏
私信
关注
热门文章
三星980处理器和骁龙855_安兔兔跑分揭秘:麒麟980和骁龙855处理器,结果你想知道吗?...
25347
学业水平考试网登录_山东省学业水平考试登录入口http://xysp.sdzk.cn
4217
艾默生变频器ev1000故障代码_艾默生变频器常见故障及解决方法
4078
各省简称 拼音 缩写_全国所有城市拼音及缩写
3933
nessus全端口禁ping扫_【扫描工具】Nessus使用进阶
3353
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
udp协议提供的是什么服务器,udp协议及包格式是什么
css 边框0,CSS3实现0.5px的边框
花千骨计算机,花千骨电脑版
2021年130篇
2020年14篇
目录
目录
最新文章
udp协议提供的是什么服务器,udp协议及包格式是什么
css 边框0,CSS3实现0.5px的边框
花千骨计算机,花千骨电脑版
2021年130篇
2020年14篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
齐帆齐
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值