Clickhouse使用笔记

clickhouse官方文档:https://clickhouse.com/docs/zh/sql-reference/data-types/decimal
一,建表

create table acitivity_user_record
(
id String DEFAULT generateUUIDv4(), -- 主键自增
activityId String,
userId String,
userName Nullable(String),
phoneNumber Nullable(String),
companyName Nullable(String),
companyAddr Nullable(String),
`source` Nullable(String),
`platform` Nullable(String),
addDate UInt64,
addDateTime DateTime64(3)
)
engine = ReplacingMergeTree PARTITION BY activityId
PRIMARY KEY (id)
ORDER BY (id, addDateTime, activityId)
SETTINGS index_granularity = 8192;

(1)表引擎
ReplacingMergeTree 具有去重功能,数据存储在磁盘上
Memory引擎数据可能会重复,数据存储在内存中,查询会更快,但是数据容易丢失,如果服务器挂掉,数据就丢失了。
在idea使用表的拷贝功能,将表从一个库拷贝到另一个库的时候,表引擎自动变为memory,服务器重启数据就丢失了。
如果不指定PRIMARY KEY会把order by指定的字段作为主键
order by用于对分区内的数据进行排序

二,遇到的一些问题
1,语法上和mysql,sqlserver上有差异
1,分区字段,排序字段不支持update,只能删除再插入
2,Nullable类型的字符串字段,很多字符串的函数不能用,嗯,试试就知道了
3,clickhouse在进行算数运算和比较运算时默认会进行精度检查
例如decaimal类型相乘,
例如amout和tax_cost_price都是Decimal(18,6) 类型的,amout*tax_cost_price相乘之后小数部分位数会相加,变成Decimal(18,12),精度溢出报错
在这里插入图片描述
得先进行精度转换multiply(toDecimal64(sbd.amount, 5), toDecimal64(sbd.tax_cost_price, 5)
检查溢出会导致计算变慢。如果已知溢出不可能,则可以通过设置decimal_check_overflow来禁用溢出检查,在这种情况下,溢出将导致结果不正确,官方文档里描述的很详细,还有示例
4,clickhouse多表关联查询时性能很差,之前在查销售流向的时候使用了五张表进行关联查询,其中两张销售表的数据量特别大,进行关联聚合查询时执行了1分多钟,改为子查询之后执行时间只需要六七秒。
线上之前用sqlserver需要14~17s的查询,改成clickhouse只需要两三秒了,数据量是三千多万。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git之误执行git rm -r解决方案(六十七)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

9月16日星期一今日早报简报微语报早读

9月16日星期一,农历八月十四,早报微语早读。 1、猫眼专业版数据:2024年中秋档票房破亿; 2、WTT澳门冠军赛:孙颖莎夺得女单冠军; 3、乐山夹江县:支持农村居民进城购房,每户补贴5万…

天融信把桌面explorer.exe删了,导致开机之后无windows桌面,只能看到鼠标解决方法

win10开机进入桌面,发现桌面无了,但是可以ctrlaltdelete调出任务管理器 用管理员权限打开cmd,输入: sfc /scanfilec:\windowslexplorer.exe 在运行C:\windows\Explorer.exe;可以进入桌面,但是隔离几秒钟…

Java多线程1

目录 1.简述进程与线程之间的主要差异。 2.描述进程间通信的常用方式。 3.详细说明线程间如何进行通信。 4.什么是原子性?请举例说明。 5.i 和 i--操作是否具有原子性?为什么? 1.简述进程与线程之间的主要差异。 进程和线程是计算机系统…

MYSQL基础-多表操作-事务-索引

1. 多表设计 概述 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种: …

Python3时间模块使用

文章目录 python安装时间处理模块概述time 模块常用方法 datetime 模块常用方法 时间戳与 datetime 的相互转换时区处理使用 pytz 设置时区 实际应用场景日志时间处理时间差计算不同时区的时间转换 结论 在 Python 编程中,时间处理和时间格式转换是非常常见的需求&a…

美团图床设置教程

大厂图床,CDN加速 项目地址:https://github.com/woniu336/mt-img 使用方法 在mt.php填上你的token即可,然后打开index.html上传图片 获取token方法 注册https://czz.meituan.com/发布视频,上传封面,注意在上传封面后…

【退役之再次线上部署】Spring Boot + VUE + Nginx + MySQL

这篇博客写在凌晨 4 点 20 分,这个时候我刚线上部署完成 web 项目,自己写的全栈项目 这个点儿,也睡不着了,索性就写篇博客记录一下 一、踩坑实录 这个是 最重要的,所以写在前面 Nginx 配置文件 location location /a…

【更新】上市公司-供应链金融水平数据(2000-2023年)

上市公司供应链金融是指上市公司利用其产业链核心地位,通过整合金融资源,为供应链上下游企业提供包括融资、结算、风险管理等在内的综合金融服务。为了衡量上市公司的供应链金融水平,参考周兰等(2022)的研究方法&#…

基于Spring Boot的心理健康服务系统的设计与实现(毕业论文)

目    录 1 前言 1 1.1 研究目的与意义 1 1.2 国内外研究现状 1 1.3 论文结构 3 2 可行性分析 3 3 系统需求分析 4 3.1 用户需求分析 4 3.2 心理咨询师需求分析 5 3.3 管理员需求分析 6 3.4 业务流程分析 7 4 概要设计 9 4.1 系统结构设计 10 4.2 功能模块设计 10 4.2.1 管…

20Kg载重30分钟续航多旋翼无人机技术详解

一、机架与结构设计 1. 材料选择:为了确保无人机能够承载20Kg的负载,同时实现30分钟的续航,其机架材料需选用轻质高强度的材料,如碳纤维或铝合金。这些材料不仅具有良好的承重能力,还能有效减轻无人机的整体重量&…

计算机毕业设计Python深度学习垃圾邮件分类检测系统 朴素贝叶斯算法 机器学习 人工智能 数据可视化 大数据毕业设计 Python爬虫 知识图谱 文本分类

基于朴素贝叶斯的邮件分类系统设计 摘要:为了解决垃圾邮件导致邮件通信质量被污染、占用邮箱存储空间、伪装正常邮件进行钓鱼或诈骗以及邮件分类问题。应用Python、Sklearn、Echarts技术和Flask、Lay-UI框架,使用MySQL作为系统数据库,设计并实…

Gitlab 中几种不同的认证机制(Access Tokens,SSH Keys,Deploy Tokens,Deploy Keys)

前言 公司主要使用 Go 语言做项目,有一些 Gitlab 私有仓库需要引用,在做 CI 时,要自行配置权限以获取代码。 最近发现各个项目组在做 CI 遇到仓库权限问题时的解决方式不尽相同,有用 Project Token 的,有用 Deploy K…

unity3d入门教程五

unity3d入门教程五 13鼠标事件处理13.2鼠标跟随13.3鼠标拖拽(选中对象,拖动对象)13.4几个问题14.1事件函数14.2脚本的执行顺序14.3脚本的参数14.4引用类型的参数(进行图片更换,人物换装) 13鼠标事件处理 需…

自由流转--实例

一、自由流转的形态 流转能力打破设备界限,多设备联动,使用户应用程序可分可合、可流转,实现如邮件跨设备编辑、多设备协同健身、多屏游戏等分布式业务。 二、跨端迁移 在应用开发层面,跨端迁移指在A端运行的UIAbility迁移到B端上…

Linux操作系统如何添加新字体

在一个Linux操作系统及办公软件刚安装后,会发现缺少常用的“楷体_GB2312”和“仿宋_GB2312”字体。此时,只需要从其它电脑复制到或者从互联网上下载到这两个字体文件,然后导入到自己的电脑即可,再次打开办公软件就会看到这个字体已…

linux重要文件

/etc/sysconfig/network-scripts/ifcfg-eth1 网卡重启 /etc/init.d/network restart ifup ethname & ifdown ethname /etc/resolv.conf 设置Linux本地的客户端DNS的配置文件 linux客户端DNS可以在网卡配置文件(/etc/sysconfig/network/ifcfg-eth0 DNS2)里配置 也可以在/et…

FL Studio 24.1.1.4285中文破解完整版免费下载FL 2024注册密钥完整版crack百度云安装包下载

FL Studio 24.1.1.4285中文破解版是一个强大的软件选项,可以使用专业应用程序(如最先进的录音机、均衡器、内置工具等)制作循环和歌曲。它由数百个合成器和混响等效果以及均衡器组成,除此之外,您还可以在新音乐制作的方…

9. 什么是 Beam Search?深入理解模型生成策略

是不是总感觉很熟悉? 在之前第5,7,8篇文章中,我们都曾经用到过与它相关的参数,而对于早就有着实操经验的同学们,想必见到的更多。这篇文章将从示例到数学原理和代码带你进行理解。 Beam Search 对应的中文翻…

【C++】queue和priority_queue

个人主页~ queue和priority_queue 一、queue的介绍和使用1、queue的介绍2、queue的使用3、queue的模拟实现 二、priority_queue的介绍和使用1、priority_queue的介绍2、priority_queue的使用3、priority_queue的模拟实现 三、仿函数1、仿函数的特征2、仿函数的使用 ex、有关于l…