clickhouse语句_Siem落地方案:初识clickhouse
简述
首先,ELK是支持SIEM,一开始我也是用ELK进行数据收集、数据展示和数据分析,但是逐渐到后面,有一些功能需求使用查询语句是非常复杂,虽然ELK提供云SIEM,但是作为动手能力非常强的人(穷),就有放弃ELK这个想法。
后来某大佬说clickhouse非常香,于是就开始去了解这个东西。
clickhouse(以下简称CH)是列式数据库,作为数据库小白,当然要查询一下与传统行式数据库的区别,看起来好像列式数据库很厉害。
下图是官方对于行式和列式数据库查询的对比,可以看到行式是扫描全表,而列式数据库是直接找到相关列的数据,查询速度不言而喻。
说明一下,应用场景不同采用的架构方案不同。为什么CH会适合做SIEM呢?咱们看看官方对于CH功能特点描述
OLAP场景的关键特征
大多数是读请求(siem展示就是查询语句去查询,所以大多数是读请求)
数据总是以相当大的批(> 1000 rows)进行写入(成千上万服务器的日志量存储怕不止1千行吧)
不修改已添加的数据(siem就是要日志存储,要修改他数据干嘛)
每次查询都从数据库中读取大量的行,但是同时又仅需要少量的列(查询特定列的大量行内容)
宽表,即每个表包含着大量的列(对的,有大量的字段,这边字段有上百个)
较少的查询(确实不多,siem展示的SQL也不超过几百条查询语句)
对于简单查询,允许延迟大约50毫秒(这个是允许的,相对于ES查询,这个真香)
列中的数据相对较小:
数字和短字符串(例如,每个URL 60个字节)
处理单个查询时需要高吞吐量(每个服务器每秒高达数十亿行)
事务不是必须的(不用做事务操作)
对数据一致性要求低(这块还没有研究,目前没这个需求,以后出现再补回来)
每一个查询除了一个大表外都很小
查询结果明显小于源数据,(数据被过滤或聚合后能够被盛放在单台服务器的内存中)
那么按照这些关键特征,很满足咱们对于siem存储和查询的功能,接下来就实战看看是不是如此。
安装
官方有yum源,可以直接通过yum进行安装。
导入仓库地址信息
sudo yum install yum-utils
sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
sudo 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端口通信,并且没有密码认证
实战
CH核心是数据引擎,也就是table处理方法,我这边使用TinyLog和MergeTree,前者存储数据量最好不能过百万,用来做一些表的对比和记录;后者是可以做基于时间的时序数据库,用来后面grafana展示使用的。具体的细节可以参考这边文章:ClickHouse 快速入门开发
我这边补充一下细节,测试发现CH不支持存储过程,假如要写递归功能,抱歉不支持。不过CH定义了递归功能,针对于找爸爸的功能(子ID找父ID),说实话这个功能还是有缺陷的,测试发现,量大会出现找爸爸错误。
CH查询语句跟MYSQL差不多,大体上是一致的,不同的地方可以翻文档查
按照官方文档,我下载了他们脱敏的数据库,导入进去,有两个表。
查看其中一个表结构,都有133个列
我这边测试机器是双核8G虚拟机,查询速度3亿行数据,需要1分钟,因为列式数据库是吃内存的,所以内存越大查询速度越快。
查询两个列,可以看到速度简直无敌
聚合查询也是如此
精彩推荐
clickhouse语句_Siem落地方案:初识clickhouse相关推荐
- 1w字详解 ClickHouse漏斗模型实践方案(收藏)
作者:互联网大数据团队- Wu Yonggang 日常工作中做为数仓开发工程师.数据分析师经常碰到漏斗分析模型,本文详细介绍漏斗模型的概念及基本原理,并阐述了其在平台内部的具体实现.针对实际使用过程的 ...
- 初识Clickhouse 安装与部署(一)
初识Clickhouse 安装与部署(一) 一.简介 1.1 特性 1.2 限制 二.安装与部署 2.1 环境要求 2.2 版本选择及下载 2.3 安装 2.4 Clickhouse目录结构 2.5启 ...
- Clickhouse一级索引优化方案
文章目录 Clickhouse的应用场景 1.索引介绍 1.1.主要索引 1.2.二级索引 1.2.1.数据跳过索引 2.一级索引优化 2.1.CK的sql的优化方向 2.2.验证过程 结论: 2.3 ...
- clickhouse安装_初识ClickHouse——安装与入门
前言: 久闻 ClickHouse 大名,一直没有去详细了解.近期看了下 ClickHouse 相关文档,决定安装体验下.想了解 ClickHouse 的小伙伴可以一起跟着学习哦.本篇文章主要介绍 C ...
- 分表需要解决的问题 基于MyBatis 的轻量分表落地方案
分表:垂直拆分.水平拆分 垂直拆分:根据业务将一个表拆分为多个表. 如:将经常和不常访问的字段拆分至不同的表中.由于与业务关系密切,目前的分库分表产品均使用水平拆分方式. 水平拆分:根据分片算法将一个 ...
- iOS应用模块化的思考及落地方案(二)模块化自动构建工具的使用
1.0 iOS模块化中的问题 前文已经介绍了模块化的流程及一些常见的问题,我们在这里再次总结一下. 在工作中,当我们开始一个新项目的时候,最先考虑的就是模块化工作. 模块化工作的想法是很美好的,可是执 ...
- iOS应用模块化的思考及落地方案(一)模块的划分及模块化工作流程
1.0 什么是模块化 很多关于重构及设计模式的介绍中,经常提到的几个词语是复用及解耦. 模块化之所以被提出,也更多是为了解决这几个问题. 复用可以减少重复造轮子的情况,很容易理解的是,我们经常使用的g ...
- 开源助推进NFV发展,红帽为运营商“定制”NFV落地方案
日前,红帽公司欧洲.中东以及非洲地区的电信行业业务发展总监Nikolai Stankau和红帽公司亚太区电信业务发展总监Adam Nardella在接受采访时表示,目前运营商在引入NFV方面主要存在三 ...
- 人工智能技术结合制造业,是学术研究还是落地方案?!
飞桨中国行-零门槛AI创新应用专场来了 制造业正快速步入智能化升级的新阶段,包括生产流程.业务模式.管理方式在内的每一个环节,都将发生根本改变,越来越多的制造企业正把智能化作为推动业务增长的重要途径. ...
- 主数据管理(MDM)项目建设落地方案
01 主数据建设的术法道 随着企业信息化系统建设逐渐增多,领导.业务部门对信息系统支撑决策.管控.业务运行难度也随之提高,导致解决业务系统间的交互困难和数据多头管理不一致等问题成为信息化建设的难点和重 ...
最新文章
- tensorflow基于csv数据集实现多元线性回归并预测
- Android教程之使用LiveAndroid来测试应用
- PI=3.1415926....
- Python CNN风格迁移
- 评分卡开发方法论scorecard
- Luogu P4709 信息传递 (群论、生成函数、多项式指数函数)
- python免费学校_清华大学,的python学习路线,免费分享给小白福利
- linux lvm 磁盘管理
- 近期计算机视觉相关算法竞赛汇总—高额奖金等你来拿!
- EntityFramework之迁移操作(五)
- python 遍历文件夹 文件
- 京东购物车双11实战
- 正向代理 smtp imap_Nginx代理模式及区别
- Ubuntu18.04下使用docker制作ubuntu20.04镜像
- 李洪强iOS开发之XMPP
- 缺少 mysql 扩展_解决phpmyadmin中缺少mysqli扩展问题的方法
- foxmail本地文件夹同步服务器,foxmail同步QQ邮箱里的所有文件夹
- 15个简单的JS编码标准让你的代码更整洁
- [C语言]——打印素数(质数)
- 去除wmv等视频认证的方法
热门文章
- jpGraph学习——绘制3D饼形图
- UNIX/Linux RHEL6.3 root密码破解,GRUB加密(图文并茂)
- c# equals与==的区别(转载)
- 50款漂亮的免费网页PSD模板下载(第三季)
- php中的几个判断文件和目录的函数 is_file() is_dir() mkdir() file_exists()
- php中file文件操作函数readfile fread fgets fgetc以及不需要加fopen的file_get_contents file_put_contents file()
- 【专家访谈】测试专家 - 陈林钧,访谈问题收集中
- 《软件工程》团队第一阶段Sprint检查表
- android中的适配器模式
- systemtap初体验