订单表大数据处理实战

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 前言:也许大数据,大并发,大流量在许多coder中还是一个比较遥远的事情。碰巧我最近经手的一个项目就有着大数据的问题(一天100w条数据左右)虽说不能算超级大,也算是需要做些特殊处理才能应付。

前言:

也许大数据,大并发,大流量在许多coder中还是一个比较遥远的事情。碰巧我最近经手的一个项目就有着大数据的问题(一天100w条数据左右)虽说不能算超级大,也算是需要做些特殊处理才能应付。
首先交代下背景:
首先大数据的表是一张订单表,订单表中有,交易金额,收益等字段,需要在后台做三种以上的统计

  1. 今日统计
  2. 昨日统计
  3. 累计统计

在这样大数据出现之前,使用的解决方案一直是将订单全部存在一张表里。然后统计的时候,就直接查询全表,做聚合查询。
这样处理在数据量不大的情况下确实是没问题,只是在新的订单量迅速增大,对数据表的读写和统计都有不小的挑战!

1. 水平分表

首先从数据表入手,经过我们思考,我们选择对数据表分表。分表的时机为按量分表,比如我们发现,订单表马上要到500w数据时,我们就新建下一张订单表(当然这是自动的)

这样做的好处就是,数据表的读取性能会比较好,而且不会在数据超级大的时候发生写入挂起的情况。始终让订单表处于一个高性能的状态。

当启用新表时,我们相应的创建订单方法和修改订单方法也要随着改变,要对新的数据表进行操作,这里就涉及到我上一篇文章《模型初始化踩坑记》 这里就不再赘述了。

2. 停机统计

搞定了对订单的新增和修改,就来到了本次项目的难点了,那就是对订单的统计。也是进过了很久的思考与讨论。发现我们的订单统计有一个特点:那就是很多地方都需要全表统计。如果我们先分表,然后再连表查询,这无疑就是脱了裤子。。。
那么经过我们的套路,我们设想出一套机制

停机统计机制流程图

这样做的目的是为了将一天的订单分为两个部分,一个是8:30之前,一个是8:30之后的。这样就可以很好的规避数据表切换导致的统计漏掉。这样每天只统计今日0 ~ 8:30和昨日8:30 ~ 23:59。通过计算,就可以得到昨日的统计,累计的统计(截止于今日8:30)

3.结合停机统计的实时统计

那么有人可能会问,那么8:30之后的订单如何统计呢?当然,我这里的机制最多能统计到当日8:30的数据,有很多的数据需要时效性,也就是实时的反应出订单的数据。那么这里我就要介绍第二套机制

实时统计流程图

根据当前时间的判断,走向两个case,拿到停机时段的统计数据,再结合,实时统计的数据。就可以得到完整的统计订单数据。虽然这个步骤看上去有些复杂。这就像是压缩文件,当你压缩一个1b的文件时,压缩出了70几b的压缩包。当我们的订单数据达到了1000w,甚至更多。那种看似简单的只统计聚合查询订单表便变得非常的慢。这一套逻辑虽然查询次数多一些。但是查询速度会有一个上限。这个上限就是我们切换数据表。随后读取的就是新的数据表,速度会非常快。
如果使用实时查询订单表,开始订单不多的时候,会很快。当订单越来越多时。查询速度会呈正函数形式向上递增。

本次介绍,主要是介绍一个思路。如果有更好的思路欢迎大家交流。由于涉及公司业务,代码就不便展示了。希望得到大神指点
谢谢

以上

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
18天前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
52 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
9天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
1月前
|
消息中间件 存储 druid
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
40 3
|
26天前
|
Oracle 大数据 数据挖掘
企业内训|大数据产品运营实战培训-某电信运营商大数据产品研发中心
本课程是TsingtaoAI专为某电信运营商的大数据产品研发中心的产品支撑组设计,旨在深入探讨大数据在电信运营商领域的应用与运营策略。通过密集的培训,从数据的本质与价值出发,系统解析大数据工具和技术的最新进展,深入剖析行业内外的实践案例。课程涵盖如何理解和评估数据、如何有效运用大数据技术、以及如何在不同业务场景中实现数据的价值转化。
37 0
|
5月前
|
数据采集 大数据
大数据实战项目之电商数仓(二)
大数据实战项目之电商数仓(二)
128 0
|
3月前
|
数据采集 人工智能 安全
AI大数据处理与分析实战--体育问卷分析
本文是关于使用AI进行大数据处理与分析的实战案例,详细记录了对深圳市义务教育阶段学校“每天一节体育课”网络问卷的分析过程,包括数据概览、交互Prompt、代码处理、年级和学校维度的深入分析,以及通过AI工具辅助得出的分析结果和结论。
|
3月前
|
大数据 API 数据处理
揭秘!Flink如何从默默无闻到大数据界的璀璨明星?起源、设计理念与实战秘籍大公开!
【8月更文挑战第24天】Apache Flink是一款源自Stratosphere项目的开源流处理框架,由柏林理工大学等机构于2010至2014年间开发,并于2014年捐赠给Apache软件基金会。Flink设计之初即聚焦于提供统一的数据处理模型,支持事件时间处理、精确一次状态一致性等特性,实现了流批一体化处理。其核心优势包括高吞吐量、低延迟及强大的容错机制。
61 1
|
3月前
|
分布式计算 大数据 分布式数据库
"揭秘HBase MapReduce高效数据处理秘诀:四步实战攻略,让你轻松玩转大数据分析!"
【8月更文挑战第17天】大数据时代,HBase以高性能、可扩展性成为关键的数据存储解决方案。结合MapReduce分布式计算框架,能高效处理HBase中的大规模数据。本文通过实例展示如何配置HBase集群、编写Map和Reduce函数,以及运行MapReduce作业来计算HBase某列的平均值。此过程不仅限于简单的统计分析,还可扩展至更复杂的数据处理任务,为企业提供强有力的大数据技术支持。
64 1
|
3月前
|
API C# Shell
WPF与Windows Shell完美融合:深入解析文件系统操作技巧——从基本文件管理到高级Shell功能调用,全面掌握WPF中的文件处理艺术
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的关键组件,用于构建 Windows 桌面应用程序。WPF 提供了丰富的功能来创建美观且功能强大的用户界面。本文通过问题解答的形式,探讨了如何在 WPF 应用中集成 Windows Shell 功能,并通过具体示例代码展示了文件系统的操作方法,包括列出目录下的所有文件、创建和删除文件、移动和复制文件以及打开文件夹或文件等。
76 0
|
4月前
|
分布式计算 Apache Spark