clickhouse官方文档_Siem落地方案:初识clickhouse

简述

首先,ELK是支持SIEM,一开始我也是用ELK进行数据收集、数据展示和数据分析,但是逐渐到后面,有一些功能需求使用查询语句是非常复杂,虽然ELK提供云SIEM,但是作为动手能力非常强的人(),就有放弃ELK这个想法。

9944d191755cfa988339935d82cc9c99.png

后来某大佬说clickhouse非常香,于是就开始去了解这个东西。

clickhouse(以下简称CH)是列式数据库,作为数据库小白,当然要查询一下与传统行式数据库的区别,看起来好像列式数据库很厉害。

cdde0f14623b6f91f5f51fefb1eb3320.png

下图是官方对于行式和列式数据库查询的对比,可以看到行式是扫描全表,而列式数据库是直接找到相关列的数据,查询速度不言而喻。

df808915165562771f0b8bee461d930a.gif

fe7f24fc87a4be5ba8c6d6f4db6fee3d.gif

说明一下,应用场景不同采用的架构方案不同。为什么CH会适合做SIEM呢?咱们看看官方对于CH功能特点描述

OLAP场景的关键特征

  • 大多数是读请求(siem展示就是查询语句去查询,所以大多数是读请求)

  • 数据总是以相当大的批(> 1000 rows)进行写入(成千上万服务器的日志量存储怕不止1千行吧)

  • 不修改已添加的数据(siem就是要日志存储,要修改他数据干嘛)

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

  • 宽表,即每个表包含着大量的列(对的,有大量的字段,这边字段有上百个)

  • 较少的查询(确实不多,siem展示的SQL也不超过几百条查询语句)

  • 对于简单查询,允许延迟大约50毫秒(这个是允许的,相对于ES查询,这个真香)

  • 列中的数据相对较小:

    数字和短字符串(例如,每个URL 60个字节)

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

  • 事务不是必须的(不用做事务操作)

  • 对数据一致性要求低(这块还没有研究,目前没这个需求,以后出现再补回来)

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

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

那么按照这些关键特征,很满足咱们对于siem存储和查询的功能,接下来就实战看看是不是如此。

安装

官方有yum源,可以直接通过yum进行安装。

导入仓库地址信息

sudo yum install yum-utilssudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPGsudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64

安装CH服务端和客户端。

sudo yum install clickhouse-server clickhouse-client

安装之后,启动服务

/etc/init.d/clickhouse-server start

使用客户端进行进去,默认是走9000端口通信,并且没有密码认证

948d73fd10b96930d5751740cc46f6c9.png

实战

CH核心是数据引擎,也就是table处理方法,我这边使用TinyLog和MergeTree,前者存储数据量最好不能过百万,用来做一些表的对比和记录;后者是可以做基于时间的时序数据库,用来后面grafana展示使用的。具体的细节可以参考这边文章:ClickHouse 快速入门开发

我这边补充一下细节,测试发现CH不支持存储过程,假如要写递归功能,抱歉不支持。不过CH定义了递归功能,针对于找爸爸的功能(子ID找父ID),说实话这个功能还是有缺陷的,测试发现,量大会出现找爸爸错误。

CH查询语句跟MYSQL差不多,大体上是一致的,不同的地方可以翻文档查

按照官方文档,我下载了他们脱敏的数据库,导入进去,有两个表。

272f09e508794859ff79e56af9a53498.png

查看其中一个表结构,都有133个列

bc40e622945fc038aee9ff928f4a6b53.png

我这边测试机器是双核8G虚拟机,查询速度3亿行数据,需要1分钟,因为列式数据库是吃内存的,所以内存越大查询速度越快。

1e45e17cdd0ebb4d4ab78e5b864de2fc.png

查询两个列,可以看到速度简直无敌

c26055df3bdaeee1e4312448cf607df0.png

聚合查询也是如此

0208abd24616dcb95ec4f44948002916.png

4672599c1c0133a3e1967d3340139845.gif

精彩推荐

54f8673bdfec8da9a15b54e4f8217d2e.png 29f1de8b60468ec96a4bb72170a284d4.png 3a0fa107568a3f16ab4446e210fa8872.png

667b5aa4703bf207054d27954a56a34e.png

55dfa3784c56ffdff0fced8b851f63ab.png

8233880b0ece4cb39159ef221be88020.png

fea7af4102e6323497a2fc05cc5b6a97.gif

在互联网发展浪潮中,数据对于企业的价值是非常大的,怎么管理好数据,以及快速挖掘数据价值,共享数据价值,急需一套解决方案,在数据开发中,核心数据模型的变化是相对缓慢的,同时,对数据进行维护的工作量也非常大;但业务创新的速度、对数据提出的需求的变化,是非常快速的。数据中台的出现,就是为了弥补数据开发和应用开发之间,由于开发速度不匹配,出现的响应力跟不上的问题。数据中台解决的问题,包括:效率问题、协作问题、能力问题,数据中台是聚合和治理跨域数据,将数据抽象封装成服务,提供给前台以业务价值的逻辑概念。本课程基于真实企业数据中台建设架构进行讲解,带大家构建数据中台,通过学习完本课程可以节省你摸索的时间,节省企业成本,提高企业开发效率。课程包含几大模块:数据源管理、数据接入管理、数据质量管理、数据质量报告、数据安全管理、数据中台实战应用等,对于数据中台涉及到的业务以及技术进行详尽的讲解。本课程包含的技术:开发工具为:IDEA、WebStormFlink1.9.0ClickHouseHadoop2.6.0Hbase1.0.0Kafka2.1.0Hive1.0.0HDFS、MapReduceZookeeper、AtlasSpringBoot2.0.8.RELEASESpring MybatisMySQLVue.js、NodejsElemntUI课程亮点:1.与企业接轨、真实工业界产品2.全方位管理、治理数据3.大数据以及业务系统数据与企业接轨4.支撑业务系统数据使用以及共享5.集成IDE可视化查询6.集成元数据管理和数据血缘追溯7.ClickHouse高性能列式存储数据库8.数据中台项目应用实战9.Flink+ClickHouse技术架构10.微服务架构技术SpringBoot技术架构11.后端+大数据技术栈+前端可视化12.提供全方位的技术落地指导支持13.课程凝聚讲师多年实战经验,经验直接复制14.掌握全部内容能进行大数据用户平台的设计和实操 企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值