返回

vivo 基础数据计算架构演进及在万亿级海量数据下的优化

后端

海量数据时代,数据的价值日益凸显,数据计算架构作为大数据平台的核心组成部分,面临着巨大的挑战。vivo 作为一家全球领先的智能终端公司,拥有庞大的用户群体和丰富的业务场景,每天产生的数据量以万亿计。为了满足业务发展的需要,vivo 在基础数据计算架构方面进行了大量的探索和实践。

本文主要介绍了 vivo 在万亿级数据增长驱动下,基础数据架构建设的演进过程,以及在实时和离线计算过程中,基于业务发展、数据质量、计算成本等方面的挑战,如何构建稳定、可靠、低成本、高性能的双活计算架构。

1. 基础数据计算架构演进

vivo 的基础数据计算架构经历了三个主要阶段:

1.1 传统离线计算架构

早期,vivo 的数据计算架构以传统的离线计算架构为主,采用 Hadoop+Hive 的解决方案,主要用于离线数据仓库的建设。该架构的特点是简单易用,但是存在数据延迟高、扩展性差、成本高等问题。

1.2 实时计算架构引入

随着业务的快速发展,vivo 的数据量呈爆炸式增长,传统离线计算架构已经无法满足实时数据处理的需求。因此,vivo 引入了实时计算架构,采用 Spark Streaming+Kafka 的解决方案,主要用于实时数据处理和分析。该架构的特点是数据延迟低、扩展性好,但是存在稳定性差、成本高等问题。

1.3 双活计算架构构建

为了解决实时计算架构的稳定性和成本问题,vivo 构建了双活计算架构,采用 Spark Streaming+Kafka+HDFS 的解决方案,主要用于实时和离线数据处理和分析。该架构的特点是稳定性好、成本低,但是存在数据一致性问题。

2. 实时计算过程中的挑战和优化

在实时计算过程中,vivo 面临着以下几个方面的挑战:

2.1 数据延迟

实时计算的目的是为了快速响应业务需求,因此数据延迟是影响实时计算效果的关键因素。vivo 通过以下几个方面来优化数据延迟:

  • 采用高性能的计算引擎:vivo 采用 Spark Streaming 作为实时计算引擎,Spark Streaming 具有高吞吐量、低延迟的特点,可以满足实时计算的需求。
  • 优化数据传输过程:vivo 采用 Kafka 作为数据传输中间件,Kafka 具有高吞吐量、低延迟的特点,可以保证数据传输的稳定性和快速性。
  • 优化数据处理逻辑:vivo 通过对数据处理逻辑进行优化,减少不必要的计算,提高数据处理效率。

2.2 数据一致性

在双活计算架构中,存在数据一致性问题,即在两个数据中心之间,数据可能存在不一致的情况。vivo 通过以下几个方面来保证数据一致性:

  • 采用分布式锁:vivo 采用分布式锁来保证数据的一致性,当一个数据中心在更新数据时,会先获取分布式锁,然后再进行更新操作,这样可以保证数据在两个数据中心之间是同步的。
  • 采用数据复制:vivo 采用数据复制的方式来保证数据的一致性,即在一个数据中心更新数据时,会同时将数据复制到另一个数据中心,这样可以保证数据在两个数据中心之间是同步的。

2.3 计算成本

实时计算的成本是影响实时计算应用的关键因素。vivo 通过以下几个方面来降低计算成本:

  • 采用弹性伸缩机制:vivo 采用弹性伸缩机制来降低计算成本,即根据业务需求动态调整计算资源的分配,这样可以避免资源浪费。
  • 采用预留实例:vivo 采用预留实例来降低计算成本,即提前购买计算资源,这样可以获得更低的折扣。
  • 采用 Spot 实例:vivo 采用 Spot 实例来降低计算成本,即竞价购买计算资源,这样可以获得更低的价格。

3. 离线计算过程中的挑战和优化

在离线计算过程中,vivo 面临着以下几个方面的挑战:

3.1 数据量大

vivo 每天产生的数据量以万亿计,这给离线计算带来了巨大的挑战。vivo 通过以下几个方面来应对数据量大的挑战:

  • 采用分布式计算框架:vivo 采用 Spark 作为离线计算框架,Spark 具有高吞吐量、高容错的特点,可以满足大数据量计算的需求。
  • 优化数据存储格式:vivo 采用 Parquet 作为数据存储格式,Parquet 具有高压缩比、高查询效率的特点,可以减少数据存储空间和提高数据查询效率。
  • 采用数据分区机制:vivo 采用数据分区机制来提高数据查询效率,即根据数据特点将数据分成多个分区,然后分别对每个分区进行计算,这样可以提高数据查询效率。

3.2 数据质量差

vivo 每天产生的数据量非常大,其中存在大量的数据质量问题,这给离线计算带来了巨大的挑战。vivo 通过以下几个方面来应对数据质量差的挑战:

  • 采用数据质量管理平台:vivo 采用数据质量管理平台来管理数据质量,数据质量管理平台可以对数据质量进行监控和治理,提高数据质量。
  • 采用数据清洗工具:vivo 采用数据清洗工具来清洗数据,数据清洗工具可以将数据中的错误数据进行清洗,提高数据质量。
  • 采用数据校验机制:vivo 采用数据校验机制来校验数据,数据校验机制可以对数据进行校验,发现数据中的错误数据,提高数据质量。

3.3 计算成本高

离线计算的成本是影响离线计算应用的关键因素。vivo 通过以下几个方面来降低计算成本:

  • 采用弹性伸缩机制:vivo 采用弹性伸缩机制来降低计算成本,即根据业务需求动态调整计算资源的分配,这样可以避免资源浪费。
  • 采用预留实例:vivo 采用预留实例来降低计算成本,即提前购买计算资源,这样可以获得更低的折扣。
  • 采用 Spot 实例:vivo 采用 Spot 实例来降低计算成本,即竞价购买计算资源,这样可以获得更低的价格。

4. 结语

vivo 在基础数据计算架构方面进行了大量的探索和实践,构建了稳定、可靠、低成本、高性能的双活计算架构,满足了业务发展的需要。vivo 的经验对于其他企业在基础数据计算架构建设方面具有重要的参考价值。