2021-01-14 TiDB-4-1业务场景评估(运输的货物体积明细)

2021-01-14 TiDB-4-1业务场景评估(运输的货物体积明细)

廖涛-周志亮

 

TiDB:tidb-z770skbgxw-tidb.tidb-z770skbgxw-hb.jvessel2.jdcloud.com -P 4000

grafana:http://tidb-z770skbgxw-grafana.tidb-z770skbgxw-hb.jvessel2.jdcloud.com:3000

 

 

解决方案:

#############################################################

方案一

1、tidb:16C*64G 2个节点

2、tikv:16C*64G*2T 7个节点

3、pd:16C*64G 3个节点

4、Monitor :16C*64G 1个节点

#############################################################

 

 

#########################################################

2021-01-14 TiDB-4-1业务场景评估

#########################################################

TiDB-4-1业务场景评估

(1)当前业务的痛点 & 考虑 TiDB 的原因

运输货物体积明细数据量大,并且在快速增长。

目前是四个节点,每个节点分了四个库,每个库分了32张表,

研发人员维护、运维成本比较高,并且由于数据量的增长,导致磁盘使用率报警,后续面临扩容,成本也比较高。

目前单节点mysql四组库,都是一主一备一从,3*4*16C/64.0G/3T,一共192C。磁盘36T.。目前磁盘总空间最高90%,最低87%。里面包含2张表。本次需要迁移的表占用空间60%左右。

每个节点申请一套tidb集群,总计两套。

TiDB分布式数据库,tikv方便扩容,研发人员维护运维成本也比较低。高度兼容Mysql,应用迁移成本也比较低。

(2)数据容量

1)当前的数据容量

1.3T*4=5.2T

2)未来 3~5年的增长量

每月增长了1.3T

 

(3)单表数据量

单表数据量最大550w。

 

(4)请求类型:

1)写入:应用采用的是单条写入。

 

同步历史数据使用蜂巢写入数据。

 

2)查询:等值查询或范围查询或者其他业务特点

只有等值查询。存在sum。

A、能否标注下,当前环境中,会进行这些的表的表结构信息。

主键id采用seq生成。

表结构:

 

CREATE TABLE `payable_goods` (

`id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '主键id',

`business_code` varchar(50) NOT NULL DEFAULT '' COMMENT '业务单号,委托书、车次任务明细等',

`bill_type` int(10) NOT NULL DEFAULT 0 COMMENT '单据类型',

`bill_class` varchar(10) NOT NULL DEFAULT '' COMMENT '运单分类、转运单类型、大件运单类型',

`bill_sub_type` varchar(10) NOT NULL DEFAULT '' COMMENT '运单子类型、转运单运输方式',

`customer_type` int(10) NOT NULL DEFAULT 0 COMMENT '商家类型',

`trust` int(10) NOT NULL DEFAULT 0 COMMENT '是否信任商家0 不信任1信任',

`bill_code` varchar(50) NOT NULL DEFAULT '' COMMENT '单据号',

`package_no` varchar(50) NOT NULL DEFAULT '' COMMENT '包裹号',

`package_num` int(10) NOT NULL DEFAULT 0 COMMENT '包裹数',

`package_total_num` int(10) NOT NULL DEFAULT 0 COMMENT '包裹总件数',

`original_weight` decimal(20,4) NOT NULL DEFAULT 0.0000 COMMENT '原始重量kg',

`original_volume` decimal(20,4) NOT NULL DEFAULT 0.0000 COMMENT '原始体积cm3',

`correct_volume` decimal(20,4) NOT NULL DEFAULT 0.0000 COMMENT '修正体积cm3',

`share_volume` decimal(20,4) NOT NULL DEFAULT 0.0000 COMMENT '分摊体积cm3',

`waybill_sign` varchar(500) NOT NULL DEFAULT '' COMMENT '运单打标',

`send_pay` varchar(500) NOT NULL DEFAULT '' COMMENT '订单打标',

`evn` tinyint(1) NOT NULL DEFAULT 0 COMMENT '数据类型,0:生产、1UAT、2TEST',

`remark` varchar(200) NOT NULL DEFAULT '' COMMENT '备注',

`create_user` varchar(50) NOT NULL DEFAULT '' COMMENT '创建人',

`update_user` varchar(50) NOT NULL DEFAULT '' COMMENT '更新人',

`create_time` datetime NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT '创建时间',

`update_time` datetime NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT '更新时间',

`is_delete` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否有效0有效1无效',

`ts` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '时间戳',

PRIMARY KEY (`id`),

UNIQUE KEY `uniq_bill_code` (`bill_code`,`bill_type`,`business_code`),

KEY `idx_business_code` (`business_code`,`is_delete`,`share_volume`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='货物明细表';

 

 

3)读写比:

读/写:1/10

4)是否有大数据平台全量抽取数据?

大数据平台离线全量抽取数据。

 

5)是否有定期的业务跑批?

实时写入,凌晨会存在跑大批量数据。

 

(5)原架构:

原架构是怎样的,如果是分库分表,那么使用的中间件是什么?

根据业务单号分库。4个实例,每个实例4个库,一共16个库。

分库分表中间件使用sharding-jdbc

(6)qps & tps(总量)(写入)

qps:高峰:306656平峰: 100000

tps:高峰:961 平峰:80

(7)RTO & RPO

RTO:故障恢复时间的目标

RPO:容忍数据丢失的量 不允许丢失

(8)其他

系统级别:0 级系统

 

SQL语句整理及说明:

##############################

SQL1:

 

select

sum(share_volume)

from payable_goods

where

business_code=#{po.businessCode,jdbcType=VARCHAR}

and is_delete=0

 

business_code有索引,查询量

######################################

SQL2:

select

id, business_code, bill_type, bill_class, bill_sub_type, customer_type, trust, bill_code,

package_no, package_num, package_total_num, original_weight, original_volume, correct_volume,

share_volume, waybill_sign, send_pay

from payable_goods

where

business_code=#{po.businessCode,jdbcType=VARCHAR}

and is_delete=0

 

查询结果list,结果最大2w条左右。每天查询10w次左右。

posted on 2021-04-27 07:19  Sunnynanbing  阅读(87)  评论(0编辑  收藏  举报

导航