当前位置: 首页 > news >繁体>垂直存储数据设想

垂直存储数据设想

当遇到海量数据存储瓶颈时,除了可以将数据拆分到不同的机器,还可以先在当前服务器上构建垂直的层次存储结构,这样不单可以节约服务器资源,还可以减少分布式存储网络通信开销与风险。这也是生活中常见的解决方案:高楼大厦,立体车库等通过立体方式来节约土地。充分利用各个维度的空间。

具体方案如下:

一、建立存储的三层架构

1、缓存区

热点数据缓存在内存里,加快存储速度

2、工作区

用关系数据库来存储最新操作数据、热点数据、全局数据。

1)业务系统里用到的数据都是有关系的,所以使用关系数据库是最直接的方式,但关系数据库随着存储数据量的增长,性能会下降,所以要通过算法每天更新热点数据和将不够热的数据转移到冷库中来存储以维持关系数据库的数据量在可接受的范围内。

2)记录最新的操作数据,有需要的话还要从冷库里将相关的数据调出来作为热点数据使用。

3、冷库

1)NOSQL或硬盘文件形式来存储,存储结构为KEY-VALUE,根据数据特点还要将数据按区、块、类型这样的层级结构或扁平的模糊查找结构来存储,并建立起数据地址登记表

2)通过加硬盘的方式来扩容,扩展较灵活。

二、热度算法

1、二八原则

这是海量数据产品的特点,你的产品数据可能只有百分之二十是被使用到的,你的用户群里可能只有百分之二十是活跃的。但这百分之二十不是固定而是流动的,今天这百分之二十与明天的百分之二十可能不是同一批数据或人,所以要通过算法来更新热点数据。

2、不同的业务类型有不同的热度分析方法

例如电商的用户访问频率通常是一月几次,而社交类的用户可能频率是天天访问,但如果有些天中断了,可能就会有较长一段时间不会再访问。

转载于:https://www.cnblogs.com/ptw-share/p/6815699.html

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

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


相关文章:

  • [bzoj1042] [HAOI2008]硬币购物
  • 解密小程序码:36条放射线
  • javaweb几种常见乱码问题解决
  • PHP URL参数获取方式的四种例子
  • JavaScript 代码收集
  • AngularJS中$apply
  • mongo-connector导入数据到Es
  • Android异步载入AsyncTask具体解释
  • VS2013 update4+Cocos2d-x 3.7 Win8下安装方法及配置
  • Spark分布式安装
  • ios微信上无法自动播放音频的情况
  • Bootstrap学习之三:使用排版
  • Java面向对象(一)20170517
  • Linux下文件操作命令cat(转)
  • Simulink模块之VCO(压控振荡器)
  • Ubuntu 关闭触摸板
  • OneNET麒麟座应用开发之五:获取加速度传感器ADXL345数据
  • spring quartz执行两次问题
  • Redux零碎知识点回顾
  • 笔记3
  • [转] NOI, NOIP, IOI, ACM
  • numpy之转置(transpose)和轴对换
  • P2661 信息传递
  • 【solr基础教程之中的一个】Solr相关知识点串讲
  • Python练习5-正则表达式
  • 怎么把excel表格内的数据导入数据库?
  • Hibernate_01_初体验
  • java并发编程(1)并发程序的取消于关闭
  • hihoCoder - 1079 - 离散化 (线段树 + 离散化)
  • poj 2442 Sequence
  • bzoj 3676: [Apio2014]回文串
  • Linux ssh服务开启秘钥和密码认证
  • Spring Boot和Dubbo整合
  • ufldl学习笔记与编程作业:Linear Regression(线性回归)
  • Python-面向对象之一
  • 浅析我对代码规范的理解
  • Swift - 实现tableView单选系统样式
  • Problems with Ribbon/Feign/Zuul retry
  • 绝大多数人努力程度之低,根本轮不上拼天赋
  • GDTR与LDTR
  • c#之正则表达式
  • Makefile文件(一)_介绍
  • 高级控件 下(三)
  • ArcGIS Python实现Modis NDVI批量化月最大合成
  • crmjs区分窗口是否是高速编辑(2)
  • jQuery Validate验证框架(转载)
  • MD5生成
  • Python_代码练习_写一个判断是否为小数的函数
  • 异常处理-try catch
  • ES6中Number中的扩展