学习
实践
活动
专区
工具
TVP
写文章

vivo 云服务海量数据存储架构演进实践

随着 vivo 云服务业务发展,云服务用户量增长迅速,存储在云端的数据量越来越大,海量数据给后端存储带来了巨大的挑战。云服务业务这几年最大的痛点,就是如何解决用户海量数据存储问题。 为了解决海量数据存储问题,云服务将分库分表的 4 板斧:水平分表、垂直分表、水平分库、垂直分库,全部进行了实践。 1、水平分表 荆棘之路 1:浏览器书签、便签单库单表,单表数据量已过亿级怎么办? 当空间存在瓶颈后,我们对各模块数据存储空间分布进行了分析,情况如下: 单库磁盘容量5T,联系人数据占用存储空间2.75T(55%),短信数据占用存储空间1T(20%),其他所有模块数据共占用存储空间500G 如果采用常规的扩容方案,那我们将面临着海量存量数据的迁移重新路由问题,成本太大。 最终线上联系人数据库进行数据压缩的效果如下: 六、写在最后 本文介绍了云服务随着业务发展,海量数据存储所带来的挑战,以及云服务在分库分表、数据数据压缩上的一些经验,希望能提供借鉴意义。

73100

海量数据存储访问瓶颈解决方案-数据切分

这些海量数据存储访问成为了系统设计使用的瓶颈,而这些数据往往存储数据库中,传统的数据库存在着先天的不足,即单机(单库)性能瓶颈,并且扩展起来非常的困难。 如果单机数据库易于扩展,数据可切分,就可以避免这些问题,但是当前的这些数据库厂商,包括开源的数据库MySQL在内,提供这些服务都是需要收费的,所以我们转向一些第三方的软件,使用这些软件做数据的切分,将原本在一台数据库上的数据 那么我们如何做数据切分呢? 数据切分 数据切分,简单的说,就是通过某种条件,将我们之前存储在一台数据库上的数据,分散到多台数据库中,从而达到降低单台数据库负载的效果。 ; 二次扩展时,数据迁移、维护难度。 无论是垂直切分,还是水平切分,它们解决了海量数据存储和访问性能问题,但也随之而来的带来了很多新问题,它们的共同缺点有: 分布式的事务问题; 跨库join问题; 多数据源的管理问题 针对多数据源的管理问题

