基于特定数据Oracle、ClickHouse、ES存储比较

笔者在工作中遇到一种情况,有一批数据需要和其他表进行各种复杂计算、并表操作,输出统计值。一般情况,类似场景都会使用Oracle视图进行处理。但本次场景发现做关联和计算后,使用视图查询效率非常低,甚至达到了无法忍受的地步(有时1min以上)。于此同时,现在OLAP数据库比较火,所以就特定场景从效率和存储上选取Oracle、ClickHouse、ElasticSearch做了一次简单的对比。

01

测试集说明与准备

由于本身业务场景是一个并表操作,使用的测试数据集有一个特点,即首先有近30列,其次每行数据基本上只有个别字段有差异,多数列重复度比较高。数据集是1000条原始数据,通过视图构建初350w条数据。

数据样例(类似只有个别几列数据不相同)

1 aaa ...... 1 1.5
2 aaa ...... 1 3
3 aaa ...... 1 2
4 bbb ...... 1 30
5 bbb ...... 1 12

测试主机配置

均是虚拟机 4c 8g 500G

02

测试步骤

一、Oracle 测试

1、数据准备

从vw_test_list视图中导入数据到实体表test_detail中。

Insert into test_detail select * from vw_test_list t ;

2、查看存储大小

select * from

(select t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) "占用空间(M)"

from dba_segments t

where t.segment_type='TABLE'

group by OWNER, t.segment_name, t.segment_type) t

where t.segment_name='test_detail'

3、测试查询速度

select * from test_detail t where t.test_title like '%测试数据集AAA%'

二、ClickHouse测试

1、构建数据表

注意点:

1、clickhouse客户端对回车敏感,所以如果在文本中编辑完成后,需要替换掉’\n’

2、Clickhouse使用mergetree引擎时需要指定一个date类型的字段定义主键。

2、数据加载

从oracle中导出数据,使用click-client进行数据导入

cat data.csv | clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO test_detail FORMAT CSV";

3、查看占用空间

select table as "表名",sum(rows) as "总行数",formatReadableSize(sum(data_uncompressed_bytes)) as "原始大小",formatReadableSize(sum(data_compressed_bytes)) as "压缩大小",round(sum(data_compressed_bytes) / sum(data_uncompressed_bytes) * 100, 0) "压缩率" from system.parts where table in('test_detail') group by table;

4、测试查询效率

SQL与Oracle一致

三、ElasticSearch测试

1、数据导入

使用Logstash进行数据导入

2、查看占用空间

使用 Get 请求

http://localhost:9200/_cat/indices?v

3、测试查询效率

使用Get请求

http://localhost:9200/dwzq/_search?pretty=true&size=2000

param:

{

"query": {

"match": {

"WARNING_TITLE": "%测试数据集AAA%"

}

}

}

03

结果比较

整体对比数据存放量与查询速度:

Oracle ClickHouse ElasticSearch
数据存放量 1.5g 45m 1.1g
查询速度 12.219s 0.527s 0.298s

04

结论与总结

本次测试只是针对特定数据集进行测试,不具备普遍性,且也没有对这oracle、clickhouse、es做特定优化,所以只能大致反应出一些结论。整体面对大宽表,clickhouse的数据压缩能力还是很强大的。同时查询速度也可以接受。在测试过程中发现,clickhouse占用机器内存比较多。

clickhouse号称分析能力杠杠的,后期会将原oracle上的分析、并表操作迁移至clickhouse并进一步对比分析。

