大数据应用之双色球算奖平台总体设计历史数据存储篇

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介:

作者:张子良

版权所有,转载请注明出处

1.1 引子:文件OR数据库

  历史期次的双色球选注数据的存储,采用什么样的格式比较好呢?这需要重点从三个方面考虑,一、文件访问方便吗?二、文件服务器空间够用吗?三、软硬件故障环境下,如何保障数据的可用性。基于这几个方面的考虑,到底是采用文件存储还是采用数据库存储呢?本文,从传统和前沿技术两个角度给出了两种相应的解决方案。

1.2 文件存储

1.2.1 三大问题

  根据上一篇《大数据应用之双色球算奖平台总体设计数据规模估算篇》分析,双色球单期次数据的存储规模在7G左右,记录数在2亿条左右。可以考虑以文本文件的方式进行存储,这里面面临三大问题,一、单个文件过大的问题,访问不便,文本文件一般来讲超过200M,使用常规文本文件阅读器打开,都会成为问题,各位可以自行尝试。二、历史期次存储空间问题,技术总是在发展的,目前一般的服务器存储空间,单台服务器硬盘配置个NT,从技术和成本角度,都不会成为障碍,双色球每周三期,考虑到节假日的因素,每年约156期,156*7=1092,所需空间约1T。三、数据高可用性问题,传统单点存储方式的缺点,不做说明,考虑一个极端,硬盘坏了,或者服务器宕机,数据怎么访问?

1.2.2 传统方案

  问题的存在,不代表没有解决的方法,一切软件问题的技术解决方案,其实都是在各种妥协中寻求平衡点而已。当然总有无法平衡的时候,而这时总会有技术方面的突破,有需求才有动力。传统的方式,针对问题一,可以按照地域或者期次进行文件夹组织,按照投注站进行文件命名,不同投注站的单独期次的文件存放到同一个文件中,这样做的好处是单个文件的大小变小了,读取成为可能,缺点是你要去管理大量的小文件。针对问题二、如果考虑一台主机就能存个三年五载的数据,不妨搞个磁盘阵列,或者多加几块T级的存储硬盘。这么做的好处是空间问题得到解决了,缺点是仍然面临IO读取速度的问题。针对问题三、可以采用磁带机,或者物理隔离的冗余备份,考虑到数据的特点,数据一次写入,不会发生变更,所以即使是刻盘的方式都是能够解决问题的,这么做自然能做到保障数据的可用性,但是同样的存在问题,那就是即时可用性,无论什么原因,我必须停下当前的工作,重新进行数据的导入和加载。

1.2.3 前沿技术

  如果双色球历史数据存储的问题,结合最新的分布式存储(HDFS),会得到怎么样的效果呢?我们不妨仔细的考虑一下。如果采用分布式单文件存储,每一期作为一个文件,可以很好的解决存储空间和高可用性的问题,但是分段读取还是一个障碍,除非你一次想使用整个文件。所以还是要妥协,那就是把文件按照上一节中提到的方式进行切分。只是考虑业务分析的需求,粒度可以控制在以地域为单位或者以投注站为单位,粒度过细则会涉及到HDFS文件分块的问题(64M)。

1.3 数据库存储

1.3.1 核心问题

  考虑到双色球投注数据的特点,每一个选注为一个独立的数据单元,一条记录。采用关系型数据库进行存储的好处很明显,就是结构清晰,访问方便。但是由于数据规模的问题,单表存储2亿条记录,如果采用传统关系型数据库,面临的核心问题就是单表记录数过大的问题。

1.3.2 传统技术-分区&分表

  历史的因素,关系型数据一致面临大数据应用领域的挑战,当然也衍生出来许多的解决办法,比如说分区,比如说分表。分区的核心思想在于增加单表的空间,而分表的核心思想则在于分而治之。但是都无法逃避单点访问受限的问题,再怎么变,也要受控于RDMS服务器的性能。

