大数据应用之双色球算奖平台总体设计数据规模估算篇

简介:

作者:张子良

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

引子:什么才算大数据?

  自从写了上一篇《大数据应用之双色球算奖平台总体设计大纲篇一》,受到许多园友的关注和指导,在此表示感谢,尤其是园友个人知识管理给出的一个评论,让我深思,原文如下“双色球算奖这么简单的活,也称大数据。先生:不是数据多,叫大数据。双色球算奖,Oracle数据库的索引,1分钟内就算完。关键是人家不想这么快”。话不太好听,尤其是称我为先生那句,但却发人深思,是啊:到底什么是大数据呢?选择双色球算奖作为大数据应用的切入点是否合适呢?然后就是让我诧异的1分钟理论很是吓了我一跳的。

  说一下自己的理解吧,大数据是指那些很大的数据集,大到传统的数据库软件工具已经无法采集、存储、管理和分析。大数据既有存储规模方面的考虑,同时也涉及到分析计算规模的考虑。之所以选择双色球算奖平台作为大数据应用的案例,也正是考虑到这两个方面的问题。其一,历史投注明细信息的存储,如果采用传统的关系型数据库,肯定是不合适,无论是分区还是分表,都无法解决根本问题。其二、当前投注规模的情况下,进行快速算奖,所要进行的计算规模肯定也不是一个传统方式能轻易解决的问题。

  当然关于具体多大规模的数据才算大数据,目前为止尚未有一个官方的界定阈值的存在,规定超过多少算大数据,低于多少不算大数据的说法。既然没有标准,也就无所谓是与不是,见仁见智,不一而足。

一、概述 业务规则

 双色球奖项设置和兑奖规则如下所示:

“双色球”彩票以投注者所选单注投注号码(复式投注按所覆盖的单注计)与当期开出中奖号码相符的球色和个数确定中奖等级: 

一等奖:7个号码相符(6个红色球号码和1个蓝色球号码)(红色球号码顺序不限,下同) 

二等奖:6个红色球号码相符; 

三等奖:5个红色球号码和1个蓝色球号码相符; 

四等奖:5个红色球号码或4个红色球号码和1个蓝色球号码相符; 

五等奖:4个红色球号码或3个红色球号码和1个蓝色球号码相符; 

六等奖:1个蓝色球号码相符(有无红色球号码相符均可)。

二、数据对象分析

   既然是数据规模的评估,我们要解决的首先就是数据对象的确认。针对双色球算奖平台,我们需要关注那些数据对象呢?按照矛盾论的观点,事物的矛盾分为主要矛盾和次要矛盾,其中主要矛盾起决定性作用。所以在这里我们只考虑双色球算奖平台涉及的最主要的数据对象,而不考虑其他细节问题。

数据对象主要包括以下几个方面:

(1)销量统计:包括全国、分省市、销售网点的销量汇总统计数据。

(2)中奖统计:包括全国、分省市、销售网点的各奖项的中奖注数汇总统计数据。

(3)开奖号码:包括每一期开奖号码信息。

(4)奖金信息:包括每一期次各奖项奖金多少的统计数据。

(5)选注明细:当前期次选注明细数据。

(6)选注历史明细:历史期次选注明细数据。

(7)中奖选注明细:当前期中奖选注明细数据。

(8)中奖选注历史明细:历史中奖选注明细数据。

  如果从存储规模和计算规模两个维度分别考虑,针对销量统计、中奖统计和奖金信息,我们需要关注的是计算规模;针对选注明细、选注历史我们要关注的则是存储规模。

三、存储规模评估  

3.1 数据结构

             针对双色球算奖平台而言,所有需要存储的数据中,选注历史明细信息的存储是规模最大的,根据目前双色球每一期次的平均销量来看,需要存储的每一期次选注明细信息约为2亿条记录。每一选注需要存储的信息包括:站号、操作员、流水号、销售期、有效期、销售时间、金额、投注明细(多条)、开奖时间和附加码。具体如下图所示:

 

为简化我们的分析,我们将复式投注和胆拖投注明细拆分成单式投注进行存储,具体数据结构如下:

序号

字段名称

类型

长度

1

期次

Char

