77百科网
当前位置: 首页 生活百科

svm分类比逻辑回归慢很多(Lindorm与其他数据库实测大比拼)

时间:2023-08-07 作者: 小编 阅读量: 1 栏目名: 生活百科

引言Lindorm是一款阿里云推出的云原生超融合多模数据库。Lindorm在阿里内部已经使用长达10年之久,是阿里集团内部数据体量最大,覆盖业务最广的数据库产品之一。目前Lindorm在阿里云上也成为了众多大数据用户的选择。本文特地选取了订单、车联网、日志和用户行为这四个在Lindorm上常见的场景,使用真实的数据集对各个数据库的压缩表现进行了评测。所有数据均为在美国高速公路国道101上采集的实际运行轨迹数据。

引言

Lindorm是一款阿里云推出的云原生超融合多模数据库。Lindorm在阿里内部已经使用长达10年之久,是阿里集团内部数据体量最大,覆盖业务最广的数据库产品之一。目前Lindorm在阿里云上也成为了众多大数据用户的选择。用户选择Lindorm,除了它丰富的多模处理能力,超强的性能之外,一个重要的点就是Lindorm对数据的压缩比非常高,能够给用户带来非常大的存储成本节省。

空说无凭,面对不同用户的不同场景,Lindorm究竟能做到多少压缩比?相对于其他开源数据库,Lindorm能有多好的表现?本文特地选取了订单、车联网、日志和用户行为这四个在Lindorm上常见的场景,使用真实的数据集对各个数据库的压缩表现进行了评测。

其中,Lindorm使用了阿里云发行最新版本,Lindorm默认使用的压缩算法是深度优化的ZSTD,并且Lindorm在ZSTD上做了字典采样优化,本文分别测试了Lindorm默认压缩和开启了字典压缩后的效果。

MySQL使用了8.0版本,MySQL虽然支持zlib压缩,但使用MySQL的用户基本不会开启压缩,因为开启压缩会对性能产生严重影响,因此我们测试的是常见的MySQL默认不开启压缩的情况

HBase使用了2.3.4版本,虽然HBase后续版本支持了ZSTD,但需要高版本Hadoop支持,同时开源集成的ZSTD并不稳定,非常容易core dump。根据我们的了解,绝大部分自建HBase用户都是使用SNAPPY压缩方法,因此本文使用HBase的SNAPPY压缩进行对比。

MongoDB使用了5.0版本,MongoDB默认使用的是SNAPPY压缩,同时MongoDB支持将压缩算法改成ZSTD,因此我们测试了MongoDB在两种压缩算法下的表现。

本文使用测试数据均来自开源数据集,大家也可以拿同样的数据集和相关语句对结果进行复现。

1.订单场景

1.1 数据准备

使用基准测试程序TPC-H,TPC-H是业界常用的一套Benchmark,由TPC委员会制定发布,用于评测数据库的分析型查询能力。

TPC-H下载

下载文件 TPC-H_Tools_v3.0.0.zip

生成数据

# unzip TPC-H_Tools_v3.0.0.zip# cd TPC-H_Tools_v3.0.0/dbgen# cp makefile.suite makefile# vim makefile################生成ORACLE数据库的脚本和数据,主要修改以下字段CC = gccDATABASE = ORACLEMACHINE = LINUXWORKLOAD = TPCH################# make--生成dbgen# ./dbgen -s 10--生成10GB数据

当前目录下可以看到多了8个*.tbl文件,就是生成好的数据文件,每一个文件对应一张表。这里选择其中的ORDERS.tbl,文件大小1.76GB,共有数据1500万行,其对应表结构如下:

Field

Type

O_ORDERKEY

int

O_CUSTKEY

int

O_ORDERSTATUS

char(1)

O_TOTALPRICE

decimal(15,2)

O_ORDERDATE

date

O_ORDERPRIORITY

char(15)

O_CLERK

char(15)

O_SHIPPRIORITY

int

O_COMMENT

varchar(79)

1.2 建表

MySQL

CREATE TABLE ORDERS( O_ORDERKEYINTEGER NOT NULL,O_CUSTKEYINTEGER NOT NULL,O_ORDERSTATUSCHAR(1) NOT NULL,O_TOTALPRICEDECIMAL(15,2) NOT NULL,O_ORDERDATEDATE NOT NULL,O_ORDERPRIORITYCHAR(15) NOT NULL,O_CLERKCHAR(15) NOT NULL,O_SHIPPRIORITYINTEGER NOT NULL,O_COMMENTVARCHAR(79) NOT NULL);

MongoDB

