ClickHouse之简单性能测试

前面的文章ClickHouse之初步认识已经简单的介绍了ClickHouse,接下来进行简单的性能测试。测试数据来源于美国民用航班的数据,从1987年到2017年,有1.7亿条。

环境:

centos 6.3,32G内存,24核

下载脚本:

#!/bin/bashfor s in `seq 1987 2017`
do
for m in `seq 1 12`
do
mwget -n 128  http://transtats.bts.gov/PREZIP/On_Time_On_Time_Performance_${s}_${m}.zip
done
done

这里采用的是mwget,128个线程,mwget是wget的多线程版本。wget太慢了。关于mwget的安装,请参考:https://my.oschina.net/766/blog/156807
下载以后的数据是zip压缩包,如下:

下载完数据以后建表:

客户端登录: clickhouse-client -m,如果不加-m启用多行,那么将会报错:

CREATE TABLE ontime
(Year UInt16, Quarter UInt8, Month UInt8, DayofMonth UInt8, DayOfWeek UInt8, FlightDate Date, UniqueCarrier FixedString(7), AirlineID Int32, Carrier FixedString(2), TailNum String, FlightNum String, OriginAirportID Int32, OriginAirportSeqID Int32, OriginCityMarketID Int32, Origin FixedString(5), OriginCityName String, OriginState FixedString(2), OriginStateFips String, OriginStateName String, OriginWac Int32, DestAirportID Int32, DestAirportSeqID Int32, DestCityMarketID Int32, Dest FixedString(5), DestCityName String, DestState FixedString(2), DestStateFips String, DestStateName String, DestWac Int32, CRSDepTime Int32, DepTime Int32, DepDelay Int32, DepDelayMinutes Int32, DepDel15 Int32, DepartureDelayGroups String, DepTimeBlk String, TaxiOut Int32, WheelsOff Int32, WheelsOn Int32, TaxiIn Int32, CRSArrTime Int32, ArrTime Int32, ArrDelay Int32, ArrDelayMinutes Int32, ArrDel15 Int32, ArrivalDelayGroups Int32, ArrTimeBlk String, Cancelled UInt8, CancellationCode FixedString(1), Diverted UInt8, CRSElapsedTime Int32, ActualElapsedTime Int32, AirTime Int32, Flights Int32, Distance Int32, DistanceGroup UInt8, CarrierDelay Int32, WeatherDelay Int32, NASDelay Int32, SecurityDelay Int32, LateAircraftDelay Int32, FirstDepTime String, TotalAddGTime String, LongestAddGTime String, DivAirportLandings String, DivReachedDest String, DivActualElapsedTime String, DivArrDelay String, DivDistance String, Div1Airport String, Div1AirportID Int32, Div1AirportSeqID Int32, Div1WheelsOn String, Div1TotalGTime String, Div1LongestGTime String, Div1WheelsOff String, Div1TailNum String, Div2Airport String, Div2AirportID Int32, Div2AirportSeqID Int32, Div2WheelsOn String, Div2TotalGTime String, Div2LongestGTime String, Div2WheelsOff String, Div2TailNum String, Div3Airport String, Div3AirportID Int32, Div3AirportSeqID Int32, Div3WheelsOn String, Div3TotalGTime String, Div3LongestGTime String, Div3WheelsOff String, Div3TailNum String, Div4Airport String, Div4AirportID Int32, Div4AirportSeqID Int32, Div4WheelsOn String, Div4TotalGTime String, Div4LongestGTime String, Div4WheelsOff String, Div4TailNum String, Div5Airport String, Div5AirportID Int32, Div5AirportSeqID Int32, Div5WheelsOn String, Div5TotalGTime String, Div5LongestGTime String, Div5WheelsOff String, Div5TailNum String
) ENGINE = MergeTree(FlightDate, (Year, FlightDate), 8192)
View Code

导入数据:

for i in *.zip; do echo $i; unzip -cq $i '*.csv' | sed 's/\.00//g' | clickhouse-client  --query="INSERT INTO ontime FORMAT CSVWithNames"; done

开始查询测试:

可以看见1.7亿数据,count用了0.034秒,当然列存储数据库count都不快还搞毛。

继续测试其他的语句

