100T数据存进服务器分几步?

news2024/9/28 9:31:24

大家好,我是豆小匠。

这期来聊聊数据存储相关的问题,包括:

  1. 容量评估。
  2. 技术选型。
  3. 容灾处理。

另外,文末赠送免费定制红包封面哦!


1. 容量评估

通过对容量&性能的评估,可以把业务需求转化成技术语言描述。一般需要确认的内容有:

  1. 存量数据初始化

例如给表增加一个字段,需不需要给存量数据初始化值,初始化后占用存储空间增加多少。

  1. 数据增长率

增长率包括两个方面:1)历史增长速度。 2)业务增长率。

比如说,设计一个表,用于记录每日卖豆浆的交易数据。

根据过去一个月,每天可以卖出去100w杯豆浆,每一杯记录一条交易数据,那么历史增长速度就是100w/天。

但是,这个时候创始人说了,我们今年的目标,是每个季度,销售量翻倍。由于销售量翻倍,历史增长速度会变化,所以我们要把业务增长率考虑进容量评估里。

img

  1. 数据保留时间

大部分数据都是有时效的,确认不需要的数据,清理后不仅能节省存储空间,还可以提高查询性能。在容量评估里需要考虑业务需求和存储空间的平衡,以确定数据的保留时间。

一些小型系统,归档数据可以直接放到一个归档表,归档表删除一些不需要的字段以节省空间。但是如果业务需求允许,可以选用成本更低的存储方案,达到降本增效的效果。

img

  1. 备份数据

同样是评估成本和数据性质,决定备份的方案。


这样下来,假如说数据需要保存一年,那么容量大小 = (存量数据 + 季度一数据增长速率 * 季度一天数 + 季度二…)x 单条数据大小 x 数据压缩率 x (1 + 一定的buffer)。

容量评估的有效期可以在一年上下浮动,更远的未来,可以留给那时候的打工人。

2. 技术选型

技术选型需要考虑的问题:数据的结构和关系、性能要求(读、写、并发等)、数据规模、可用性和容错、一致性、可扩展和成本等。

回到标题,100T放到存储服务器,分为几步?

举个例子,场景是记录日志,每条日志10KB,平均QPS为1w,需要保存14天。

容量评估:

每秒写入量:QPS * 日志大小 = 10000 * 10kb = 100MB/s

总体存储容量:100MB/s * 3600s/h * 24h * 14d = 120.96TB


对于日志来说,最重要的是全文搜索能力,目前一般选用Elasticsearch、时序数据库等来处理日志数据,选择的原因:

  • 支持水平扩展。
  • 支持高性能写入。
  • 适合日志类型数据的搜索,如elasticsearch的全文搜索,时序数据库针对时间相关的查询优化等

同时,日志也支持一定的容错,不需要依赖SQL类型数据库的一些一致性特性。

回到第一部分,如果是记录豆浆交易数据,对数据一致性、高可用要求较高。而在大数据量的场景下,单机性能无法支持,可以使用集群/分布式数据库,如MySQL集群/TiDB等。

做离线数据分析时,可以把原始数据聚合到大数据存储,如Hive、ClickHouse、HBase等。

img

3. 容灾处理

容灾主要是分三步走:灾前,灾中,灾后。

灾前,可以通过冗余存储(如使用磁盘冗余阵列提供可用性和性能,分布式系统则可以通过复制或分片实现冗余)和监控等手段避免发生问题。

灾中:通过故障转移,异地多活等方式维持服务正常运转。

灾后:通过备份,恢复数据。

在平时,需要制定好应急预案和灾难恢复计划。


这期就喵到这!

领取红包封面请在公众号内回复:【2024红包封面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1407946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

