.NET轻松处理亿级数据ClickHouse介绍

2019 年 7 月 12 日 DotNet

(给DotNet加星标,提升.Net技能


转自:邵佳楠
cnblogs.com/ShaoJianan/p/11155188.html

前言


我是在17年就听说过Clickhouse,那时还未接触过亿数据的运算,那时我在的小公司对于千万数据的解决方案还停留在分库分表,最好的也是使用mycat做的集群。


这些解决方案都比较复杂,毕竟通常来说那些需要大量存储的数据基本都是像日志,流水等不需要修改的数据,像客户人员等需要经常维护的信息一般项目也就几万左右,在这些不是非常重要的数据上耗太多时间我个人是觉得有点浪费(但毕竟还是要的嘛),直到我到了新公司才重新拾起了对Clickhouse的学习,下面主要介绍下安装以及下篇会介绍一些简单的用法。


一、ClickHouse简介 


文档地址:https://clickhouse.yandex/docs/zh/


CH是由俄罗斯“熊哥”开源的一套用于联机分析(OLAP)的列式数据库管理系统(DBMS),它通过针对性的设计,力图解决海量多维度数据的查询性能问题。


小白程序员轻松上手,安装和操作就像mysql一样简单。


适用于:


  • 大多数是读请求


  • 每次写入大于1000行的数据(不适用于单条插入)


  • 不修改已添加的数据


  • 每次查询都从数据库中读取大量的行,但是同时又仅需要少量的列


  • 宽表,即每个表包含着大量的列


  • 较少的查询(通常每台服务器每秒数百个查询或更少)


  • 对于简单查询,允许延迟大约50毫秒


  • 列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节)


  • 处理单个查询时需要高吞吐量(每个服务器每秒高达数十亿行)


  • 事务不是必须的


  • 对数据一致性要求低


  • 每一个查询除了一个大表外都很小


  • 查询结果明显小于源数据,换句话说,数据被过滤或聚合后能够被盛放在单台服务器的内存中


应用场景


  • 公交轨迹(我自己的应用场景)


  • 消费转账流水


  • 日志记录


  • 天气数据


  • ......


二、ClickHouse安装


安装方式有多种(暂未支持windows上安装),官方文档上介绍的安装方式感觉有点复杂,下面介绍一种较为简单的安装方式,通过rpm安装包进行安装。


Git地址:https://github.com/Altinity/clickhouse-rpm-install


系统环境:CentOS 7.5


1、下载包需要curl支持,当前系统没有的话需要先通过yum安装一下


sudo yum install -y curl


2、下载安装脚本


curl -s https://packagecloud.io/install
/repositories/altinity
/clickhouse/script.rpm.sh | sudo bash


3、检查clickhouse安装包全不全


sudo yum list 'clickhouse*'

Available Packages
clickhouse-client.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-common-static.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-compressor.x86_64 1.1.54336-3.el7 Altinity_clickhouse
clickhouse-debuginfo.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-mysql.noarch 0.0.20180319-1 Altinity_clickhouse
clickhouse-server.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-server-common.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-test.x86_64 18.1.0-1.el7 Altinity_clickhouse


4、检查没问题的话开始安装服务端和客户端


sudo yum install -y clickhouse-server clickhouse-client


5、检查安装后的包全不全


sudo yum list installed 'clickhouse*'

Installed Packages
clickhouse-client.x86_64 18.1.0-1.el7 @Altinity_clickhouse
clickhouse-common-static.x86_64 18.1.0-1.el7 @Altinity_clickhouse
clickhouse-server.x86_64 18.1.0-1.el7 @Altinity_clickhouse
clickhouse-server-common.x86_64 18.1.0-1.el7 @Altinity_clickhouse


6、安装成功后首先运行服务端,默认会使用config.xml作为配置文件,也可以通过--config=xxx来指定配置文件


sudo service clickhouse-server start


7、客户端运行,这里的命令啥的和mysql很像,一些命令语法都是差不多的,下面简单试下


clickhouse-client
localhost :) show databases
SHOW DATABASES
┌─name────┐

default

system

└─────────┘

2 rows in set. Elapsed: 0.030 sec.


这时服务端会有响应信息


ClickHouse client version 18.1.0.
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 18.1.54396.


三、可视化界面安装,官方文档有介绍很多种工具,这里介绍Tabix


