clickhouse优化最佳实践

2023-10-27

clickhouse在易企秀数据仓库项目中已投入使用两年,主要为内部用户提供快速查询和多维分析的能力;希望你在业务当中遇到的性能问题,在这里都能得到解决

Clickhouse堪称OLAP领域的黑马,最近发布的几个版本在多表关联分析上也有了极大的性能提升,尤其是还引入了MaterializeMySQL Database Engine做到了实时对齐业务线mysql中的数据。

表优化

数据类型

  • 建表时能用数值型或日期时间型表示的字段,就不要用字符串——全String类型在以Hive为中心的数仓建设中常见,但CK环境不应受此影响。

  • 虽然clickhouse底层将DateTime存储为时间戳Long类型,但不建议直接存储Long类型,因为DateTime不需要经过函数转换处理,执行效率高、可读性好。

  • 官方已经指出Nullable类型几乎总是会拖累性能,因为存储Nullable列时需要创建一个额外的文件来存储NULL的标记,并且Nullable列无法被索引。因此除非极特殊情况,应直接使用字段默认值表示空,或者自行指定一个在业务中无意义的值(例如用-1表示没有商品ID)。

分区和索引

  • 分区粒度根据业务特点决定,不宜过粗或过细。一般选择按天分区,也可指定为tuple();以单表1亿数据为例,分区大小控制在10-30个为最佳。

 

PARTITION BY tuple() 
  • 必须指定索引列,clickhouse中的索引列即排序列,通过order by指定,一般在查询条件中经常被
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

clickhouse优化最佳实践 的相关文章

  • 区块链系统运行逻辑

    文章目录 一 开发工具 二 程序运行完整逻辑 2 1 总体逻辑 2 2 详细过程 以添加数据 AddData 为例 一 开发工具 hyperledger fabric 1 4 7 hyperledger ca 1 4 7 ca是用来生成证书
  • [SCOI2005]骑士精神【迭代加深+IDA*】

    题目链接 P2324 SCOI2005 骑士精神 首先 我们先讲讲几个基础知识 迭代加深 我们假设深度优先搜索 DFS 的最深搜索到Max depth 那么也就是说深度到达Max depth的时候不管满不满足答案都要返回了true or f
  • 【id:120】【25分】B. 虚拟电话(构造与析构)

    时间限制 1s 内存限制 128MB 题目描述 虚拟电话包含属性 电话号 状态 机主姓名 1 电话号是一个类 它包含号码和类型 其中号码是整数类型 类型用单个字母表示用户类别 A表示政府 B表示企业 C表示个人 类操作包括构造 属性的获取和
  • 【WiFi】WIFI芯片的研发

    目录 1 硬件设计 2 软件开发 3 集成和测试 4 认证和合规性 5 量产和供应链管理 6 总结说明 1 硬件设计 首先 您需要进行WiFi芯片的硬件设计 这包括选择适当的射频 RF 芯片 基带处理器 调制解调器等组件 并进行电路设计和布
  • Unity C# The type or namespace name could not be found 解决办法

    在使用Unity写脚本的时候有可能需要用到外部的库 这个时候如果直接用VS里的NuGet安装包 安装完之后可以运行 但是重启Unity之后就会出现 CS0246 C The type or namespace name could not