从2000年到2016年每天的航班统计

SELECT DayOfWeek, count(*) AS c FROM ontime WHERE Year >= 2000 AND Year <= 2016 GROUP BY DayOfWeek ORDER BY c DESC; 

2000 - 2008年度机场延误数

SELECT Origin, count(*) AS c FROM ontime WHERE DepDelay>10 AND Year >= 2000 AND Year <= 2008 GROUP BY Origin ORDER BY c DESC LIMIT 10

这些查询都有一个范围限制,那么全部查完呢?

比如:

SELECT OriginCityName, DestCityName, count() AS c FROM ontime GROUP BY OriginCityName, DestCityName ORDER BY c DESC LIMIT 10;

可以看见依然快的不像话,哈哈。心动了没?心动了就动手安装,导入数据测试一下吧。

 

参考资料:

https://raw.githubusercontent.com/yandex/ClickHouse/master/doc/example_datasets/1_ontime.txt

 

转载于:https://www.cnblogs.com/gomysql/p/6655553.html

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

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

相关文章

mysql主从从配置详解_MySQL主从配置详解

● 本打算买个云数据&#xff0c;为我的新项目做点安全保障。阿里云&#xff0c;腾讯云转了一圈&#xff0c;两个字太贵。不就数据有备份吗&#xff0c;既然这样那我不如自己来做备份。● 家里有2个树莓派直接把mysql备份到他们上就好了&#xff0c;网上有教程&#xff0c;这就…

泛型数组

定义泛型数组 在写程序时&#xff0c;大家可能会遇到类似String[] list new String[8];的需求&#xff0c;这里可以定义String数组&#xff0c;当然我们也可以定义泛型数组&#xff0c;泛型数组的定义方法为 T[]&#xff0c;与String[]是一致的&#xff0c;下面看看用法&#…

是前端类库还是前端框架?

一、BootstrapBootstrap是一系列常用CSS和jQuery plugin的集合&#xff0c;典型的UI库&#xff0c;带给你的是栅格系统&#xff0c;是预置的按钮、表单、列表、导航、响应式等样式&#xff0c;它在你独立开发的时候非常有用。因为能节约用来设计网页的时间&#xff0c;而且这套…

mysql php pdo例_PHP的PDO操作实例

