zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

【项目】如何通过总的用户数据计算单台kafka所需磁盘容量?

Kafka项目计算数据 如何 用户 通过 磁盘
2023-09-14 09:14:14 时间

一、背景

项目中需要用到Kafka来承接车机上来的接口数据,然后再转存到数据库,客户反馈,需要对生产环境中的Kafka的存储容量进行评估。以下是具体的算法内容

二、Kafka的Topic信息与Kafka架构信息

(1)Kafka的Topic信息

在这里插入图片描述

(2)Kafka的架构信息

Kafka架构为集群架构,购买的是阿里云的云Kafka
三台kafka的 连接地址:
K1.alikafka.aliyuncs.com:9092,
K2.alikafka.aliyuncs.com:9092,
K3alikafka.aliyuncs.com:9092

Kafka的副本数量,默认保存三份 (生产需要三个副本,沙箱1个即可)
Kafka保存的天数为 默认的7天

三、开始计算

Step1、计算用户活跃数

假设总的用户数据是60W,
根据经验,用户活跃数为用户总数的15%,即 9W

Step2、评估峰值的业务数据

只要计算出最高业务数据的总频率 ,那么其他业务数据就不用算
那如何评估出峰值的业务数据呢?有两个方案

方案1: 结合日常生活的经验得出

因为这个业务与日常生活场景还是相差比较远的,因此采用方案2

方案2:结合目前有的测试数据进行估值计算

算法如下
查看最高事件的频率是哪个?

select count(*) from1
select count(*) from2
...
select count(*) from 表N

得出表N是具有最多的数据量的表,那么它就是峰值的业务数据。

Step3、计算产生这么多业务数据需要多少天

select *  from 表N order by create_time asc

计算开始时间:2022-10-28
计算结束时间:2023-1-4
总共历经 2 个月 = 31*2 = 62天

Step4、计算一台车机数据总数

select distinct(vin) from 表N

计算出来,这么多数据是由43台车机产生的
43 台车机数据总数 :1258246 条
1 台车机数据总数 :29261 条

实际车机阈值是多少?因为存在业务数据的不确定性,因此无法正确评估

Step5、查看一条数据的大小

一条数据的大小: 800byte (取JSON数据,拿txt查看的大小)

Step6、计算每天一台车机产生的数据大小

62天1 台车机产生的数据大小:29261 条数据 * 800byte = 23409228 byte
每天1 台车机产生的数据大小:23409228 / 62天 = 377568 byte
每天1 台车机产生的数据大小(byte换算成K):377568 byte /1024 = 368K

Step7、计算活跃车机的数据量大小

一台车机总的数据量大小 :370K(四舍五入)
9W活跃车机的数据量大小:370K * 9W = 33300000K = 32519M

Step8、结合Kafka架构计算

32519M * 3个副本数量 = 97558 M
97558 M * 保存多少天 (默认的7天) = 682910 M

Step9、计算一台Kafka机器所需的磁盘容量

预估需要的磁盘容量:666.904296875 (四舍五入700G)
硬盘的容量提集群(三个机器)一共700G

一台机器250G左右就够了