cifar10数据集测试有多少张图_基于特定数据集的Oracle、ClickHouse、ES测试报告相关推荐

  1. cifar10数据集测试有多少张图_图神经网络的ImageNet?斯坦福开源百万量级OGB基准测试数据集...

    机器之心原创 作者:思.一鸣 在满是「MNIST」这样的小数据里,图神经网络也需要「ImageNet」这样的大基准?近日,斯坦福大学的 Jure Leskovec 教授在 NeurlPS 2019 大 ...

  2. cifar10数据集测试有多少张图_pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)...

    首先这是VGG的结构图,VGG11则是红色框里的结构,共分五个block,如红框中的VGG11第一个block就是一个conv3-64卷积层: 一,写VGG代码时,首先定义一个 vgg_block(n ...

  3. 寺冈labelnet使用说明_基于imagenet数据集的ResNet50模型训练示例

    基于imagenet数据集的ResNet50模型训练示例 训练前准备 数据集获取 本训练示例以imagenet数据集为例,从imagenet官方网站http://www.image-net.org/获 ...

  4. 编程随想 关系图_基于机器学习的可再编程超表面成像仪

    原文Machine-learning reprogrammable metasurface imager,发表于Nature Communications,第一作者为Lianlin Li,通讯作者为C ...

  5. r中gglot怎么组合多张图_最终版本Science级组合图表绘制

    简介 ggcor 是 厚哥最近的作品,功能完全代替了前两次的你终于可以做这张图和重大升级的两个science组合图表绘制.这里我也为大家带肋实战教程,总体来说厚哥这个ggcor包用起来还是挺方便的,将 ...

  6. 数据挖掘_基于balance-scale数据集的简单分类任务验证性实验

    目录 一,题目描述 二,实验准备 1,数据集下载 1.1 常用数据集链接 1.2 UCI数据集 1.3 Kaggle 2,所需基础知识 2.1 分类的方法 2.2 去重 2.3 扩增数据集 2.4 特 ...

  7. r中gglot怎么组合多张图_继电器组合扫盲篇

    好多小伙伴留言说,经常看到一些继电器组合,但是不知道是做什么用的,也不知道是不是定型组合,有什么用,怎么命名的?下面咱们就这些问题开展延伸,有需要的小伙伴可以先收藏,懂得多的可以留言区里补充. 先来一 ...

  8. 秀米svg点击显示另一张图_公众号排版怎么做?点击图片出现另一张图片是怎么弄的?...

    怎么在公众号后台排版 过去小编使用第三方编辑器,同步或复制排版好的文章到公众号后台时,总能遇到格式错乱,或者样式复制不过来的问题,不仅操作流程繁琐,还需要花时间去调整文章排版,令人头疼. 后来,小编在 ...

  9. cnn生成图像显著图_基于CNN与图像前背景分离的显著目标检测

    基于 CNN 与图像前背景分离的显著目标检测 东野长磊 ; 万文鑫 [期刊名称] <软件导刊> [年 ( 卷 ), 期] 2020(019)001 [ 摘 要 ] 为 了 解 决 计 算 ...

最新文章

  1. 服务器硬件电路设计书籍,家庭网关硬件接口电路设计大全——电路精选(3)...
  2. python字符串中find函数_Python之字符串常用花哨玩法
  3. lduan SCCM 2012 介绍及SQL部署(一)
  4. 继承的CSS类在Chrome开发者工具里的显示
  5. 重复运行JUnit测试而没有循环
  6. 苏宁css代码生成器,【前端】06 - rem + less + 媒体查询 - 制作苏宁首页
  7. Qt 串口类QSerialPort 使用笔记
  8. XML解析-Dom4j的DOM解析方式更新XML
  9. Kudu : NonRecoverableException: illegal replication factor 2 (replication factor must be odd)
  10. Factorization Machines 学习笔记(二)模型方程
  11. 吴恩达深度学习课程第四章第二周编程作业(pytorch实现)
  12. 飞思卡尔16位单片机(四)——GPIO输入功能测试
  13. windows下无npcap驱动导致golang获取网卡失败问题
  14. 机器学习中各分类算法的优缺点比较
  15. XTU 设置教程 自动化 睡眠 休眠
  16. 用前端框架开发一款APP要多少钱
  17. 如何使windows系统环境变量的改变即时生效
  18. python获取地图上经纬度_Python从地图上划出经纬度
  19. 【Rust日报】2021-09-05 perseus:完全支持 SSR 和 SSG 的 Rust 高端前端开发框架
  20. 开源项目github

热门文章

  1. HubSpot company数据在UI上的展示和通过API方式进行获取
  2. try to navigate from button to line item page
  3. How SAP Fiori application is embedded in web client ui
  4. 使用WordPress的Kyma plugin同Kyma断开连接的实现
  5. SAP ABAP实用技巧介绍系列之Debug XSLT transformation
  6. How is HashMap return type handled to be converted to a json string
  7. 什么是Cadence call
  8. SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子
  9. 如何使用Kubernetes里的NetworkPolicy
  10. oracle估算大小,Oracle 估算數據庫大小的方法