调研报告之高性能数据库

标签: 无 分类: 未分类 创建时间:2021-12-15 14:19:22 更新时间:2023-10-20 11:23:28

前言

以前在学习clickhouse的时候,做过一些关于列式数据库的调研,经过实际的运行和测试,Clickhouse的查询效率确实非常的高,唯一的缺点就是对SQL语句的支持力度不是很好。

参考文章:
1.OLAP引擎 这里列举了多种不同的OLAP引擎,比如:Clickhouse、Apache Kylin、Apache Drill、TiDB、Apache Doris、Hive等,也包括了每一个的链接

TiDB和Clickhouse

(1) tidb比mysql快100倍;
(2) clickhouse比tidb又快100倍。这是因为clickhouse是列式存储,特别擅长olap。tidb和Mysql是行式存储,非常擅长oltp;
(3) tidb最大的优点是兼容 100%的mysql oltp场景,可以做数据横向扩展,解决了单机容量扩展的问题。另外,tidb能解决80%的olap场景,但剩下的20%场景是对超大表的join却没有太多的性能提升,需要借助tispark。

starrocks

原名叫DorisDB,从1.19后dorisdb改名为starrocks,我看了网上的几篇文章,好像这个数据库还和Apache Doris有些过节,至于谁是谁非,我觉得可能说不清楚了吧。知乎上有一篇文章,就是讨论Doris和Startocks,反正就是公说公有理,婆说婆有理,闹的是一塌糊涂,

参考文章:
1.Apache Doris、DorisDB傻傻分不清。。。
2.新一代极速全场景MPP数据库
3.Apache Doris
4.贝壳找房 | 全新统一的极速OLAP平台实践 我们对StarRocks与其他OLAP引擎做了全面的对比测试,对比项包括ClickHouse、Duird和Apache Doris。在StarRocks和ClickHouse单节点都使用不超过8个线程的情况下,13个查询中有9个StarRocks的性能好于ClickHouse。不限制ClickHouse线程数情况下,13个查询中有7个StarRocks性能好于ClickHouse。在多表Join模式下,对比了StarRocks和Apache Doris的表现。整体上StarRocks比Apache Doris有5-10倍的性能优势。
5.如何评价StarRocks开源?

Apache Kylin

自 2014 年 10 月开源,并于 2015 年 11 月毕业成为 Apache 软件基金会 Top-Level 项目,Apache Kylin 已经成为领先的开源大数据 OLAP 引擎。Kylin 为万亿数据提供亚秒级查询,并可以和现有的 Hadoop/Spark 及 BI 无缝集成。Kylin 是大数据版图中一个强有力的框架,也已被全球上千家组织所采用。

参考文章:
1.Apache Kylin
2.浅淡 Apache Kylin 与 ClickHouse 的对比 没有对比就没有伤害,不同的数据库应用的场景不同,选择适合自己的,才是最好的。

TiFlash

TiFlash是PingCAP开源的一款HTAP分布式数据库,是提供HTAP能力的重要组成。TiFlash框架代码是基于 ClickHouse 开发,使用 ClickHouse的方式是将它当做一个单机的Compute Runtime和Server框架,并复用了Storage Interface。

参考文章:
1.tiflash

时序数据库

时序数据的主要数据属性如下:

  • 每个数据点都包含用于索引、聚合和采样的时间戳。该数据也可以是多维的和相关的;
  • 写多读少,需要支持秒级和毫秒级甚至纳秒级高频写入;
  • 查询通常是多维聚合查询,对查询的延迟要求比较高数据的汇总视图(例如,下采样或聚合视图、趋势线)可能比单个数据点提供更多的洞察力。例如,考虑到网络不可靠性或传感器读数异常,我们可能会在一段时间内的某个平均值超过阈值时设置警报,而不是在单个数据点上这样做;
  • 分析数据通常需要在一段时间内访问它(例如,给我过去一周的点击率数据);

TDengine

Greenplum

MatrixDB

MatrixDB是全球首款同时支持在线事务处理(OLTP)、在线分析处理(OLAP)和物联网时序应用的超融合型分布式数据库产品,具备严格分布式事务一致性、水平在线扩容、安全可靠、成熟稳定、兼容PostgreSQL/Greenplum协议和生态等重要特性。为万物互联的智能时代提供坚实、简洁的智能数据核心基础设施,为物联网应用、工业互联网、智能运维、智慧城市、实时数仓、智能家居、车联网等场景提供一站式高效解决方案。

参考文章:
1.MatrixDB简介 MatrixDB的官方网站
2.揭秘 MatrixDB 数据库内核技术,可编程的数据库!
3.时序与时空数据库论坛 这是一个直播的论坛,其中有两个嘉宾谈到了MatrixDB的数据预测中的作用
4.揭秘 MatrixDB 数据库内核技术,可编程的数据库!
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。