背景
公司CDN和边缘云业务不断开拓海外市场,逐渐走向国际化,服务于更多的海外客户。与此同时,海外客户的数据需求也会不断增加,这时候就会面临一个问题,数据仓库中天、月等分区报表基本都是以北京时间来计算,海外客户可能更需要看到自己所在时区的数据,如何解决这个问题将是一个不小的挑战。
本文主要以阿里云CDN控制台天分区统计报表为例,分享下关于这个问题的一些解决思路,有更好的建议欢迎探讨。
方案
1、小时分区存储
数据以小时粒度分区预处理,数据查询时,从小时表中根据查询时区选择对应的数据分区进行临时计算。
优点:开发成本较低。
缺点:计算成本较高,且查询延迟增加。
适用场景:数据量级小、可累加数据。
2、24时区预计算。
类似于穷举法,提前将不同时区的数据结果全部预计算好,查询时候直接查询对应时区的数据。
优点:查询速度快。
缺点:预加工计算成本高,存储成本高。
适用场景:数据量级小、查询延迟要求高。
3、海内、海外分别处理
国内数据以北京时区进行预计算,加工出天分区结果数据。 海外数据以小时分区存储,根据所选分区临时计算结果。
优点:在特定需求场景下可有效节约计算和存储资源。
缺点:开发成本较高。
适用场景:数据量级大,且数据查询需求主要集中在国内,海外数据查询需求少。
4、主要时区预计算
根据自身业务特点,分析客户主要分布区域,选择出高频重要的时区,对数据进行预计算准备好数据结果。
优点:开发成本相对方案3较低,且查询延迟低。
缺点:未被计算时区覆盖区域,只能选择其中一个就近时区查询数据。
适用场景:数据量级大,业务集中在少数国家,且业务数据需求不要求必须严格按照本地区时区查看数据。
综上,结合流量事业部业务特征和客户数据需求,控制台统计报表采用方案3更为合适。