怎样降低数据中台的存储成本?腾讯云数据中台怎么样?

通过容器化,也可以很方便的实现存储与计算分离。一般而言,用来完成在线服务的资源,在夜间的利用率是非常低的,这部分计算资源是可以在夜间加入到容器中,为夜间跑批提供更多的资源,优点非常多。

上图说明了容器化改造后带来的价值。左边的部分是相对固定采购的一些集群,属于常规的采购,白天和晚上都在跑。

我们采取的策略是,最早的时候只有图中左边部分的集群,没有做扩缩容。实际上日间的利用率不高,而我们现在是把日间利用率的能力跑满到 100% 。

因为日间的流量不大,目前占我们总量的 40% 。夜间相当于还缺少 60% 的计算资源,其中 50% 我们是通过按需采购的方式进行采购。这部分资源,只需要按照夜间8小时的时间窗口采购。这样实际上只需要采购1/3的时长。当然按需采购的成本也会略高于按月采购的成本,但只采购三分之一的时间,所以总体成本要比按月采购低非常多。

剩下的 10% 我们主要利用在线的计算资源来完成。这就是容器化给我们带来的比较大的价值。

3. 存储优化

存储优化基本可以分为以下几块:

第一是冷备的数据。冷备的数据主要针对不可恢复数据的存储。这一块我们是用一个专门的机器来做,现在基本上把这部分的内容都存到了腾讯的 COS 上,成本降低非常大。COS 给了我们一个很好的折扣,比起之前冷数据的独立集群存储,降低了大概 80% 的成本。而且放到 COS 上也比放在自己的服务器上安全性高了很多。

第二部分是 Hive 数据生命周期的管理。我们之前对于数据的分区做的是比较弱的,今年上半年我们基本把 90% 以上的 Hive 的分区表都做了历史分区的清理,这样节省了大约 20% 以上的存储空间。

第三部分是我们目前正在进行中的一项工作。我们 hadoop 目前还是 2.x 版本为主,目前也在往 3.x 上迁移。因为 3.x 提供了很好的存储压缩的方案,如果整体迁完,可以降低一半左右的空间。当然,这个操作对于比较热的数据可能不是很合适,主要用来优化一些相对偏冷的数据。

4. 离线任务优化

对于离线任务的优化我们称之为「六脉神剑」。

(1)下线

第一部分是把一些无用的数据下线。这块是利用全链路的数据资产和血缘关系,进行智能挖掘,特别是上游应用场景中已经不再使用或者使用频率非常低的数据,再结合人工的判断促进下线。

(2)任务调度

第二部分是任务方面的调优。一方面是任务本身的调度安排和语法安排,还有就是在不同的任务中可能有重复计算,我们会把这些找出来进行优化。

(3)高转低频

第三部分是对频次的管理。有一些任务是小时级的跑频,特别是很多跑的频率相对比较高的任务,会有同学进行跟踪和对上游的使用场景进行核对,评估这些本来按小时跑的频率能否降低到一天或者三天,结合具体的业务场景进行更科学的评估。

我们也正在 Hive 上使用立方体的概念,这样一次计算就可以把多个维度的组合跑完,进而降低跑批的频率、提升跑批的效果。

(4)替换

第四部分主要是老数据的替换。这里主要发生在一些跑的时间比较长的业务场景中。这些数据可能本身是支持一些老业务的,但随着时间的变化,有一些新的场景老任务支持不了,可能需要另起一个任务来支持新的业务。最后的结果是老的和新的都在线上长期并存。我们也付出了一些代价对这些任务进行整合,把老任务下线的同时,也让整体任务运行的更好。

(5)小文件合并

第五部分是小文件的合并,这是 spark 本身特性导致的。我们跑批主要是用 spark 来跑,但因为 spark 跑的时候会产生很多小文件,所以今年上半年我们也做了一个统一的合并,来提升整体的任务效果。

(6)延迟启动

延迟启动主要是为了更合理的利用时间,把高优先级的任务跑完后再错峰的跑其他任务。

这就是我们对离线任务所做的一些优化,主要是通过以上六个场景进行。

原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/10173.html

发表评论

登录后才能评论