1.clickhouse的下载安装

这部分没有什么需要特别说明的,按照官方文档下载安装即可。
官方帮助文档
提前需要准备linux环境:准备clickhouse安装环境,如Mac OS或Linux(虚拟机或云服务器均可)
这里使用的是云服务器。

2.clickhousse的基本使用

实验内容:

  • 上传下发的employee.csv文件到clickhouse的employee表 ,并通过控制台打印出来。employee的列名称为id,name(员工姓名),bonus(奖金),department(部门)
  • 使用某种语言连接clickhouse,新建library表,上传library.csv文件到library表
  • 使用HTTP请求方式查询library表

参考文档:
https://clickhouse.com/docs/zh/interfaces/http
https://clickhouse.com/docs/zh/interfaces/jdbc
https://clickhouse.com/docs/zh/interfaces/cli
https://clickhouse.com/docs/zh/sql-reference/statements/

2.1建表与上传文件

执行bash,进入容器

sudo docker exec -it some-clickhouse-server bash

进入clickclient

创建数据库:

create database clickhousetest

在数据库中创建两个表:employeelibrary

  • employee
CREATE TABLE clickhousetest.employee (`id` Int32, `name` String, `bonus` Int32, `department` String) ENGINE = MergeTree ORDER BY id SETTINGS index_granularity=8192

  • library
CREATE TABLE clickhousetest.library (`id` Int32, `visit_date` String, `people` Int32) ENGINE = MergeTree ORDER BY id SETTINGS index_granularity=8192

上传两个CSV文件到服务器的文件中:

进入docker命令行,将服务器中文件导入到docker容器的目录sunyunqi下:

docker cp /home/ubuntu/clickhouse some-clickhouse-server:/sunyunqi/

然后执行下面的命令,将employee表中的内容以csv的格式读入到clickhouse.employee表中:

clickhouse-client --query="INSERT INTO clickhousetest.employee FORMAT CSV" < ./sunyunqi/employee.csv

library操作一样,结果如下:

clickhouse-client --query="INSERT INTO clickhousetest.library FORMAT CSV" < ./sunyunqi/library.csv

2.2 HTTP形式查询library表

执行bash后,执行下面命令可以得到结果为OK

curl 'http://localhost:8123'

下面查询employee表:

echo 'SELECT * FROM clickhousetest.employee' | curl 'http://localhost:8123/' --data-binary @-

3.OLAP查询

3.1 查询employee表每个部门的奖金最高的前两个人

select e1.name, e1.bonus, e1.department, e1.ranks from (select name, bonus, department, dense_rank() over (partition by department order by bonus desc) as ranksfrom clickhousetest.employee) as e1where e1.ranks<=3


功能描述:根据PARTITION BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置。组内的数据按PARTITION BY子句排序,然后给每一行赋一个号,从而形成一个序列,该序列从1开始,往后累加。每次ORDER BY表达式的值发生变化时,该序列也随之增加。有同样值的行得到同样的数字序号(认为null时相等的)。密集的序列返回的时没有间隔的数.

3.2 查询图书馆浏览次数大于99人,而且id连续的行数不止3行的数据

SELECT id, visit_date, people from
(select *, count(*) over (partition by differ) as countfrom(select id, visit_date, people, (id - g) as differfrom   (select id, visit_date, people, row_number() OVER (order by id) as gfrom clickhousetest.library as sWHERE s.people > 99) as temp) as s1
) as s2
where s2.count >= 3 order by id
  • 首先需要得到访问人数大于99人的表:temp,并且在这个表中我们记录现在的行号g

  • 使用原来的id减去现在的行号g,得到一个结果记做differ,这个differ反映了数据是否是连续的

  • 根据这个是否连续的值进行分组,计算这个组的有多少行,作为一个新的属性count

  • 在上表的结果中挑选出count大于3的即为最终结果。

4.目录结构

随便找一个employee表进去:

  • 分区目录

all_1_1_0和all_2_2_0都是分区目录

分区ID_最小数据块编号_最大数据块编号_层级构成。在本例中,分区ID是all, 最小数据块编号是1,最大数据库编号是1,层级是0

  • 卸载后的表分区目录

通过DETACH语句卸载后的表分区存放位置

  • 插入一条数据后查看存储文件发生变化
