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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据应用之双色球算奖平台总体设计历史数据存储篇 作者:张子良 版权所有,转载请注明出处 1.1 引子:文件OR数据库   历史期次的双色球选注数据的存储,采用什么样的格式比较好呢?这需要重点从三个方面考虑,一、文件访问方便吗?二、文件服务器空间够用吗?三、软硬件故障环境下,如何保障数据的可用性。

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

作者:张子良

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

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方式的实现,个人认为是目前最为恰当的方式。引玉抛砖,还是多听听各位大牛的意见吧。


作者:张子良
出处:http://www.cnblogs.com/hadoopdev
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
9天前
|
存储 大数据 测试技术
用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
在大数据环境中,数据存储格式直接影响查询性能和成本。本文探讨了 Parquet、Avro 和 ORC 三种格式在 Google Cloud Platform (GCP) 上的表现。Parquet 和 ORC 作为列式存储格式,在压缩和读取效率方面表现优异,尤其适合分析工作负载;Avro 则适用于需要快速写入和架构演化的场景。通过对不同查询类型(如 SELECT、过滤、聚合和联接)的基准测试,本文提供了在各种使用案例中选择最优存储格式的建议。研究结果显示,Parquet 和 ORC 在读取密集型任务中更高效,而 Avro 更适合写入密集型任务。正确选择存储格式有助于显著降低成本并提升查询性能。
50 1
用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
|
18天前
|
机器学习/深度学习 数据可视化 大数据
阿里云大数据的应用示例
阿里云大数据应用平台为企业提供高效数据处理与业务洞察工具,涵盖Quick BI、DataV及PAI等核心产品。DT203课程通过实践教学,帮助学员掌握数据可视化、报表设计及机器学习分析技能,提升数据驱动决策能力。Quick BI简化复杂数据分析,DataV打造震撼可视化大屏,PAI支持全面的数据挖掘与算法应用。课程面向CSP、ISV及数据工程师等专业人士,为期两天,结合面授与实验,助力企业加速数字化转型。完成课程后,学员将熟练使用阿里云工具进行数据处理与分析。[了解更多](https://edu.aliyun.com/training/DT203)
|
20天前
|
消息中间件 SQL 大数据
Hologres 在大数据实时处理中的应用
【9月更文第1天】随着大数据技术的发展,实时数据处理成为企业获取竞争优势的关键。传统的批处理框架虽然在处理大量历史数据时表现出色,但在应对实时数据流时却显得力不从心。阿里云的 Hologres 是一款全托管、实时的交互式分析服务,它不仅支持 SQL 查询,还能够与 Kafka、MaxCompute 等多种数据源无缝对接,非常适合于实时数据处理和分析。
57 2
|
29天前
|
分布式计算 大数据 数据处理
Apache Spark的应用与优势:解锁大数据处理的无限潜能
【8月更文挑战第23天】Apache Spark以其卓越的性能、易用性、通用性、弹性与可扩展性以及丰富的生态系统,在大数据处理领域展现出了强大的竞争力和广泛的应用前景。随着大数据技术的不断发展和普及,Spark必将成为企业实现数字化转型和业务创新的重要工具。未来,我们有理由相信,Spark将继续引领大数据处理技术的发展潮流,为企业创造更大的价值。
|
1月前
|
搜索推荐 OLAP 流计算
OneSQL OLAP实践问题之基于 Flink 打造流批一体的数据计算平台如何解决
OneSQL OLAP实践问题之基于 Flink 打造流批一体的数据计算平台如何解决
31 1
|
1月前
|
存储 机器学习/深度学习 数据采集
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
|
21天前
|
存储 SQL 分布式计算
MaxCompute 在大规模数据仓库中的应用
【8月更文第31天】随着大数据时代的到来,企业面临着海量数据的存储、处理和分析挑战。传统的数据仓库解决方案在面对PB级甚至EB级的数据规模时,往往显得力不从心。阿里云的 MaxCompute(原名 ODPS)是一个专为大规模数据处理设计的服务平台,它提供了强大的数据存储和计算能力,非常适合构建和管理大型数据仓库。本文将探讨 MaxCompute 在大规模数据仓库中的应用,并展示其相对于传统数据仓库的优势。
53 0
|
25天前
|
存储 关系型数据库 大数据
PolarDB 大数据处理能力及其应用场景
【8月更文第27天】随着数据量的爆炸性增长,传统的数据库系统面临着存储和处理大规模数据集的挑战。阿里云的 PolarDB 是一种兼容 MySQL、PostgreSQL 和高度可扩展的关系型数据库服务,它通过其独特的架构设计,能够有效地支持海量数据的存储和查询需求。
41 0
|
26天前
|
机器学习/深度学习 监控 大数据
Serverless 应用的监控与调试问题之Flink在整个开源大数据生态中应该如何定位,差异化该如何保持
Serverless 应用的监控与调试问题之Flink在整个开源大数据生态中应该如何定位,差异化该如何保持
|
1月前
|
分布式计算 Hadoop 大数据
大数据处理框架在零售业的应用:Apache Hadoop与Apache Spark
【8月更文挑战第20天】Apache Hadoop和Apache Spark为处理海量零售户数据提供了强大的支持
37 0

热门文章

最新文章