db.createCollection("ORDERS")

Lindorm

# lindorm-cliCREATE TABLE ORDERS( O_ORDERKEYINTEGER NOT NULL,O_CUSTKEYINTEGER NOT NULL,O_ORDERSTATUSCHAR(1) NOT NULL,O_TOTALPRICEDECIMAL(15,2) NOT NULL,O_ORDERDATEDATE NOT NULL,O_ORDERPRIORITYCHAR(15) NOT NULL,O_CLERKCHAR(15) NOT NULL,O_SHIPPRIORITYINTEGER NOT NULL,O_COMMENTVARCHAR(79) NOT NULL,primary key(O_ORDERKEY));

Hbase

create 'ORDERS', {NAME => 'f', DATA_BLOCK_ENCODING => 'DIFF', COMPRESSION => 'SNAPPY', BLOCKSIZE => '32768}

1.3 压缩效果对比

数据库

Lindorm

(默认压缩)

Lindorm

(开启字典压缩)

HBase

MySQL

MongoDB

(默认snappy)

MongoDB

(zstd)

表大小

784 MB

639 MB

1.23 GB

2.10 GB

1.63 GB

1.32 GB

2 车联网场景

使用NGSIM数据集,NGSIM 的全称为 Next Generation Simulation,是由美国联邦公路局发起的一项数据采集项目,被交通界学者广泛用于车辆跟驰换道等驾驶行为研究,交通流分析,微观交通模型构建,车辆运动轨迹预测,驾驶员意图识别,自动驾驶决策规划等。所有数据均为在美国高速公路国道101上采集的实际运行轨迹数据。

2.1 数据准备

下载文件Next_Generation_Simulation__NGSIM__Vehicle_Trajectories_and_Supporting_Data.csv,文件大小1.54GB,共有数据1185万行,每行25列。数据结构详情请见NGSIM数据集

2.2 建表

MySQL

CREATE TABLE NGSIM ( ID INTEGER NOT NULL, Vehicle_ID INTEGER NOT NULL, Frame_ID INTEGER NOT NULL, Total_Frames INTEGER NOT NULL, Global_Time BIGINT NOT NULL, Local_X DECIMAL(10,3) NOT NULL, Local_Y DECIMAL(10,3) NOT NULL, Global_X DECIMAL(15,3) NOT NULL, Global_Y DECIMAL(15,3) NOT NULL, v_length DECIMAL(10,3) NOT NULL, v_Width DECIMAL(10,3) NOT NULL, v_Class INTEGER NOT NULL, v_Vel DECIMAL(10,3) NOT NULL, v_Acc DECIMAL(10,3) NOT NULL, Lane_ID INTEGER NOT NULL, O_Zone CHAR(10), D_Zone CHAR(10), Int_ID CHAR(10), Section_ID CHAR(10), Direction CHAR(10), Movement CHAR(10), Preceding INTEGER NOT NULL, Following INTEGER NOT NULL, Space_Headway DECIMAL(10,3) NOT NULL, Time_Headway DECIMAL(10,3) NOT NULL, Location CHAR(10) NOT NULL, PRIMARY KEY(ID));

MongoDB

db.createCollection("NGSIM")

Lindorm

# lindorm-cliCREATE TABLE NGSIM ( ID INTEGER NOT NULL, Vehicle_ID INTEGER NOT NULL, Frame_ID INTEGER NOT NULL, Total_Frames INTEGER NOT NULL, Global_Time BIGINT NOT NULL, Local_X DECIMAL(10,3) NOT NULL, Local_Y DECIMAL(10,3) NOT NULL, Global_X DECIMAL(15,3) NOT NULL, Global_Y DECIMAL(15,3) NOT NULL, v_length DECIMAL(10,3) NOT NULL, v_Width DECIMAL(10,3) NOT NULL, v_Class INTEGER NOT NULL, v_Vel DECIMAL(10,3) NOT NULL, v_Acc DECIMAL(10,3) NOT NULL, Lane_ID INTEGER NOT NULL, O_Zone CHAR(10), D_Zone CHAR(10), Int_ID CHAR(10), Section_ID CHAR(10), Direction CHAR(10), Movement CHAR(10), Preceding INTEGER NOT NULL, Following INTEGER NOT NULL, Space_Headway DECIMAL(10,3) NOT NULL, Time_Headway DECIMAL(10,3) NOT NULL, Location CHAR(10) NOT NULL, PRIMARY KEY(ID)) ;

Hbase

create 'NGSIM', {NAME => 'f', DATA_BLOCK_ENCODING => 'DIFF', COMPRESSION => 'SNAPPY', BLOCKSIZE => '32768}

2.3 压缩效果对比

数据库

Lindorm(默认压缩)

Lindorm

(开启字典压缩)

HBase

MySQL

MongoDB

(默认snappy)

MongoDB

(zstd)

表大小

995 MB

818 MB

1.72 GB

2.51 GB

1.88 GB

1.50 GB

3 日志场景

使用Web服务器访问日志数据集:Zaker, Farzin, 2019, "Online Shopping Store - Web Server Logs", https://doi.org/10.7910/DVN/3QBYB5, Harvard Dataverse, V1

3.1 数据准备

在日志数据集网页上点击下载日志文件access.log,文件大小3.51GB,共有数据1036万行,一条日志示例如下:

54.36.149.41 - - [22/Jan/2019:03:56:140330] "GET /filter/27|13 مگاپیکسل,27|کمتر از 5 مگاپیکسل,p53 HTTP/1.1" 200 30577 "-" "Mozilla/5.0 (compatible; AhrefsBot/6.1;http://ahrefs.com/robot/)" "-"

3.2 建表

MySQL

CREATE TABLE ACCESS_LOG( IDINTEGER NOT NULL,CONTENTVARCHAR(10000),PRIMARY KEY(ID));

MongoDB

db.createCollection("ACCESS_LOG")

Lindorm

# lindorm-cliCREATE TABLE ACCESS_LOG( IDINTEGER NOT NULL,CONTENTVARCHAR(10000),PRIMARY KEY(ID));

Hbase

create 'ACCESS_LOG', {NAME => 'f', DATA_BLOCK_ENCODING => 'DIFF', COMPRESSION => 'SNAPPY', BLOCKSIZE => '32768}

3.3 压缩效果对比

数据库

Lindorm

Lindorm

(开启字典压缩)

HBase

MySQL

MongoDB

(默认snappy)

MongoDB

(zstd)

表大小

646 MB

387 MB

737 MB

3.99 GB

1.17 GB

893 MB

4 用户行为

使用来自阿里云天池的数据集:Shop Info and User Behavior data from IJCAI-15

4.1 数据准备

在用户行为数据集网页上点击下载data_format1.zip,选用里面的user_log_format1.csv,文件大小1.91 GB,共有数据5492万行。文件结构示例如下:

4.2 建表

MySQL

CREATE TABLE USER_LOG( IDINTEGER NOT NULL,USER_IDINTEGER NOT NULL,ITEM_IDINTEGER NOT NULL,CAT_IDINTEGER NOT NULL,SELLER_IDINTEGER NOT NULL,BRAND_IDINTEGER,TIME_STAMPCHAR(4) NOT NULL,ACTION_TYPECHAR(1) NOT NULL,PRIMARY KEY(ID));

MongoDB

db.createCollection("USER_LOG")

Lindorm

# lindorm-cliCREATE TABLE USER_LOG( IDINTEGER NOT NULL,USER_IDINTEGER NOT NULL,ITEM_IDINTEGER NOT NULL,CAT_IDINTEGER NOT NULL,SELLER_IDINTEGER NOT NULL,BRAND_IDINTEGER,TIME_STAMPCHAR(4) NOT NULL,ACTION_TYPECHAR(1) NOT NULL,PRIMARY KEY(ID));

Hbase

create 'USER_LOG', {NAME => 'f', DATA_BLOCK_ENCODING => 'DIFF', COMPRESSION => 'SNAPPY', BLOCKSIZE => '32768}

4.3 压缩效果对比

数据库

Lindorm

Lindorm

(开启字典压缩)

HBase

MySQL

MongoDB

(默认snappy)

MongoDB

(zstd)

表大小

805 MB

721 MB

1.48 GB

2.90 GB

3.33 GB

2.74 GB

5 总结

通过对比我们可以看到,无论是存储订单、车辆轨迹数据、日志数据还是用户行为数据,即使不开启字典压缩,相对于其他开源数据库,Lindorm的压缩比有明显优势。在开启字典压缩之后,Lindorm的压缩效果更是效果拔群,基本上是开源HBase的1到2倍,MongoDB的2到4倍,MySQL的3到10倍!由此可见,在使用Lindorm后,单单通过压缩优化,从存储成本来讲,就能节省数倍投入,同时Lindorm还具备数据冷热分离、纠删码、异构混合副本等多种降本技术。因此,Lindorm“存得起,看得见”的理念,并不是仅停留在纸面,而是在实际场景中,确实能给大家带来极致的低成本体验。

云原生多模数据库Lindorm_多模数据库_工业物联网_数据库-阿里云

    推荐阅读
  • 差强人意形容不太满意吗(差强人意意思介绍)

    差强人意形容不太满意吗差强人意,汉语成语,读音为chāqiángrényì。原意是吴汉勉强使人满意,能在战事不利的情况下,振奋其部下的意志。现指大体上尚能令人勉强满意。词性偏褒义,包含满意的意思。

  • 上古八大姓是哪八个(上古八大姓介绍)

    以下内容希望对你有帮助!另一说则是姬、姜、姒、嬴、妘、妫、姚、妊。实际上先秦时代的姓氏并不只有八个,比较古老且著名的姓还有商代王室的子姓,楚国公室内的芈姓等等。

  • 琉璃是什么意思(琉璃代表是什么意思)

    琉璃是什么意思琉璃,琉璃亦作“瑠璃”是用各种颜色的人造水晶为原料,是在1000多度的高温下烧制而成的。中国古代最初制作琉璃的材料,是从青铜器铸造时产生的副产品中获得的,经过提炼加工然后制成琉璃。古时由于民间很难得到,所以当时人们把琉璃甚至看成比玉器还要珍贵。琉璃被誉为中国五大名器之首、佛家七宝之一,到了明代已基本失传,只在传说与神怪小说里有记载,《西游记》中的沙僧就是因为打破一只琉璃盏而被贬下天庭的。

  • 橙汁解酒吗(橙汁的功效作用是什么)

    下面希望有你要的答案,我们一起来看看吧!橙汁富含多种有机酸、维生素,可调节人体新陈代谢,尤其对老年人及心血管病患者十分有益。橙汁具有宽肠、理气、化痰、消食、开胃、止呕、止痛、止咳等功效,可用于治疗胸闷、腹胀、呕吐、便秘、小便不畅、痔疮出血,解酒、鱼、蟹毒等。

  • 值太岁如何化解(值太岁怎么化解)

    下面内容希望能帮助到你,我们来一起看看吧!因为这会直接促使命主的自身的五行气场更加和序,从而逐步化解此次值太岁生肖劫难,促使生活变得更加幸福美满。但是此过程非常的繁琐复杂,所以在这期间一定要谨慎小心,以免对其产生冲撞、使得自身运势受损。

  • 一天短一线谚语的来历是什么(一天短一线谚语的来历)

    跟着小编一起来看一看吧!一天短一线谚语的来历是什么因夏至是继端午节之后一个重要的夏季节气,多在农历五月中下旬,夏至这天,太阳直射地面的位置到达一年的最北端,几乎直射北回归线,北半球的白昼最长,且越往北越长。老北京民间要在夏至这一天吃面条,故还有“吃过夏至面,一天短一线”的说法。

  • 世卫组织:全球烟草使用率继续下降

    2022年,全球约有12.45亿成年烟草使用者,其中男性烟草使用者超过10亿,女性烟草使用者约2.24亿。报告说,全球成年烟草使用者数量预计到2025年下降至12亿。为了保护子孙后代,确保烟草使用继续下降,世卫组织将今年的世界无烟日主题定为“保护儿童免受烟草业侵扰”。世卫组织健康促进司司长吕迪格·克雷希表示,“近年来,烟草控制取得了良好进展,但我们不能自满”。世卫组织敦促各国继续制定烟草控制政策,加大烟草控制力度。

  • 相亲都应该聊什么呢(第一次相亲该聊些什么)

    于是乎我就让他去网上找那个教男生脱单的秘籍~《东野文泽必爱记》,他其实缺少的就是一套吸引女生的方法。单身的兄弟都可以去找来学习下,东野文泽必爱记,网上就有电子书,毕竟男生的情商天生就比女生低很多,再不学点方法就只能单身一辈子了。比如男生希望女生能够对家人孝顺,不会抽烟喝酒等等。女生希望男生能够凡事对自己坦白,有什么事情可以沟通但不能隐瞒等等。

  • 五大险企前5月保费1.35万亿(8月上市险企保费榜)

    平安养老险保费同比下降15.42%在该榜单中继续垫底。太平人寿、中国人寿分别实现保费88.53亿元、358亿元,同比增长4.27%、1.13%。国华人寿8月保费同比下滑37.75%,此外,新华保险、平安寿险、太保寿险几大寿险公司8月保费同比均下降。8月财险排行榜众安在线同比增长34.91%2022年8月,6家财险公司合计实现保费收入785.02亿元,同比增长13.1%,环比增长2.3%。2022年7月,6家财险公司保费同比增长10.64%。