searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

doris2.1新特性variant数据类型与json数据类型对比

2024-09-25 09:31:50
19
0

测试版本:Doris2.1.2版本(3fe+5be

过去 Apache Doris 在应对复杂半结构化数据的存储和分析处理时,一般有两种方式:

1、一种方式是用户提前预定好表结构,加工成宽表,在数据进入前将数据解析好,这种方案的优点是写入性能好,查询也不需要解析,但是使用不够灵活、对表结构发起变更增加运维、研发的成本。

2、使用 Doris 中的 JSON 类型、或是存成 JSON String,将原始 JSON 数据不经过加工直接入库, 查询的时候,用解析函数处理。优点是不需要额外的数据加工、预定义表结构拍平嵌套结构,运维、研发方便,但存在解析性能以及数据读取效率低下的问题。

 

主要对第二点进行测试,基于github events一个小时的数据,数据文件大小605M

建表方式:

VARIANT数据类型建表


String数据类型建表


Json数据类型建表


 

导入时间对比:

 

VARIANT

string

json

导入时间

2min37s

8s

7s

 

 

压缩率对比:

 

VARIANT

string

json

压缩前(M)

605

605

605

压缩后(M)

321

156

129

压缩比率

53%

26%

21%

 

查询性能对比:

单列分组排序(一层嵌套)

 

VARIANT

string

json

p1

0.05

0.03

0.03

p2

0.04

0.05

0.04

p3

0.04

0.04

0.03

sum

0.13

0.12

0.1

过滤聚合统计次数

p4

0.03

0.36

0.65

p5

0.03

0.34

0.65

p6

0.03

0.34

0.63

sum

0.09

1.04

1.93

多列过滤分组聚合排序(解析两层嵌套)

p7

0.05

0.17

0.32

p8

0.05

0.19

0.32

p9

0.05

0.17

0.31

sum

0.15

0.53

0.95

 

结论:

1、 VARIANT的数据导入相比jsonstring数据类型导入慢,因为json串的字段数过多,而在VARIANT类型的列创建了倒排索引,可能导致导入的速度变慢。

2、 压缩率在单列string和单列json存储压缩率更好,VARIANT的压缩率低于单列。

3、 在查询性能上,VARIANT整体情况是另外两种存储的4-8

0条评论
0 / 1000
李****帅
3文章数
0粉丝数
李****帅
3 文章 | 0 粉丝
李****帅
3文章数
0粉丝数
李****帅
3 文章 | 0 粉丝
原创

doris2.1新特性variant数据类型与json数据类型对比

2024-09-25 09:31:50
19
0

测试版本:Doris2.1.2版本(3fe+5be

过去 Apache Doris 在应对复杂半结构化数据的存储和分析处理时,一般有两种方式:

1、一种方式是用户提前预定好表结构,加工成宽表,在数据进入前将数据解析好,这种方案的优点是写入性能好,查询也不需要解析,但是使用不够灵活、对表结构发起变更增加运维、研发的成本。

2、使用 Doris 中的 JSON 类型、或是存成 JSON String,将原始 JSON 数据不经过加工直接入库, 查询的时候,用解析函数处理。优点是不需要额外的数据加工、预定义表结构拍平嵌套结构,运维、研发方便,但存在解析性能以及数据读取效率低下的问题。

 

主要对第二点进行测试,基于github events一个小时的数据,数据文件大小605M

建表方式:

VARIANT数据类型建表


String数据类型建表


Json数据类型建表


 

导入时间对比:

 

VARIANT

string

json

导入时间

2min37s

8s

7s

 

 

压缩率对比:

 

VARIANT

string

json

压缩前(M)

605

605

605

压缩后(M)

321

156

129

压缩比率

53%

26%

21%

 

查询性能对比:

单列分组排序(一层嵌套)

 

VARIANT

string

json

p1

0.05

0.03

0.03

p2

0.04

0.05

0.04

p3

0.04

0.04

0.03

sum

0.13

0.12

0.1

过滤聚合统计次数

p4

0.03

0.36

0.65

p5

0.03

0.34

0.65

p6

0.03

0.34

0.63

sum

0.09

1.04

1.93

多列过滤分组聚合排序(解析两层嵌套)

p7

0.05

0.17

0.32

p8

0.05

0.19

0.32

p9

0.05

0.17

0.31

sum

0.15

0.53

0.95

 

结论:

1、 VARIANT的数据导入相比jsonstring数据类型导入慢,因为json串的字段数过多,而在VARIANT类型的列创建了倒排索引,可能导致导入的速度变慢。

2、 压缩率在单列string和单列json存储压缩率更好,VARIANT的压缩率低于单列。

3、 在查询性能上,VARIANT整体情况是另外两种存储的4-8

文章来自个人专栏
doris的应用场景
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0