1.3.3 前沿技术-NoSQL

  如果采用No-SQL技术(Hbase)又会是怎么样的情形呢?我们以期次为单位组织表结构,每期一个文件,以投注站编号和流水号为rowkey,以红球为family1,以篮球为family2。根据Hbase的特点,则既可以解决记录数的问题,也可以解决访问并发访问性能的问题(Hbase文件存储采用HDFS)。同时Hbase基础之上有很多分布式并行计算的工具可用,可以很好的协调多服务器的并行计算。

1.4 对比分析

  前文已述,很喜欢No-SQL方式的实现,个人认为是目前最为恰当的方式。引玉抛砖,还是多听听各位大牛的意见吧。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
20天前
|
数据可视化 关系型数据库 MySQL
基于python大数据的的海洋气象数据可视化平台
针对海洋气象数据量大、维度多的挑战,设计基于ECharts的可视化平台,结合Python、Django与MySQL,实现数据高效展示与交互分析,提升科研与决策效率。
|
3月前
|
存储 数据采集 搜索推荐
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
本篇文章探讨了 Java 大数据在智慧文旅景区中的创新应用,重点分析了如何通过数据采集、情感分析与可视化等技术,挖掘游客情感需求,进而优化景区服务。文章结合实际案例,展示了 Java 在数据处理与智能推荐等方面的强大能力,为文旅行业的智慧化升级提供了可行路径。
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
|
3月前
|
存储 监控 数据可视化
Java 大视界 -- 基于 Java 的大数据可视化在企业生产运营监控与决策支持中的应用(228)
本文探讨了基于 Java 的大数据可视化技术在企业生产运营监控与决策支持中的关键应用。面对数据爆炸、信息孤岛和实时性不足等挑战,Java 通过高效数据采集、清洗与可视化引擎,助力企业构建实时监控与智能决策系统,显著提升运营效率与竞争力。
|
27天前
|
传感器 人工智能 监控
拔俗多模态跨尺度大数据AI分析平台:让复杂数据“开口说话”的智能引擎
在数字化时代,多模态跨尺度大数据AI分析平台应运而生,打破数据孤岛,融合图像、文本、视频等多源信息,贯通微观与宏观尺度,实现智能诊断、预测与决策,广泛应用于医疗、制造、金融等领域,推动AI从“看懂”到“会思考”的跃迁。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
Java 大视界 -- Java 大数据机器学习模型在自然语言生成中的可控性研究与应用(229)
本文深入探讨Java大数据与机器学习在自然语言生成(NLG)中的可控性研究,分析当前生成模型面临的“失控”挑战,如数据噪声、标注偏差及黑盒模型信任问题,提出Java技术在数据清洗、异构框架融合与生态工具链中的关键作用。通过条件注入、强化学习与模型融合等策略,实现文本生成的精准控制,并结合网易新闻与蚂蚁集团的实战案例,展示Java在提升生成效率与合规性方面的卓越能力,为金融、法律等强监管领域提供技术参考。
|
3月前
|
存储 人工智能 算法
Java 大视界 -- Java 大数据在智能医疗影像数据压缩与传输优化中的技术应用(227)
本文探讨 Java 大数据在智能医疗影像压缩与传输中的关键技术应用,分析其如何解决医疗影像数据存储、传输与压缩三大难题,并结合实际案例展示技术落地效果。
|
3月前
|
机器学习/深度学习 安全 Java
Java 大视界 -- Java 大数据在智能金融反洗钱监测与交易异常分析中的应用(224)
本文探讨 Java 大数据在智能金融反洗钱监测与交易异常分析中的应用,介绍其在数据处理、机器学习建模、实战案例及安全隐私等方面的技术方案与挑战,展现 Java 在金融风控中的强大能力。
|
3月前
|
机器学习/深度学习 算法 Java
Java 大视界 -- Java 大数据机器学习模型在生物信息学基因功能预测中的优化与应用(223)
本文探讨了Java大数据与机器学习模型在生物信息学中基因功能预测的优化与应用。通过高效的数据处理能力和智能算法,提升基因功能预测的准确性与效率,助力医学与农业发展。
|
2月前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
151 14
|
4月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
131 4