列式数据库~clickhouse问题汇总
一 简介:常见的clickhouse 问题汇总
二 问题系列
1 内存问题
Code: 241. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Memory limit (for query) exceeded: would use 80.15 GiB (attempt to allocate chunk of 17179869184 bytes), maximum: 74.51 GiB.
分析 内存溢出情况,内存总量放不下目标数据
这里有两种情况
1 多用户并发执行,每个用户查询的数据量都很大,导致了总体超过了内存限制,导致了溢出
2 group by单语句问题 ClickHouse会限制group by使用的内存量(它使用 hash table来处理group by)
3 insert 语句也可能导致 内存溢出问题,调整参数
变量调整user.xml相关变量
其他调整
1 减少并发 2 改写语句 3增大内存 4 调整参数
2 如何将hive导致ck中
解决方式: 1 Waterdrop将Hive中的数据导入ClickHouse中 2Waterdrop经过配置文件配置即可,不用编写代码和导入csv
github地址 https://github.com/InterestingLab/waterdrop
1 此插件能支持多种输入输出目标,强烈推荐 2需要依赖spark
3 ck多表join的问题
1 多表join效果效率不是很高
2 多表join的语法非常复杂 只能期待后续版本
4 关于ck的查询与索引问题
CK本身并没有索引,建表的时候已经指定了主键,建议一切查询都要带上主键条件,这样,能大大加快速度(merge),防止全表扫描,将很多数据置入内存中
5 关于ck的适用场景
经过权威人士的测试,ck更多适用于单表查询的场景,对于多表join的效果和写法都存在问题,不建议使用,分布式架构采用Distribution+ReplicatedMergeTree
6 ck关于DDL操作的一些限制
1 不要进行 modify column,更改列的操作代价是非常高昂的
列式数据库~clickhouse问题汇总的更多相关文章
- 列式数据库~clickhouse 场景以及安装
一 简介:列式数据库clickhouse的安装与基本操作二 基本介绍:ClickHouse来自俄罗斯,是一款列式数据库三 适用场景: 简单类型的大数据统计四 限制 1 不支持更新操作,不支持事 ...
- 数仓选型必列入考虑的OLAP列式数据库ClickHouse(上)
概述 定义 ClickHouse官网地址 https://clickhouse.com/ 最新版本22.4.5.9 ClickHouse官网文档地址 https://clickhouse.com/do ...
- 列式数据库~clickhouse 底层存储原理
简介:今天介绍列式数据库的一些基本原理 一 数据目录 Data目录 数据存储目录,数据按照part分成多个文件夹,每个文件夹下存储相应数据和对应的元信息文件 Metadata 表定义语句,存储所有表 ...
- 数仓选型必列入考虑的OLAP列式数据库ClickHouse(中)
实战 案例使用 背景 ELK作为老一代日志分析技术栈非常成熟,可以说是最为流行的大数据日志和搜索解决方案:主要设计组件及架构如下: 而新一代日志监控选型如ClickHouse.StarRocks特别是 ...
- 列式数据库~clickhouse 副本集架构的搭建
clickhouse 搭建副本集 一 原理: 1 依赖ZK,ZK的基础上,ZK存储数据库元数据 2 使用复制表引擎创建复制表,包括ZK路径和副本名,相同ZK路径的表可以相互复制 3 复制表本身拥 ...
- 列式数据库~clickhouse日常管理
clickhouse日常管理一 变量相关 1 查看变量 system.setting相关表 2 设置变量 set variables= 请注意这里是session级别,如果想永久生 ...
- 列式数据库~clickhouse 数据同步使用
一 简介:进一步了解clickhouse二 数据操 1 单机建表 create TABLE aaa ( id UInt32, uid UInt32, amount Float64, ...
- Hbase与Oracle比较(列式数据库与行式数据库)
Hbase与Oracle比较(列式数据库与行式数据库) 1 主要区别 Hbase适合大量插入同时又有读的情况 Hbase的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道时间. Hbase本质上只 ...
- Hadoop HBase概念学习系列之HBase里的列式数据库(十七)
列式数据库,从数据存储方式上有别于行式数据库,所有数据按列存取. 行式数据库在做一些列分析时,必须将所有列的信息全部读取出来 而列式数据库由于其是按列存取,因此只需在特定列做I/O即可完成查询与分析, ...
随机推荐
- RabbitMQ入门-队列
先建工程 下一步,输入坐标 下一步,输入工程名 先看一下最终目录 修改pom文件 <?xml version="1.0" encoding="UTF-8" ...
- feemarker知识
map遍历多出来一些东西解决: <#if rightType?exists><#list rightType.keySet() as typeId> <h2>${r ...
- js或jQuery获取当前屏幕的各种高度
Javascript: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.b ...
- 牛客网 2018年东北农业大学春季校赛 I题 wyh的物品
链接:https://www.nowcoder.com/acm/contest/93/I 来源:牛客网 时间限制:C/C++ 5秒,其他语言10秒空间限制:C/C++ 262144K,其他语言5242 ...
- goto语句
让程序直接跳到自定义标签位置 public static void Main(string[] args) { ; goto myLabel;AppDomainInitializer//直接跳到标签m ...
- python 函数基础及装饰器
没有参数的函数及return操作 def test1(): print ("welcome") def test2(): print ("welcomt test2&qu ...
- Kademlia、DHT、KRPC、BitTorrent 协议、DHT Sniffer
catalogue . 引言 . Kademlia协议 . KRPC 协议 KRPC Protocol . DHT 公网嗅探器实现(DHT 爬虫) . BitTorrent协议 . uTP协议 . P ...
- sp_change_users_login 'Update_One', '用户名', '登录名';
每次从服务器上备份好数据库(Sql Server数据库),如果将备份数据库文件在本地恢复,总会产生用户权限的问题. 经过很多次的实验后,我发现有那么一条语句可以发挥作用,就是sp_change_use ...
- JAVA-Clone 对象拷贝
JAVA 中对象的赋值是复制对象的引用,即复制引用 public static void main(String[] args) { User user = new User(1,"asds ...
- MarkdownPad使用
正文: 1.标题的几种写法: 第一种: 前面带#号,后面带文字,分别表示h1-h6,上图可以看出,只到h6,而且h1下面会有一条横线,注意,#号后面有空格 第二种: 这种方式好像只能 ...