上位机图像处理和嵌入式模块部署(qt插件的使用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 一个软件一般有很多的功能,但是主流程只有一个。但在软件开发的过程当中,一般来说功能是需要不断添加的,但是主…

C++ -- 入门(引用)

1.引用 1.1引用的概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 比如:李逵,在家称为"铁牛",江湖上人称&q…

sky_take_out

day01: 前端网址通过nginx访问后端网址(前后网址不一致),有三个好处: 一是提高访问速度,二是进行负载均衡,三是保障后端安全性 用md5加密了密码 后端使用knife4j调试,用Swagger生成接口文档&am…

MySQL怎么根据当前时间获取连续十二个月统计数据

需求 在某些业务场景中,需要后台获取连续十二个月的统计数据,如下图: 解决方式 1、创建一张临时表,在表中插入序号数据 该表的最大数量决定统计返回的最大条数 CREATE TABLE sys_redundancy (id bigint(22) NOT NULL AUTO_I…

搭建nodejs服务器

简单搭建nodejs服务器,用于爬虫js逆向. 1、安装镜像源 下载nrm npm install -g nrm 设置下载源:(最好使用npm源或者淘宝源) 例子:npm config set registry http://registry.npmjs.org 查看是否设置成功&#xff1a…

伊恩·斯图尔特《改变世界的17个方程》麦克斯韦方程方程笔记

它告诉我们什么? 电和磁并不会随便乱跑。旋转的电场区域会产生垂直于旋转方向的磁场。旋转的磁场区域也会产生垂直于旋转方向的电场,但方向相反。 为什么重要? 这是物理力的第一次重大统一,表明电和磁是密切相关的。 它带来了什么…

软考复习之多媒体篇

常用的计算公式 数据传输率(单位:b/s) 未压缩的数据传输率 采样频率(Hz)* 量化位数(位)* 声道数 波形声音经过数字化后的信息数据量(单位:字节) 声音信号数据量 数据传输率 * …

Excel导出警告:文件格式和拓展名不匹配

原因描述: Content-Type 原因:Content-Type,即内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件,这就是经常…

HTML 入门手册(一)

目录 HTML介绍 1-基础语法 单标签 双标签 整体结构 2-标题和水平线 标题 水平线 3-段落和换行 段落 换行 4-列表 无序列表 有序列表 嵌套列表 5-div和span div span 6-格式化标签 粗体 斜体 下划线中划线 上标和下标 7-超链接(a标签) 链接到URL 链接…

网络原理-初识(1)

目录 网络发展史 独立模式 网络互连 局域网LAN 广域网WAN 网络通信基础 IP地址 概念 格式 端口 概念 格式 认识协议 概念 作用 五元组 网络发展史 独立模式 独立模式:计算机之间相互独立; 网络互连 随着时代的发展,越来越需要计算机之间相互通信,共享软件和数…

精通 VS 调试技巧,学习与工作效率翻倍!

​ ✨✨ 欢迎大家来到贝蒂大讲堂✨✨ ​ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 ​ 所属专栏:C语言学习 ​ 贝蒂的主页:Betty‘s blog 1. 什么是调试 当我们写代码时候常常会遇见输出结果不符合我们预…

echarts绘制多条刻度线仪表盘,文本内容带背景且颜色渐变,echarts绘制复杂仪表盘

option {series: [{// 最外圈type: gauge,radius: 80%,center: [50%, 90%],startAngle: 180,endAngle: 0,min: 0,max: 100,progress: {show: false,width: 8},pointer: {show: false},axisLine: {show: false,lineStyle: {width: 50,color: [// axisTick使用的是这里的颜色[0.…

算法通关村番外篇-面试150题五

大家好我是苏麟 , 今天带来LeetCode面试题的哈希题目 . 哈希表 202. 快乐数 描述 : 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为…

HarmonyOS鸿蒙学习基础篇 - 基本语法概述

书接上文 HarmonyOS鸿蒙学习基础篇 - 运行第一个程序 Hello World 基本语法概述 打开 entry>src>main>ets>pages>index.ets 代码如下代码详细解释如下: Entry //Entry装饰的自定义组件将作为UI页面的入口。在单个UI页面中,最多可以使用…

如何在Linux上部署Docker容器

一、什么是docker? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不…

超分之ESRGAN

Esrgan:增强型超分辨率生成对抗网络。Esrgan: Enhanced super-resolution generative adversarial networks.In: ECCVW. (2018)Xintao Wang, Ke Yu, Shixiang Wu, Jinjin Gu, Yihao Liu,Chao Dong, Yu Qiao, and Chen Change Loy. 文章目录 摘要一、引言二、相关工作…

C. Peaceful Rooks

思路:如果是本来就位于对角线上的点,那么自然就没有必要进行移动了,否则就是在浪费操作次数。 那么不在对角线上的点一定需要操作一次,竖直移动或者水平移动到对角线上。 但是我们还发现可能会有n个点构成一个环,就像样…

基于Springboot的大学生心理健康管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的大学生心理健康管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体…

前端上传大文件使用分片上传

前提:分片上传针对于一些大的文件、普通大小的文件使用element中的上传组件可以实现效果,例如几G的文件就会比较卡,所以这时候就需要用到分片上传~ 前端及后端分片上传笔记 效果:(上传进度展示) 效果:(上传成功的效果展示) 1、 新建一个上传组件 2、使用vue-simple-…

thinkphp5向数据表插入数据并且获得id

$id db(数据表名)->insertGetId([status>1]); 直接...打印$id就是这条插入的数据的id了