clickhouse-client --query="INSERT INTO clickhousetest.employee (*) values (8, 'sunyunqi', 1000, 'GWY')"


层级构成发生变化,可能是发生了合并?

ClinkHouse基本使用说明相关推荐

  1. abaqus高性能服务器怎么用,高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF...

    高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF 高性能计算平台ABAQUS 任务调度使用说明 作者:陈林 E-Mail:chenlin@ 日期:2017-1-10 ...

  2. linux 文件拷贝并替换,Linux_cmd replace 文件替换使用说明,帮助信息: 复制代码 代码如 - phpStudy...

    cmd replace 文件替换使用说明 帮助信息: 复制代码 代码如下: 替换文件. REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [ ...

  3. Simple Dynamic Strings(SDS)源码解析和使用说明二

    在<Simple Dynamic Strings(SDS)源码解析和使用说明一>文中,我们分析了SDS库中数据的基本结构和创建.释放等方法.本文将介绍其一些其他方法及实现.(转载请指明出于 ...

  4. Delphi开发的IOCP测试Demo以及使用说明。

    Delphi开发的IOCP,此为压力测试Demo和使用说明.

  5. oracle database link mysql_oracle database link使用说明

    oracle database link使用说明 作用: 将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象. 简易语法: CREATE [PUBLIC] ...

  6. 序列拼接工具Bowtie使用说明

    序列拼接工具Bowtie使用说明 2011-06-08 ~ ADMIN Bowtie是一个超级快速的,较为节省内存的短序列拼接至模板基因组的工具.它在拼接35碱基长度的序列时,可以达到每小时2.5亿次 ...

  7. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明

    关于数据库的压力测试,之前写过3篇Blog: 数据库基准测试(Database Benchmarking) 说明 数据库压力测试工具 -- Hammerdb 使用说明 数据库压力测试工具 -- Swi ...

  8. 计算机网页基础课专业,关于《计算机应用基础》课程网页下的学习资源使用说明....

    关于<计算机应用基础>课程网页下的学习资源使用说明. 关于<计算机应用基础>课程网页下的学习资源使用说明 各位同学:大家好! 07春学期已接近一半的时间了,新生对课程还需要更多 ...

  9. gh ost mysql_MySQL在线DDL gh-ost 使用说明

    3)使用说明:条件是操作的MySQL上需要的binlog模式是ROW.如果在一个从上测试也必须是ROW模式,还要开启log_slave_updates.根据上面的参数说明按照需求进行调整. 环境:主库 ...

最新文章

  1. 一套Python试题
  2. c++计算eigen随笔(10)-数组、矩阵、向量(3)
  3. OpenCV方向梯度直方图HOG的实例(附完整代码)
  4. c#操作Xml(八)
  5. 为什么我们要使用Async、Await关键字
  6. IDEA远程连接mysq数据库
  7. oracle数据库月份日期固定,oracle 日期函数介绍-数据库专栏,ORACLE
  8. Python 3 的新特性zz
  9. docker入门与部署微服务--学习笔记
  10. python函数参数生成器_python函数补充、生成器、迭代器
  11. HTML 区块、内联元素
  12. 2分钟搞定收货地址三级联动,数据易于维护,更新。
  13. 早上如何泡上一杯质量上佳的柠檬水
  14. 服务器到内地更快的美国HS网络服务器
  15. openGL绘制带纹理地球,并实现鼠标键盘控制
  16. Makefile中传递宏定义字符串给C
  17. 【c语言】两个队列实现一个栈
  18. 64个数据分析常用术语
  19. 台州爱乐搜5.18与您相约香溢大酒店
  20. 杨昕立计算机学院,华南理工学子在全国大学生数模竞赛中创历史佳绩

热门文章

  1. UVM中uvm_sequencer的方法总结
  2. Unity 3D 图形学 Shader之顶点与片段着色器(五)
  3. 英语介绍计算机,计算机英语自我介绍
  4. python分析每月销售数据_如何用Python分析销售数据
  5. python飞机大战程序导入_Python飞机大战项目的准备 导入Pygame最全攻略~
  6. 广西艺术学院2012年本科招生专业考试通知
  7. 借助于栈结构将一个单链表逆置
  8. From CodingHorror: The Long, Dismal History of ...
  9. C#指定图片添加文字——修改版
  10. 关于按键精灵url的post方法返回值为空