86061
  • 广告
    关闭

    对象存储COS专场特惠,新用户专享存储包低至1元

    一站式解决数据备份、共享、大数据处理、线上数据托管的云端存储服务

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    海量数据存储硬件平台解决思路

    网络平台部以构建敏捷、弹性、低成本的业界领先海量互联网云计算服务平台,为支撑腾讯公司业务持续发展,为业务建立竞争优势、构建行业健康生态而持续贡献价值! 如此海量的规模需要多大的存储空间,采用怎样的软硬件解决方案,小编有幸请到我们的存储硬件技术大拿守锋和大家一起聊聊腾讯的存储硬件架构及有关存储的技术应用。 ,所以对于用户来说希望存储的有效期是无限期的,但设备的寿命是有限的,如何能够长期保持用户的数据无丢失将是技术上非常的挑战。 3.1 采用容量存储部件提高存储密度 简单粗暴地采购容量的HDD硬盘,减少单位采购成本和提高存储密度,看似简单,其实也不简单。 使用块RAID技术,基本原理就是先把一个的磁盘化成很多小块,这些小块集群内的其它服务器的硬盘上的小块做备份和RAID,如下图所示: ?

    1.7K50

    海量数据存储技术(cpu制造瓶颈)

    对于海量数据的处理 随着互联网应用的广泛普及,海量数据存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。 为什么要数据切分 上面对什么是数据切分做了个概要的描述和解释,读者可能会疑问,为什么需要数据切分呢?像 Oracle这样成熟稳定的数据库,足以支撑海量数据存储查询了?为什么还需要数据切片呢? 这种情况显然是应该避免的,因为它导致相同内容被存储到不同缓冲中去,降低了系统存储的效率。分散性的定义就是上述情况发生的严重程度。好的哈希算法应能够尽量避免不一致的情况发生,也就是尽量降低分散性。 为了具有可扩展性和高可用性特点,集群的必须具备以下两能力: (1) 负 载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。 集群的分类 集群主要分成三类:高可用集群(High Availability Cluster/HA), 负载均衡集群(Load Balance Cluster),高性能计算集群(High Performance

    39510

    什么是海量数据 海量数据数据的关系

    在人们还没有搞明白大数据的情况下,又出现了一个海量数据海量数据数据的关系是什么,他们有什么关联吗?还是大数据的升级版才是海量数据,今天来聊一下海量数据数据的关系吧! image.png 1、什么是海量数据,什么是大数据 所谓的海量数据从字面上理解就是数据多到已经用大海来形容了,现实中也确实如此。 2、海量数据数据的关系 海量数据数据的关系其实是相互的,海量数据可以包含在大数据里面,同样大数据也可以包含在海量数据里面。 海量数据需要找合适的数据来进行计算时,大数据也可以将海量数据分解并帮助其计算完成。所以海量数据数据的关系是相互的,在对方有困难的时候都会伸出手来帮助,海量数据数据的关系一定是不错的。 海量数据数据通俗的说就是,海量数据有时候不能一个人完成的事情会找帮手一起完成,而大数据则是喜欢把一个大任务分解成多个小任务再逐一完成。

    2.6K30

    关于云计算的海量数据存储模型

    关于云计算的海量数据存储模型 引言 随着越来越多的人使用计算机,整个网络会产生数量巨大的数据,如何存储网络中产生的这些海量数据,已经是一个摆在面前亟待解决的问题。 ,实现海量数据的分布式存储。 2.3 基于云计算的海量数据存储模型 根据数据海量特性,结合云计算技术,特提出基于云计算的海量数据存储模型,如所示在中,主服务控制机群相当于控制器部分,主要负责接收 应用请求并且根据请求类型进行应答。 存储节点机群相当于存储器部分,是由庞大的磁盘阵列系统或是具有海量数据存储能力的机群系统,主要功 能是处理数据资源的存取。HDFS 和Hbase 用来将数据存储或部署到各个计算节点上。 云计算系统相比,云存储可以认为是配置了容量存储空间的一个云计算系统。

    34210

    IM系统海量消息数据是怎么存储的?

    一、消息相关的主要场景 1、存储和离线消息。 现在的IM系统,消息都要落地存储。这样如果接收消息的用户不在线,等他下次上线时,能获取到消息数据。 三、存储消息关键点 1、离线消息 离线消息读取频繁(写也有一定压力),但是检索逻辑简单(参看《一个海量在线用户即时通讯系统(IM)的完整设计》拉取离线消息章节)。 我们采用内存数据库(Redis)存储,主要结构使用SortedSet(可以有更高效的存储结构,但Redis不支持)。对于群消息,采用扩散写方式(一条群消息给每个群成员都写一份)。 2、历史消息 历史消息的访问频率低,但是每条消息都需要存储,我们采用关系型数据库(MySQL)存储,重点考虑写入效率。对于群消息,采用扩散读方式(每条群消息只写一条记录)。 离线消息读取策略参看《一个海量在线用户即时通讯系统(IM)的完整设计》拉取离线消息章节。理论上读取离线消息的时间复杂度为O(log(N)+M), N 为离线消息的条数, M 为一次读取消息的条数。

    4.1K10

    1.8亿条海量Txt数据存储MySQL实践

    0.导语 最近出去旅游了,嗨皮了嗨皮,明天上班,开始做作业,今日将1.8亿数据存储的方式进行总结,欢迎大家拍砖! 预告:后面推送大数据伪分布式从零搭建到1.8亿海量数据从Mysql至HBase数据转存技术分析应用! 1.搭建MySQL数据库 电脑环境为Ubuntu16.04系统。 #启动 sudo service mysql start #停止 sudo service mysql stop #服务状态 sudo service mysql status 2.导入海量GPS数据 导入数据之前,根据字段描述编写SQL语句进行创建数据表操作。 字段描述: 数据以ASCII文本表示,以逗号为分隔符,以回车换行符(0x0D 0x0A)结尾。 另外,loadinsert的不同还体现在load省去了sql语句解析,sql引擎处理,而是直接生成文件数据块,所以会比Insert快很多. 4.出租车轨迹数据的分析 4.1 统计总记录数、统计出租车数量

    1K20

    Hadoop | 海量数据Hadoop初识

    ---- 是什么 Hadoop是一个使用JAVA开发的开源框架,是一个可以分析和处理海量数据的软件平台。它允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据。 2003年Google发表了一篇论文谷歌文件系统GFS(google File System),google公司为了存储海量搜索数据而设计的专用分布式文件系统,可运行在普通的廉价硬件上。 HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。 HDFS的设计特点是: 大数据文件,非常适合上T级别的大文件存储。 MapReduce的关键元素: Client:切分文件,访问HDFS,NameNode(JobTracker)交互获取文件位置,DataNode(TaskTracker)交互读写数据 JobTracker 另外,对于没有项目需求的童鞋们,小媛在面试时被问到了大量的大数据题目,主要都与MapReduce有关,有面试相关需求的童鞋记得重点关注MapReduce原理应用鸥!

    20310

    海量数据查询方案mysql_Mysql海量数据存储和解决方案之二—-Mysql分表查询海量数据

    关键词:分库分表,路由机制,跨区查询,MySQL 数据变更,分表数据查询管理器线程技术的结合,Cache 前面已经讲过Mysql实现海量海量数据存储查询时,主要有几个关键点,分表,分库,集群,M-S, 分库是如何将海量的Mysql数据放到不同的服务器中,分表则是在分库基础上对数据现进行逻辑上的划分。 MySQL对于海量数据按应用逻辑分表分数据库,通过程序来决定数据存放的表。但是 跨区查询是一个问题,当需要快速查找一个数据时你得准确知道那个数据存在哪个地方。 海量数据查询时,还有很重要的一点,就是Cache的应用。不过是不是Cache在任何时候都是万能贴呢?不一定。Cache也命中率,维护等问题。 被查询的名字服务器在它的本地数据中寻找所需数据。如果没有找到答案,它就在本地数据中找出所要查询的名字服务器最接近的名字服务器的名字和地址,并作为指示返回给查询者,帮助它把解析过程进行下去。

    46510

    【鹅厂网事】海量数据存储硬件平台解决思路

    如此海量的规模需要多大的存储空间,采用怎样的软硬件解决方案,小编有幸请到我们的存储硬件技术大拿守锋和大家一起聊聊腾讯的存储硬件架构及有关存储的技术应用。 ,所以对于用户来说希望存储的有效期是无限期的,但设备的寿命是有限的,如何能够长期保持用户的数据无丢失将是技术上非常的挑战。 3.1 采用容量存储部件提高存储密度 简单粗暴地采购容量的HDD硬盘,减少单位采购成本和提高存储密度,看似简单,其实也不简单。 使用块RAID技术,基本原理就是先把一个的磁盘化成很多小块,这些小块集群内的其它服务器的硬盘上的小块做备份和RAID,如下图所示: 这个时候,当业务访问数据时,可以从不同的磁盘上同时获取有效数据并组合在一起 欢迎关注公众帐号“鹅厂网事”,我们给你提供最新的行业动态信息、腾讯网络服务器最接地气的干货分享,还有一波互动交流板块和有奖活动正在筹备当中,需要您的热情参与哦,敬请期待!

    17730

    腾讯海量存储CDN的自动化运维

    9月14-15日,GOPS全球运维大会上海站圆满举行,为期两天的运维盛宴,为各位运维人带来了相互交流和学习的绝佳平台,来自腾讯技术工程事业群(TEG)架构平台部的裴泽良给大家带来了「腾讯海量存储CDN (内含高清PPT),请点击下方「腾讯技术课小程序」卡片即可查看: 同时附上整理好的演讲稿: 裴泽良,来自腾讯技术工程事业群的架构平台部,从事运营系统相关的建设工作超过8年,参与建设了腾讯云CDB、腾讯海量文件存储系统 腾讯架构平台部是做什么的 腾讯架构平台部提供了微信QQ聊天的图片,朋友圈图片,QQ音乐里面的歌曲,腾讯游戏,应用宝里面的app的下载,腾讯云的COS对象存储,点播,直播,以及腾讯视频的点播,直播,这些产品背后的海量存储 对于海量的运营来说,管控平台是运营系统操作生产机的唯一途径,绝不允许有人再通过expect直接ssh这种方式来操作生产机,所以管控平台是自动化运营中非常基础重要的一环。 在未来,我们会在运维安全方面继续探索,在AI ops方面持续迈入,以及持续深挖运营中海量数据的价值。 ?

    87010

    Python海量数据的生成处理

    文章目录 Python海量数据的生成处理 概述 生成1亿条数据 直接读取测试 加载数据 查看占用内存大小: 确定重复次数的最大值 生成10亿条数据 直接读取测试 加载数据 通过分块加载数据 加载每个块的统计结果 通过分组聚合重置排序获取IP数量的值 Python海量数据的生成处理 参考:https://blog.csdn.net/quicktest/article/details/7453189 概述 生成 由于生成1亿条数据没压力,现在生成5亿条数据 将: if __name__ == '__main__': from time import ctime print(ctime()) 10.197.76.210 7292 38627 10.197.233.73 7286 11341 10.197.138.168 7282 校验结果是否正确 df22["IP"].sum() 输出如下: 500000000 原始数量一致 ,表示过程没有问题,到此,基于pandas的海量数据处理顺利完成。

    12620

    NewSQL数据对象块存储原理应用

    最后,分布式数据库方案则使用分布式数据库中的对象机制,将元数据对象统一存放在数据库中,在支持批次管理、版本管理、流程管理等元数据管理特性时不需要借助额外第三方数据库进行支持。 在同类开源分布式数据库中,SequoiaDB是唯一一款原生集成行存储存储双引擎的数据库。 当用户需要管理海量的小文件(例如照片、音视频、文档、图片等)时,SequoiaDB的双存储引擎特性能够帮助用户快速搭建一个高性能、高可用的内容管理影像平台系统。 图3:LOB元数据数据文件结构映射 在建立集合的过程当中,对象存储必须依附于普通集合存在,一个集合中的对象仅归属于该集合,不能被另外一个集合管理。 当用户上传一个对象时,会经历几次散列操作。 图7:读操作吞吐量对比 七、结论 SequoiaDB的对象机制主要为用户存储海量中小型文件所设计。

    91650

    如何依托腾讯云完成海量数据存储和备份

    在我们提供的安防监控体系中,每个监控系统每天会产生几个 T 的视频数据,这些未经处理的视频数据一般需要存储几个星期,经过剪辑和压缩处理的视频数据可能需要归档存储三个月至半年。 如此大量的视频数据,如果在本地备份并归档,将长期占用硬盘存储空间,不仅扩容麻烦,而且很容易出现单点故障,难以保证数据备份/归档安全。 因此,我们考虑依托公有云服务,来实现海量音视频监控数据存储、备份以及归档。 由于业务特性(安防监控的数据存储要求安全、海量、上传下载快),所以我们对现有的公有云产品做了调研,了解到,腾讯云的对象存储目前可支持:1、理论上无限存储空间;2、可以存储无限的单个文件;3、对每一个文件都进行 在将存储和上传/下载业务迁移上云后,我们随之考虑引入关于智能语音、视频格式转化、万象优图图片处理和人脸识别等腾讯云大数据 AI 产品,以期能拓展安防监控的业务领域,深挖行业潜力,通过集成创新来推动产品升级

    2.8K10

    存储协议介绍存储资源盘活系统

    通俗点说SCSI协议就是一个存储设备服务器之间接口通讯的一个规范。 实施iSCSI SAN有以下几个优势: 1.简化整合:iSCSI SAN 可以将数据整合到一个分层系统中,该系统自动利用网络上的所有存储设备来平衡负载。 通过专用于存储数据的 iSCSI 阵列,可以显着减轻网络其余部分的负担。为最终用户提供更强大的吞吐、更好的可靠性和更快的速度。 EqualLogic建立在虚拟化对等存储架构之上,为小型到大型组织简化和自动化数据存储;Compellent是基于可扩展 SAN 架构和虚拟化的企业级存储解决方案,使用强大的数据移动引擎,帮助组织更有效地管理数据 它能够安装在任意Linux服务器上,可以把各服务器中分散的磁盘整合成高性能的存储资源池,通过分布式双控制器架构保证了低延迟、高可用、易拓展的特性;通过完善的控制台、命令行API来统一调度管理所有存储资源

    51530

    面对海量数据存储,如何保证HBase集群的高效以及稳定

    内容来源:2018 年 09 月 15 日,平安科技数据平台部大数据高级工程师邓杰在“中国HBase技术社区第五届MeetUp ——HBase应用发展”进行《HBase应用实践》的演讲分享。 IT 咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。 HBase集群方面现在是由300多台物理机组成,数据量大概有两个P两个pb左右。 解决了用户哪些问题 HBase的应用上,用户可能首先要面临的是海量数据存储问题,然后是对性能和可靠性的关注。 HBase中相同的列簇数据是存在一个目录的,不同列簇数据分开进行存储。在有多个列簇的情况下进行检索,如果只是用key检索,而没有指定列簇,索引是要独立去检索的。 数据迁移 数据迁移有几种情况。一种是HBase集群之间的迁移,一种是将Hive数据迁移到HBase。 ?

    69030

    裴泽良:海量存储CDN的自动化运维

    我们主要有两大平台,存储跟CDN,简单来说,存储是用户在app上面上传下载图片、文件、视频这类数据存储分为接入层、逻辑层、分布式存储层,这里面每层都有容灾、负载均衡,实际结构会比ppt中复杂的多。 ID,特性ID是数字型的,然后把该维度指标组合的时间序列值该特性ID做为(key, value)存在单独的KV系统中,把特性ID该维度指标组合的关系做为配置数据存在DB中。 多维度模型好是好,也会带来一些明显问题,软件只会上报最基本的各种维度指标组合的数据,而用户却需要查询各种维度汇聚的数据,譬如前面说的软件上报了上海电信图的流量,而用户却需要查看电信整体的流量。 如果数据是存在MySQL中,直接select sum group by就可以了,但这样的海量数据显然不适合存关系数据库,我们是存在KV系统中。 对于海量的运营来说,管控平台是运营系统操作生产机的唯一途径,绝不允许有人再通过expect直接ssh这种方式来操作生产机,所以管控平台是自动化运营中非常基础重要的一环。 ?

    8.3K70

    ReceiverTracker 数据产生存储

    对应的store方法有多种形式: pushSingle: 对应单条小数据,需要通过BlockGenerator聚集多条数据后再成块的存储 pushArrayBuffer: 对应数组形式的数据 pushIterator : 对应 iterator 形式数据 pushBytes: 对应 ByteBuffer 形式的块数据 除了pushSingle需要通过BlockGenerator将数据聚集成一个块的时候再存储,其他方法都是直接成块存储 in block updating thread", e) } } 将 currentBuffer 赋值给 newBlockBuffer 重新为currentBuffer分配一个新对象,以供存储新的数据 private val blockPushingThread = new Thread() { override def run() { keepPushingBlocks() } } supervisor 存储数据块 numRecords, metadataOption, blockStoreResult) trackerEndpoint.askWithRetry[Boolean](AddBlock(blockInfo)) 存储数据块有对应的

    45010

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 对象存储

      对象存储

      腾讯云对象存储数据处理方案主要针对于存储于腾讯云对象存储COS中的数据内容进行处理加工,满足压缩、转码、编辑、分析等多种诉求,激活数据价值。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注腾讯云开发者

      领取腾讯云代金券