上面介绍的操作方式都是在linux上进行操作的,结果什么都需要通过终端进行查看,很不方便,好在有第三方可视化Web界面工具

Tabix:https://github.com/tabixio/tabix



Tabix使用安装非常方便,有本地安装和无安装两种方式


1、无安装方式最简单,直接打开官方提供的地址:http://ui.tabix.io/#!/login



在上面输入你Clickhouse运行的地址、端口、登录名、密码等信息就好了。


2、本地安装方式


本地需要Web服务器,所以先安装一个nginx,具体安装不再细说,网上资料有很多,nginx配置


server {
listen 80;
server_name ui.tabix.io;
charset utf-8;
root /var/www/tabix.ui/build;
location / {
if (!-f $request_filename) {
rewrite ^(.*)$ /index.html last;
}
index index.html index.htm;
}
}


然后下载最新的安装文件:https://github.com/smi2/tabix.ui/releases,并且解压将build文件夹拷贝到nginx对应的目录下,然后浏览运行看下效果,具体登录操作和上面一样。


四、扩充


使用Prometheus进行系统的监控


使用Grafana监控数据库的性能


推荐阅读

(点击标题可跳转阅读)

解决ASP.NET站点首次访问慢的方法

.NET Core2.1秒杀项目系列 Docker入门

.NET理论基础+实战控制台程序实现AutoFac注入


看完本文有收获?请转发分享给更多人

关注「DotNet」加星标,提升.Net技能 

好文章,我在看❤️

登录查看更多
1

相关内容

.NET 框架(.NET Framework) 是由微软开发,一个致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的软件开发平台。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
Python地理数据处理,362页pdf,Geoprocessing with Python
专知会员服务
113+阅读 · 2020年5月24日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【实用书】流数据处理,Streaming Data,219页pdf
专知会员服务
76+阅读 · 2020年4月24日
【大规模数据系统,552页ppt】Large-scale Data Systems
专知会员服务
60+阅读 · 2019年12月21日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
携程用ClickHouse轻松玩转每天十亿级数据更新
DBAplus社群
11+阅读 · 2019年8月6日
俄罗斯Yandex公司ClickHouse团队访问计算所
中国科学院网络数据重点实验室
13+阅读 · 2019年6月12日
重点实验室系列报告-ClickHouse Introduction and Deep Dive
中国科学院网络数据重点实验室
9+阅读 · 2019年6月5日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
超级!超级!超级好用的视频标注工具
极市平台
8+阅读 · 2018年12月27日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
51+阅读 · 2018年12月20日
基于 Storm 的实时数据处理方案
开源中国
4+阅读 · 2018年3月15日
33款可用来抓数据的开源爬虫软件工具 (推荐收藏)
数据科学浅谈
7+阅读 · 2017年7月29日
Arxiv
20+阅读 · 2019年11月23日
Arxiv
35+阅读 · 2019年11月7日
Geometric Graph Convolutional Neural Networks
Arxiv
10+阅读 · 2019年9月11日
Deep Graph Infomax
Arxiv
17+阅读 · 2018年12月21日
Arxiv
4+阅读 · 2018年4月29日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
Python地理数据处理,362页pdf,Geoprocessing with Python
专知会员服务
113+阅读 · 2020年5月24日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【实用书】流数据处理,Streaming Data,219页pdf
专知会员服务
76+阅读 · 2020年4月24日
【大规模数据系统,552页ppt】Large-scale Data Systems
专知会员服务
60+阅读 · 2019年12月21日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
相关资讯
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
携程用ClickHouse轻松玩转每天十亿级数据更新
DBAplus社群
11+阅读 · 2019年8月6日
俄罗斯Yandex公司ClickHouse团队访问计算所
中国科学院网络数据重点实验室
13+阅读 · 2019年6月12日
重点实验室系列报告-ClickHouse Introduction and Deep Dive
中国科学院网络数据重点实验室
9+阅读 · 2019年6月5日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
超级!超级!超级好用的视频标注工具
极市平台
8+阅读 · 2018年12月27日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
51+阅读 · 2018年12月20日
基于 Storm 的实时数据处理方案
开源中国
4+阅读 · 2018年3月15日
33款可用来抓数据的开源爬虫软件工具 (推荐收藏)
数据科学浅谈
7+阅读 · 2017年7月29日
Top
微信扫码咨询专知VIP会员