7(YYYYMMN)

2

站号

Char

8(全国唯一)

3

流水号

Char

6(右侧补零)

4

Red1

char

2(左侧补零)

5

Red2

Char

2(左侧补零)

6

Red3

Char

2(左侧补零)

7

Red4

Char

2(左侧补零)

8

Red5

Char

2(左侧补零)

9

Red6

Char

2(左侧补零)

10

Blue

char

2(左侧补零)

按照简化后的数据存储,单注明细需要的存储空间=35字节,每一期次需要存储的绝对数据规模=200000000*35/1024/1024=6675.7M。如果单从这个角度来看,数据存储规模还真的不算大。但是考虑到RDMS表的存储和访问,无论是采用分区,还是分表,能够实现的其实只是把数据塞进去,至于,读出来,如何读出来则将会是一个悲剧。不要告诉我用索引,用索引需要付出的代价是什么,我想有更多的人比我清楚。

3.2 测试环境

备注

操作系统

Windows XP

 

数据库

Sybase15.7

 

CPU

T5550

双核1.83

内存

2G

 

硬盘

200G

 

3.3 测试结果-无索引插入

轮次

插入记录数

耗时

第一轮

200w

15分03秒

第二轮

200w

18分05秒

第三轮

200w

19分04秒

3.4 数据库空间-1000w记录数据库空间

四、计算规模评估

  这部分设计到具体采用的算法,但是无论采用何种算法,2亿次规模的数据遍历是必须的,之前园友提到的方法其实很好,根据开奖号码,设计中奖选注表,利用待兑奖数据进行组合ID比较,然后得出目标选注。然后进行奖项层次的细分,思路很好,可是有没有想到过2亿次乘以目标中奖选注表项个数的计算规模有是多少次呢。如果采用SQL的方式,时间呢,又需要多少的时间?有数据有真相,正在跑相关的测试案例。至少目前看到的结果,很不理想。

正在跑测试数据,持续更新中,有图有真相,有数据才有说服力!敬请关注、支持!求推荐!

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
21小时前
|
分布式计算 Hadoop Java
大数据实战平台环境搭建(下)
大数据实战平台环境搭建(下)
6 0
|
3天前
|
存储 NoSQL 大数据
【MongoDB 专栏】MongoDB 在大数据场景下的应用
【5月更文挑战第11天】MongoDB,适用于大数据时代,以其灵活数据模型、高可扩展性和快速性能在大数据场景中脱颖而出。它处理海量、多类型数据,支持高并发,并在数据分析、日志处理、内容管理和物联网应用中广泛应用。电商和互联网公司的案例展示了其在扩展性和业务适应性上的优势,但同时也面临数据一致性、资源管理、数据安全和性能优化的挑战。
【MongoDB 专栏】MongoDB 在大数据场景下的应用
|
7天前
|
分布式计算 监控 数据挖掘
MaxCompute的应用
【5月更文挑战第7天】MaxCompute的应用
26 8
|
14天前
|
分布式计算 DataWorks 数据库
DataWorks操作报错合集之DataWorks使用数据集成整库全增量同步oceanbase数据到odps的时候,遇到报错,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
25 0
|
14天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在 DataWorks 中,使用Oracle作为数据源进行数据映射和查询,如何更改数据源为MaxCompute或其他类型
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
28 1
|
14天前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之在DataWorks中,查看ODPS表的OSS对象如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
28 1
|
14天前
|
分布式计算 DataWorks MaxCompute
DataWorks产品使用合集之在DataWorks中,将数据集成功能将AnalyticDB for MySQL中的数据实时同步到MaxCompute中如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
24 0
|
14天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在DataWorks中,MaxCompute创建外部表,MaxCompute和DataWorks的数据一直保持一致如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
20 0
DataWorks产品使用合集之在DataWorks中,MaxCompute创建外部表,MaxCompute和DataWorks的数据一直保持一致如何解决
|
15天前
|
分布式计算 大数据 BI
MaxCompute产品使用合集之MaxCompute项目的数据是否可以被接入到阿里云的Quick BI中
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
15天前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之怎样可以将大数据计算MaxCompute表的数据可以导出为本地文件
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。

热门文章

最新文章