基于高性能Impala引擎神策产品, 提升App运营与质量实战 | U刻
技术分享/

基于高性能Impala引擎神策产品, 提升App运营与质量实战

  • 基于高性能Impala引擎神策产品, 提升App运营与质量实战

    在凉风习习的夜晚里,璀璨的灯火映照下,随处都能碰到翩翩起舞的人群,这就是广场舞,在这嘹亮、节奏鲜明的歌声里有一款大妈们热爱的APP—- 糖豆APP。

     一、挑战

    在发展之初,多家企业看好广场舞这个赛道,而糖豆创业初期,也同样面临不了解用户画像、客户端crash、发展方向、决策依据等关乎企业命运的问题。例如:

    • 怎么样获得更多的用户?
    • 哪些歌曲、节奏是领舞者喜欢的?
    • 不同时期大妈们的偏爱的歌曲有哪些?
    • 用户的访问路径和习惯是怎样的?
    • APP crash了多少次?

    这些问题不但困扰着小糖,也困扰着当时整个行业。幸运的是,小糖当机立断,做出了一系列明智的决定。
    作为IaaS服务商,UCloud也有幸见证小糖成长的过程,见证了这段不为人知的往事。并且希望通过分享出这段经历,以帮助到开辟新赛道的创业者们提供参考和启发,抓住快速发展的机遇脱颖而出。

     二、机遇

    就以上问题,当时小糖选择的是:用大数据技术实现数据赋能业务。在实现的路径中,当时存在两种选择:

    1、自建BI优势:

    • 响应速度快。
    • 有概率孵化出独有的经营分析系统。

    劣势:

    • 需要招聘数据分析师、大数据运维等。
    • 日常配合效率低:业务分析人员进行专题研究所需的数据,要向数据工程师提需求,进入需求说明、需求评估、迭代排期、需求纠偏的循环。
    • 数据分析工作繁杂:数据工程师需要处理各类繁杂数据的 ETL 日常工作。
    • 共性需求重复开发:对于流量和点击这类数据采集的共性需求,研发工程师每次都需要针对具体业务重新开发,造成大量重复性开发工作。

    2、购买数据服务优势:

    • 见效快,而且是立竿见影的速度。
    • 节约BI人员和对应数据运维人员的成本。

    劣势:

    • 持续投入的数据分析服务购买成本。
    • 有数据对接开发工作。

    通过对比调研,公司最后决定采用专业的数据分析服务商——神策数据。依靠正确运营决策带来的业务增速,和APP稳定性带来的良好体验,小糖抓住了这个黄金时期,从该赛道脱颖而出。 

    三、核心诉求

    1、运营决策:

    小糖提出运营目标,包括:

    • 基础指标:日活人数、月活人数、新增人数、留存人数、用户地域分布、用户终端分布。
    • 搜索功能:使用和点击人数,点击后的播放和留存统计。
    • 推送:触达用户人数,并且推送内容的打开和启动统计。

    2、质量优化:

    • 统计关键页面的访问次数、关键Tab页面曝光率。
    • APP异常退出现象的原因,分析用户访问路径,帮助APP优化体验。

    3、私有化部署:

    • 为确保数据的安全,数据不出IDC,这是核心诉求之一。
    • 确保未来2-3年不产生容量瓶颈。

     四、需求满足

    针对小糖的核心诉求1
    神策提供了数字化运营闭环解决方案,该解决方案是神策数据凝练四年多的数据采集、用户行为分析研究经验,同时融合服务的 1000+ 各行业标杆企业客户成功经验打磨出的一套完整的筑就业务数据流闭环的解决方案,全面击破企业在数据采集、用户洞察、业务行动、分析反馈四个关键环节的难点,为企业增长筑就超强引擎。

     针对核心诉求2

    神策对在糖豆APP客户端中嵌入了其采集数据的SDK,作为终端埋点,并做好用户关联,进行事件采集和用户属性设置。海量的终端数据汇总到神策分析平台,提供全功能的多维分析能力剖析用户行为——维度、指标不需要预定义,漏斗分析、留存分析、分布分析都可以任意维度下钻。
    在神策分析产品上进行数据的可视化展现,如下图(为保护用户数据隐私,所有数据均为模拟数据):

    基础指标留存概览

    针对核心诉求3

    按照小糖的私有化部署的需求:

    • 神策也必须在云主机部署。
    • 必须具备快速伸缩容能力。

    以确保后续数据增长避免带来的性能问题。

    基于以上条件,提供了2套部署方式:

    • SSD云盘云主机搭建。
    • UCloud快杰云主机搭建。

    为验证性能、价格、伸缩容能力这3个重要指标,进行了可行性验证。
    首先:神策的分析业务架构,如下:

    该架构很重要的基础是存储,这里存储系统采用了HDFS,查询引擎则采用了Impala。
    Impala是查询引擎,提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。

     接下来,测试:

    • 性能测试:

    这里使用的impala性能测试工具,是很出名的impala-tpcds-kit ,Github上开源的地址https://github.com/cloudera/impala-tpcds-kit/。它可以:
    1、描述测试基准与其自身业务的相关性。

    2、模拟数据生成要具有真实性。

    3、工作负载的设定具有可扩展性。

    4、度量的选取的可理解性。

    5、满足了客观性与公正性。

    6、SQL标准兼容性。所以很好的符合使用前性能、兼容、度量等要求。
    被测试的云主机类型配置如下:

    机型数量CPU内存磁盘
    快杰AMD主机332核64G2TB RSSD云盘
    SSD云盘主机332核64G2TB SSD云盘

    TPC-DS工具: 是一个面向决策支持系统的包含多维度常规应用模型的决策支持基准,包括查询(queries)与数据维护。此基准对被测系统在决策支持系统层面上的表现进行的评估具有代表性。TPC-DS采用星型、雪花型等多维数据模式。它包含7张事实表,17张纬度表平均每张表含有18列。其工作负载包含99个SQL查询,覆盖SQL99和2003的核心部分以及OLAP。这个测试集包含对大数据集的统计、报表生成、联机查询、数据挖掘等复杂应用,测试用的数据和值是有倾斜的,与真实数据一致。可以说TPC-DS是与真实场景非常接近的一个测试集,也是难度较大的一个测试集。因此TPC-DS成为客观衡量多个不同Hadoop版本以及SQL on Hadoop技术的最佳测试集。几乎所有的测试案例都有很高的IO负载和CPU计算需求。

    采用Cloudera Manager在快杰主机上,部署大数据环境,示意图如下:

    • 性能测试数据:

    测试数据量在500G的情况下,SQL查询时间在快杰AMD主机和SSD云盘主机的对比如下表:

    • 性能指标结论:

    快杰AMD云主机的各项性能指标都超过了SSD云盘云主机,综合来看,查询性能提升44.98%。从磁盘的成本角度上,RSSD云盘和SSD云盘都是0.6元/月/GB,成本并没有增加。

    • 原因分析:

    1、快杰云主机的底层存储采用最新的NVMe SSD磁盘,使用高性能RDMA(远程直接数据存取)作为后端存储的通信协议,实现远端存储卸载到硬件,使得云盘的延迟降低到0.1毫秒,体验几乎和本地盘一致,高并发下依然保持低时延。RDMA 是通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能.它消除了外部存储器复制和文本交换操作,因而能腾出总线空间和CPU 周期用于改进应用系统性能. 目前通用的做法需由系统先对传入的信息进行分析与标记,然后再存储到正确的区域.整体结构如图所示。

    同时,配合25G 底层物理网络,随机读写性能达到最佳,实现120万IOPS。

    2、快杰云主机将底层数据中心网络环境从10G升级到了25G;配备了Mellanox智能网卡实现了网络加速,配合软件的优化,使得网络性能有了大幅的提升:内网带宽提升2.5倍,内网包量提升超过10倍、最高可达1000万PPS。
    3、快杰云主机,搭载AMD选用第二代EPYC 处理器,主频2.9GHZ,领先的7nm制程工艺带来显著的性能提升,使之打破TPC Benchmark总体性价比世界记录。 

    因此,糖豆与神策数据此次最终共同选择了快杰服务器。通过实际运行结果看,确实达到了业务当初的性能要求、并且也达到了业务增长后的性能要求和容量要求。直到现在,依然每天支持着海量的数据记录上报、分析、统计。