列式数据库~clickhouse日常管理
clickhouse日常管理
一 变量相关
1 查看变量
system.setting相关表
2 设置变量
set variables= 请注意这里是session级别,如果想永久生效,必须修改配置文件
3 变量文件分类
config.xml
说明 config.xml针对的是server级别的限制,包括不仅限于内存,复制集,分布式,数据目录等设置
user.xml
说明 user.xml针对的是用户级别的限制,主要包括用户增删查改的内存控制参数
4 配置文件操作便利
clickhouse会自动扫描,可以在配置文件中操作完进行查询.不用重启服务
5 配置变量优化
user变量优化
1 内存相关
max_memory_usage ck整体会话限制,包括全部链接的全部会话内存使用量上限 默认10G
max_bytes_before_external_group_by group by占用内存->针对查询 (如果需要使用max_bytes_before_external_group_by,建议将max_memory_usage设置为max_bytes_before_external_group_by大小的两倍)
min_insert_block_size_rows, min_insert_block_size_bytes 当插入导致内存溢出时,可尝试调小
config相关
1 bind本地IP,调整datadir
2 allow_experimental_multiple_joins_emulation 最新版本支持多表join参数
二 系列问题
数据同步分为两种场景
1 实时同步mysql数据
方案 : canal+kafka 实时消费binlog进行插入,在kafka进行批量操作封装
2 异步同步mysql数据
方案1 利用ck官方mysql driver进行同步
方案2 直接读取hdfs文件进行同步
总结:尽量避免单条插入而选择批量操作,提高ck整体效率
3 关于 update/delete操作
clickhouse关于update/delete操作是异步后台进行,而且成本很高,所以尽量减少和避免进行update/delete操作
通过 select * from system.mutations 可以判断后台操作进行是否完成
语法eg alter table update table column='' where 条件
4 ck关于DDL操作的一些限制
尽量不要进行 modify column,更改列的操作代价是非常高昂的
5 程序如何调用clickhouse
使用jdbc调用 ClickHouse驱动包,最后编写测试类,可参考
https://blog.csdn.net/zwq_zwq_zwq/article/details/80871518 样例
三 code相关错误
1 Code: 32, e.displayText() = DB::Exception: Attempt to read after eof: while receiving packet from 127.0.0.1:9000, Stack trace:
最新文章
- Jil序列化JSON
- PowerDesigner(一)-PowerDesigner概述(系统分析与建模)(转)
- PAT1028—— 人口普查
- 序列化和反序列化(C#)
- python进阶之路4.1---生成器与迭代器
- RedHat安装GCC问题-解决依赖问题
- 转 C语言面试题大汇总
- 深入浅出数据结构C语言版(12)——从二分查找到二叉树
- java程序性能调优---------------性能概述
- Cursor类取出数据
- 浅析java程序的执行过程
- docx httpheader头设置
- 线程池工厂Executors编程的艺术
- 一:window环境,LaTex快速安装(简单易懂)
- jenkins+sonarQube代码质量扫描 并排除指定的目录
- C#基础知识回顾-- 反射(4)
- 从输入URL到页面显示发生了什么
- SQL 分页 SQL SERVER 2008
- 向tekkaman学习
- jdk1.8换成1.7