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

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

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

引言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_多模数据库_工业物联网_数据库-阿里云

    推荐阅读
  • 儿童世界地球日画报简单内容(跟着绘本去研学)

    每年的4月中旬,很多地方都会组织很多的环境保护活动。每年的4月22日是世界地球日,这是一项世界性的环境保护活动。为了提醒人们塑料对地球生命的影响,安娜成为了一名海洋生物学家,她决定开始收集塑料。活动当天可以采取绿色出行,步行、自行车、公共交通都可以。地球日从绘本开始导入,然后带孩子们一起进行一系列的活动,让他们更了解地球日的意义,明白环境保护的重要性。

  • 话后面加jpg是什么梗(这个梗真是生动形象)

    跟着小编一起来看一看吧!话后面加jpg是什么梗jpg是图片格式,jpg后缀一般在形容词后面,文字+jpg的描述形式是用文字给出一种画面感,更显生动。jpg说的简单就是静态压缩格式,gif就是动态压缩格式。一般的照相基本都是找出来的都是jpg的,因为jpg具有比较好的保持图片质量而且占用空间小的优势。

  • 翡翠原石是怎么形成的(翡翠原石形成原因)

    翡翠原石是怎么形成的岩浆在高压条件下侵入到超基性岩中的残余花岗岩浆的脱硅产物。在区域变质作用时原生钠长石分解为硬玉而形成;或者认为是在板块碰撞产生的压扭性应力和低温作用下,钠长石先形成变质程度较低的蓝闪石片岩,进一步变质成硬玉而成。在花岗岩脉和淡色辉长岩类岩脉在12至14干帕压力下,在钠的化学势高的热水溶液作用下发生交代而成。

  • 爸妈都是双眼皮孩子会是单眼皮吗(父母都是双眼皮)

    春节档电影里的成龙,没想到因为双眼皮冲上热搜!网友质疑,林凤娇和成龙都是双眼皮,而房祖名却是单眼皮,因此判定成龙割了双眼皮。因此,一对双眼皮父母,父亲的基因可能是AA或者Aa,母亲的基因也可能是AA或Aa,遗传给孩子时,父母双方的两对基因会随机组合。有网友在评论中提出疑问,自己和男朋友都是单眼皮,孩子以后有可能“负负得正”,变成双眼皮吗?

  • 量子计算的关键技术(我科学家在自旋量子精密测量上获重要进展)

    相关研究成果日前在线发表于《物理评论快报》,并被选为“编辑推荐”文章。彭新华研究组研究人员提出了Floquet自旋量子放大技术,克服了以往探测频率范围小等限制,实现了对多个频率的极弱磁场放大。这项技术得益于研究组此前提出的“自旋放大技术”和“Floquet调制技术”,将二者有机结合,从而将量子放大技术推广到Floquet自旋系统。

  • 孩子喜欢的水果拼盘又简单又好吃(非常好看的创意拼盘)

    孩子喜欢的水果拼盘又简单又好吃?以下内容大家不妨参考一二希望能帮到您!孩子喜欢的水果拼盘又简单又好吃简介:好多饭店里面的果盘,水果卖的都很贵,卖的不是水果。卖的是创意,卖的是情调。在家里自己动手也会做出很有创意的水果拼盘。

  • 猫咪最重视的5种东西(猫咪一生最重要的5件事)

    所有人都有自己一生中最重要的事情,猫咪也不例外,作为猫咪的主人你是否知道呢?下面这些5件事,是猫咪一中最重要的,希望主人可以做到!

  • 土豆和猪肉的做法大全(土豆和猪肉的烹饪方法)

    土豆和猪肉的做法大全土豆炖猪肉原料:土豆2个、五花肉400克。土豆炒猪肉原料:瘦猪肉50克,土豆150克,植物油、酱油各10克,精盐4克,葱花、姜末各2克。猪肉也切成薄片。配料:八角2颗,辣椒1个,蚝油,料酒。锅里剩少许的油,将五花肉倒入翻炒片刻,加入料酒、蚝油、酱油、糖、八角、辣椒、一小碗水,煮开后改小火再煮20分钟。(蚝油1勺,酒1勺,酱油和糖的用量可按各人口味。

  • 破晓传说打不过怎么办 破晓传说打不动怪

    破晓传说打不过怎么办?破晓传说里的战斗系统颇为复杂,很多玩家都有卡关打不过去的时候,下面小编就带来破晓传说战斗技巧分享,一起来看看吧。破晓传说战斗技巧分享到此,想要了解更多相关攻略的小伙伴可以持续关注本站,这里每天会为大家推送最新最全的攻略,一定不要错过哦。

  • 如何重新安装ie(怎么重新安装ie)

    以下内容大家不妨参考一二希望能帮到您!如何重新安装ie首先在按键盘上win+r然后输入“control”就可以打开控制面板了,也可以在菜单中打开。打开后选择程序,然后点击程序与功能命令。接着就可以查找到ie版本相关的信息,点击卸载就可以重新安装啦。