随机推荐

  • Numpy-基础数据结构

    Numpy是python中一个运行速度非常快的的数学库 主要用于数组计算 包含 一个强大的N维数组对象 ndarray 广播功能函数 线性代数 傅里叶变换 随机数生成等功能 接下来 我会系列介绍Numpy的知识点 包含其基础数据结构 通用函
  • 【OpenGL学习】光源

    光源 本节中 LearnOpenGL 教程中的标题为投光物 表示将光线投射到物体的光源 事实上这些投光物都可以称之为光源 包括平行光 点光源 聚光灯等 不同类型的光源可以给场景带来不同的光照效果 本节主要学习定向光 Directional
  • Tinymce富文本编辑器在vue项目中的使用;引入第三方插件和上传视频、图片等

    先放张效果图 第一步 安装依赖 npm install tinymce 5 0 12 第二步 在项目中的public文件夹中新建tinymce文件夹 因为我的项目是脚手架创建的 所以公共文件夹是public 在node modules中找到
  • chrome 安装axure 插件

    一般使用chrome查看axure原型文件时 会提示安装插件 但是又连不上google扩展安装 这里提供一个简便的方式安装 1 静态原型页面路径resources chrome axure chrome extension crx 找到文件
  • RTThread中HardFault_Handler分析

    以Cortex M3为例 RTThread在运行过程如果产生fault 会进人HardFault Handler中断 RTThread对HardFault Handler进行了重定义 HardFault Handler函数在context
  • vue2+three.js实现宇宙(进阶版)

    2023 9 12今天我学习了vue2 three js实现一个好看的动态效果 首先是安装 npm install three 相关代码如下
  • SSL是什么?SSL怎么用?

    SSL是什么 SSL Secure Sockets Layer 安全套接层 及其继任者传输层安全 Transport Layer Security TLS 是为网络通信提供安全及数据完整性的一种安全协议 如今被广泛使用 如网页 电子邮件 互
  • STM32F103基于HAL工程TIM4多通道PWM固定占空比输出

    STM32F103基于HAL工程TIM4多通道PWM固定占空比输出 在测试过程中发现配置的2路PWM总是只有一个固定的通道有输出 于是复用到其他引脚 输出波形有 确定是芯片引脚的问题 后面换了一块板测试 确定是芯片引脚确实有问题 刚开始一直
  • 史上最全Elasticsearch学习

    文章目录 Elasticsearch 一 Elasticsearch简介 安装 1 1 Elasticsearch是什么 1 2 全文搜索引擎 1 3 Elasticsearch的应用案例 1 4 Elasticsearch的下载 安装 运
  • python异常处理

    Python3 错误和异常 作为 Python 初学者 在刚学习 Python 编程时 经常会看到一些报错信息 在前面我们没有提及 这章节我们会专门介绍 Python 有两种错误很容易辨认 语法错误和异常 Python assert 断言
  • 【计算机科学与技术】信息论笔记(6):微分熵

    200803本篇是学习信息论的入门笔记 希望能与各位分享进步 这是第六章 微分熵 文章目录 6 微分熵 6 1 定义 6 2 连续随机变量的AEP 6 3 微分熵与离散的关系 6 4 联合微分熵与条件微分熵 6 5 相对熵与互信息 6 6
  • ubuntu 12.04安装jdk

    分类 LINUX 在安装之前 系统没有任何jdk软件 也就是说在终端执行 java version 将会输出如下内容 root haiyang Aspire java version 程序 java 已包含在下列软件包中 default j
  • 解决linux下图形界面卡死不能操作的问题

    由于linux系统bug很多 所以有时候用着用这就会发生图形界面卡死不能操作的情况 具体解决方法如下 1 按住ctrl alt f2 然后进入了一个黑色的shell界面 注 linux下共有六个虚拟控台 f2 f6 分别对应这不同的权限 2
  • 小程序仿微信支付键盘实现

    先上图 2 实现过程 键盘放在了vant weapp组件的弹窗框popup中 并且默认进入页面自动弹出键盘 index wxml
  • java -- Math、BigInteger、BigDecimal类和基本类型的包装类、正则表达式

    Math java lang Math 类包含用于执行基本数学运算的方法 如初等指数 对数 平方根和三角函数 类似这样的工具类 其所有方法均为静态方法 并且不会创建对象 调用起来非常简单 Math PI 静态常量 public static
  • AD器件飞出可视区域如何推拽回来

    步骤1 选择器件 步骤2 摆放器件 先说摆放器件 如下图 三个器件 加入我们需要摆放右侧的两个器件到指定区域 先选择要摆放的器件 操作如下 绘制需要摆放的区域 器件已经被移动过来了 完成 上述方法可以对大量器件进行整体移动 利用上述方法可以
  • 基于改进YOLO的玉米病害识别系统(部署教程&源码)

    1 研究背景与意义 近年来 农业科技的快速发展为农作物的种植和管理带来了许多便利 然而 农作物病害的防治仍然是一个全球性的挑战 玉米作为世界上最重要的粮食作物之一 受到了许多病害的威胁 如玉米灰斑病 玉米穗腐病等 这些病害不仅会导致玉米产量
  • IM群聊消息如此复杂,如何保证不丢不重?

    1 前言 群聊已经成为主流IM软件的基本功能 不管是QQ群 还是微信群 一个群友在群内发了一条消息 那么对于IM服务器来说需要保证 在线的群友能第一时间收到消息 离线的群友能在登陆后收到消息 由于 消息风暴扩散系数 的存在 概念详见 IM单
  • sas数字转日期格式_一个关于sas日期时间读入格式的问题

    方法一 直接使用SAS的PROC IMPORT 可以直接识别DATETIME格式 SAS版本9 2 PROC IMPORT OUT WORK T5 DATAFILE C temp csv DBMS CSV REPLACE GETNAMES
  • clickhouse优化最佳实践

    clickhouse在易企秀数据仓库项目中已投入使用两年 主要为内部用户提供快速查询和多维分析的能力 希望你在业务当中遇到的性能问题 在这里都能得到解决 Clickhouse堪称OLAP领域的黑马 最近发布的几个版本在多表关联分析上也有了极