clickhouse从入门到放弃(代码片段)

mr.杰瑞 mr.杰瑞     2022-12-09     405

关键词:

最近公司需要使用clickhouse做数据分析,我赶紧从docker上下载一个,学习学习。学习成本不大,会mysql就行。

clickhouse

下载

下载clickhouse包

docker pull yandex/clickhouse-client
docker pull yandex/clickhouse-server

启动clickhouse-server实例

docker run -d --name clickhouse --ulimit nofile=262144:262144 yandex/clickhouse-server

-d 代表后台运行 --name 自定义名称 -p:容器端口映射到当前主机端口 不指定默认http端口是8123,tcp端口是9000

我这里直接用默认的,有需求的话,可以自己加

启动客户端

docker run -it --rm --link clickhouse:clickhouse-server yandex/clickhouse-client --host clickhouse-server


出来这个就可以体验了。

分区

它强大的点是这个东东
MergeTree的表引擎才支持主键索引,数据分区,数据副本,数据采样这些特性,只有此系列的表引擎才支持ALTER操作

必填项:
1.ENGINE:创建MergeTree的表引擎指定ENGINE = MergeTree()
2.ORDER BY语句:sorting key 排序键,用于指定在一个数据片段内数据以何种标准排序。默认情况下是主键primary key
选填项
PARTITION BY :分区键 用于指定表数据以何种标准进行分区。分区键可以单个列字段,也可以是通过元祖形式使用的多个列字段,还可以支持使用列表达式。(意思是可以组合多个字段进行分区)
若不声明分区键则clickhouse会生成一个名为all的分区。合理使用分区 可以有效减少查询数据文件的扫描范围。

详细了解分区

分区:通过人名分区

create table name_partition(
    uid Int8,
    name String
    grade Int8
)
engine=MergeTree()
order by grade
partition by name;
insert into name_partition values(3,'xiaoming1',80),(5,'xiaoming',10),(1,'xiaohong',90),(7,'fangfang',8),(30,'xiaoming',60),(11,'fangfang',40);


可以看到表根据名字进行了分区

insert into name_partition values(80,'xiaohong',100),(50,'xiaoming',3);


将分区合并 optimize table表名

optimize table name_partition


发现什么了,如果插入的语句设计到分区字段的不同的枚举值的话,每次执行合并只合并一个。

再执行一次就可以了

基本使用

未完待续~

clickhouse从入门到放弃(代码片段)

最近公司需要使用clickhouse做数据分析,我赶紧从docker上下载一个,学习学习。学习成本不大,会mysql就行。clickhouse下载分区基本使用下载下载clickhouse包dockerpullyandex/clickhouse-clientdockerpullyandex/clickhouse-server启动clickhouse-... 查看详情

vue从入门到放弃(代码片段)

----------------------------------------------------点击这里《专栏目录》查看更多--------------------------------------------------------------------------------------------------------点击这里《专栏目录》查看更多---------------- 查看详情

vue从入门到放弃(代码片段)

----------------------------------------------------点击这里《专栏目录》查看更多--------------------------------------------------------------------------------------------------------点击这里《专栏目录》查看更多---------------- 查看详情

vue从入门到放弃(代码片段)

----------------------------------------------------点击这里《专栏目录》查看更多--------------------------------------------------------------------------------------------------------点击这里《专栏目录》查看更多---------------- 查看详情

vue从入门到放弃(代码片段)

vue2.0创建项目命令:(base)goldwater@hujinshuivue%cnpminstall-gvue-cli(base)goldwater@hujinshuivue%vueinitwebpackvue2.0-demo?Projectnamevue2.0-demo#项目名称?ProjectdescriptionAVue.jsproject#项目描述?Au 查看详情

初识pytorch:从安装到入门,从入门到放弃(代码片段)

目录PyTorch安装配置安装验证PyTorchPyTorch是Facebook团队于2017年1月发布的一个深度学习框架,虽然晚于TensorFlow,也没有TensorFlow火,但目前已经与TensorFlow奇虎相当。而且PyTorch采用了Python语言的接口,可以说它才是Pytho... 查看详情

vue从入门到放弃(代码片段)

vue——filter过滤器filterDemo.vue<template><div><h1>过滤器</h1>message|lower</div></template><script>exportdefaultdata()returnmessage:'HelloWorld',fi 查看详情

深度学习---从入门到放弃pytorch基础(代码片段)

深度学习—从入门到放弃(一)pytorchTensor类似于numpy的array,pandas的dataframe;在pytorch里的数据结构是tensor,即张量tensor简单操作1.Flattenandreshape###Originalz:tensor([[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]])Flatte 查看详情

vue从入门到放弃(代码片段)

vue——filter过滤器filterDemo.vue<template><div><h1>过滤器</h1>message|lower</div></template><script>exportdefaultdata()returnmessage:'HelloWorld',filters:low 查看详情

vue从入门到放弃(代码片段)

插值表达式templateDemo.vue<template><div>HelloWorld!!!<h1>插值表达式</h1>msgnamesex=='1'?'男':'女'<h1>指令</h1><!--尽量少用,会解析内 查看详情

django从入门到放弃(代码片段)

目录基于socket手写web框架基于wsgiref定义自己的web框架数据库取数据,渲染页面三大主流框架分析http协议分析Django下载,创建项目 基于socket手写web框架py文件importsocketdefserver_run():soc=socket.socket()soc.bind((‘127.0.0.1‘,8008))soc.listen... 查看详情

vue从入门到放弃(代码片段)

vue——v-forforDemo.vue<template><div><p>遍历数组</p><ul><liv-for="(item,index)inlistArr":key="item.id">index-item.id-item.title</l 查看详情

vue从入门到放弃(代码片段)

插值表达式templateDemo.vue<template><div>HelloWorld!!!<h1>插值表达式</h1>msgnamesex=='1'?'男':'女'<h1>指令</h1><!--尽量少用,会解析内容,会导致 查看详情

go语言从入门到放弃(代码片段)

HelloWorld我们先看看一个最简单的HelloWorld代码1packagemain23import"fmt"45funcmain()6fmt.Println("Hello,World!")7这段代码可以在控制台输出"Hello,World!"下面让我们来刨析一下此段代码第一行的packagemain 定义了该程序的包名为main,main的功能同其... 查看详情

docker从入门到放弃(代码片段)

...机时候用到的docker,时间长了也忘了,准备好好梳理学习入门一波。《十分感谢大神的文章,本文基于大神的文章学习整理。》一、入门基础??Docker使 查看详情

深度学习---从入门到放弃优化器(代码片段)

深度学习—从入门到放弃(四)优化器1.案例引入-MNIST手写数字识别现代深度学习优化中的许多核心思想(和技巧)可以在训练MLP以解决图像分类任务的中进行说明。在这里我们使用的是手写数字的MNIST数据集࿰... 查看详情

handler机制从入门到放弃(代码片段)

从注释看起Hander的源码只有不到800行,而且大多数代码相对来说还是比较好理解的,尤其是相对于其他更加接近底层的代码来说,在看源码时候有一点挺重要的就是不要忽略注释的作用,Handler类开头有这么几行注... 查看详情

单例模式(从放弃到入门)(代码片段)

单例模式(从放弃到入门)@(设计模式)类图简介单例模式,可以说是设计模式中最简单的模式之一了,因为它不是用来解耦合用的,而是为了让整个系统有且只有一个这样的对象。为什么要只有一个呢?... 查看详情