try{$dbmsmysql; //数据库类型 ,对于开发者来说&#xff0c;使用不同的数据库&#xff0c;只要改这个&#xff0c;不用记住那么多的函数$host127.0.0.1; //数据库主机名$dbNamebooks; //使用的数据库$userroot; //数据库连接用户名$pass; …

Java泛型详解:<T>和Class<T>的使用,泛型类

单独的T 代表一个类型 &#xff0c;而 Class代表这个类型所对应的类&#xff0c; Class<&#xff1f;>表示类型不确定的类 E - Element (在集合中使用&#xff0c;因为集合中存放的是元素)T - Type&#xff08;Java 类&#xff09;K - Key&#xff08;键&#xff09;V - …

HDU3183 A Magic Lamp —— 贪心(单调队列优化)/ RMQ / 线段树

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid3183 题解&#xff1a; 方法一&#xff1a;贪心。 在草稿纸上试多几次可以知道&#xff0c;删除数字中从左到右最后一位递增&#xff08;可以等于&#xff09;的数字&#xff0c;可以得到最小值&#xff0c;在这…

python入门知识大全_python基础知识有哪些

Python基础知识&#xff1a;1、引用和对象&#xff1b;2、可变数据类型和不可变数据类型&#xff1b;3、引用传递和值传递&#xff1b;4、深拷贝和浅拷贝&#xff1b;5、基本数据类型&#xff1b;6、关键字、标识符和内置函数&#xff1b;7、算术、赋值运算符等等。Python基础知…

Django开发1

Django开发1 初识Django1.安装django2.创建项目2.1 在终端2.2 Pycharm 3. 创建app4.快速上手4.1 再写一个页面4.2 templates模板4.3 静态文件4.3.1 static目录4.3.2 引用静态文件 5.模板语法//Django开发案例&#xff1a;联通新闻中心6.请求和响应案例&#xff1a;用户登录7.数…

编程式事务和声明式事物

编程式事务 声明式事物

【每日算法】基数排序算法

1&#xff09;算法简介 基数排序是一种非比较型整数排序算法&#xff0c;其原理是将整数按位数切割成不同的数字&#xff0c;然后按每个位数分别比较。由于整数也可以表达字符串&#xff08;比如名字或日期&#xff09;和特定格式的浮点数&#xff0c;所以基数排序也不是只能使…

wincc 报警记录 mysql_如何才能把WINCC报警记录中的数据通过SQL取上来-工业支持中心-西门子中国...

回答者&#xff1a; 凌波微步- 高级工程师&nbsp&nbsp第11级2009-03-09 08:54:18您可以评论本回答&#xff0c;或直接点击“提交”按钮推荐本回答...我可以取出来&#xff0c;但显示不了。我显示时用的是ms listbox 2.0控件&#xff0c;不过没成功显示出来&#xff0c;多…

AES加密算法256位密钥与128位密钥的不同之处

一、指代不同 1、256位密钥&#xff1a;AES的区块长度固定为256位&#xff0c;密钥长度则可以是256。 2、128位密钥&#xff1a;AES的区块长度固定为128位&#xff0c;密钥长度则可以是128。 二、安全性不同 1、256位密钥&#xff1a;256位密钥安全性高于128位密钥。 2、1…

Linux LNMP 环境的搭建之【Nginx的安装】

Nginx 俄罗斯人开发的一款比较强劲的web服务器,静态页面html 单机在优化得当的情况下&#xff0c;能够达到3-4W的并发,是一款比较优秀的服务器软件,在国内,有Tengine【淘宝】开发的分支 ,关于Tengine的文档,可以参考,淘宝团队的官方文档&#xff1a;http://tengine.taobao.org/…

如何把map的value转为list_Java 8 将Map转换为List

将一个Java示例转换Map为List汇总&#xff1a;Map map new HashMap<>();// Convert all Map keys to a ListList result new ArrayList(map.keySet());// Convert all Map values to a ListList result2 new ArrayList(map.values());// Java 8, Convert all Map keys…

非对称加密和对称加密的区别

一 :概述 在现代密码学诞生以前&#xff0c;就已经有很多的加密方法了。例如&#xff0c;最古老的斯巴达加密棒&#xff0c;广泛应用于公元前7世纪的古希腊。16世纪意大利数学家卡尔达诺发明的栅格密码&#xff0c;基于单表代换的凯撒密码、猪圈密码&#xff0c;基于多表代换的…

PING检查网络是否畅通

可用于检测网络畅通情况 using System.Net;using System.Net.NetworkInformation;namespace PING{class Program{static void Main(string[] args){Console.WriteLine("请输入IP");string str Console.ReadLine();Console.WriteLine(ping(str));Console.ReadLine();…

linux安装mysql不成功怎么处理_Linux上安装MySQL时出现不兼容的解决办法

Linux上安装MySQL时出现不兼容的解决办法在linux 上安装mysql rpm的时候,安装不成功MySQL-client-5.5.36-1.linux2.6.x86_64.rpm MySQL-server-5.5.36-1.linux2.6.x86_64.rpm[rootbogon develop]# rpm -ivh MySQL-server-5.5.36-1.linux2.6.x86_64.rpm准备中… ###############…

事务默认的传播属性和事务默认的隔离级别

事务的传播属性 事务的隔离级别&#xff0c;用的就是当前数据的隔离级别

倍增LCA code[vs]1036商务旅行

n个点用n-1条边连接&#xff0c;求两个点间的最短路 显然可以想到用floyd预处理&#xff0c;但复杂度过高 所以一些巨发明了LCA 为什么这类最短路问题要找最近公共祖先&#xff0c;这是一个显然的问题&#xff0c;最近公共祖先说简陋了就是在这个“树”上找一个“转折点" …

java过滤器的原理_Java 三大器之过滤器(Filter)工作原理

Filter 简介filter称为过滤器&#xff0c;可以对web 服务器管理的所有资源: Jsp, Servlet&#xff0c;静态图片文件或静态html文件等进行拦截&#xff0c;从而实现一些特殊的功能。例如实现URL级别的权限访问控制&#xff0c;过滤敏感词汇&#xff0c;压缩响应信息等高级功能。…