ClickHouse 数据查询
可以从官网下载官网提供的数据集hits_v1和visits_v1,对应的下载路径为:
https://datasets.ClickHouse.com/hits/partitions/hits_v1.tar
https://datasets.ClickHouse.com/visits/partitions/visits_v1.tar
下载之后对应两个压缩包:
代码语言:javascript复制hits_v1.tar
visits_v1.tar
将以上两个压缩包进行上传到node1节点/softwar目录下,并解压到目录”/var/lib/ClickHouse”中。
代码语言:javascript复制[root@node1 ~]# cd /software/
[root@node1 software]# tar xvf hits_v1.tar -C /var/lib/ClickHouse
[root@node1 software]# tar xvf visits_v1.tar -C /var/lib/ClickHouse
重启node1节点上的ClickHouse,查询数据:
代码语言:javascript复制[root@node1 ~]# service ClickHouse-server restart
[root@node1 ~]# ClickHouse-client
node1 :) show databases;
┌─name─────┐
│ datasets │
│ default │
│ system │
└──────────┘
#查询表 hits_v1中的数据量
node1 :) select count(*) from datasets.hits_v1;
┌─count()─┐
│ 8873898 │
└─────────┘
#查询表 visits_v1中的数据量
node1 :) select count(*) from datasets.visits_v1;
┌─count()─┐
│ 1676861 │
└─────────┘
ClickHouse完全使用SQL作为查询语言,能够以Selete查询语句从数据库中查询数据,虽然ClickHouse拥有优秀的查询性能,但是我们也不能滥用查询,掌握ClickHouse支持的各种查询子句很有必要,使用不恰当的SQL语句进行查询不仅带来低性能,还可能带来系统不可预知的错误。例如:我们使用select * 查询数据时,通配符*对列式存储的ClickHouse没有一点好处,针对一张拥有133个列的数据表hits_v1,查询2000行数据时,使用*与不使用*速度相差几乎300倍:
代码语言:javascript复制#使用*查询2000行数据
node1 :) select * from datasets.hits_v1 limit 2000;
2000 rows in set. Elapsed: 4.306 sec. Processed 2.00 thousand rows, 2.23 MB (464.50 rows/s., 518.76 KB/s.)
#不使用*查询2000行数据
node1 :) select WatchID from datasets.hits_v1 limit 2000;
2000 rows in set. Elapsed: 0.016 sec. Processed 2.00 thousand rows, 16.00 KB (126.48 thousand rows/s., 1.01 MB/s.)
此外需要注意,ClickHouse中对字段的解析大小写敏感,select a与select A表示的语义不同,下篇文章我们学习下ClickHouse中支持的查询语句,敬请期待。