Kyligence AI 服务 - 让大模型完成准确、可靠的数值计算和回答! 立即了解更多
AI 数智助理
Kyligence Zen Kyligence Zen
Kyligence Enterprise Kyligence Enterprise
Kyligence Turbo Kyligence Turbo
指标平台解决方案
OLAP 解决方案
行业解决方案
客户总览
金融
零售
制造
医药
其他
云平台
BI
寻求合作
资源
Kyligence Enterprise
Kyligence Zen
培训
Apache Kylin
Byzer
Gluten
博客
关于
市场活动
2019 年 7 月 12 日,国内首届以 Apache Kylin 为主题的大数据领域的前沿盛会 Kylin Data Summit 在上海落幕。在本次大会的制造业分论坛上,来自满帮集团的陈雅婕的分享「Kylin 在满帮集团千亿级用户访问行为分析中的应用」收获阵阵掌声,备受好评。
海量数据下的用户访问行为分析一直是一大难题,满帮集团作为全国最大的车货匹配信息平台,每天会产生近十亿的流量数据,半年即达千亿级数据规模,如何做到快速地响应业务方的多维查询、自定义漏斗分析、留存分析、用户画像等流量分析需求,让我们一起来看看陈雅婕对满帮集团为此自研的自助流量分析平台 APPDATA 的分享。
作为大数据团队,需要给公司的各条业务线提供数据服务。为了更好地洞察用户行为,支撑各大事业群的产品和运营同学给用户提供更好、更深层次的服务,我们自研了流量分析平台 APPDATA,代替了分散在各个事业群和业务线的商业化流量分析工具,完成了流量分析的全集团统一。
本文介绍 APPDATA 的演进过程,主要包括:
1)满帮流量分析的业务背景,以及 APPDATA 的产品定位;
2)立项之初的技术架构和实现及遭遇到的问题;
3)将 Kylin 作为 APPDATA 的核心多维分析引擎所带来的巨大改变;
4)对 Kylin 的一些调优操作,以及为了更好的满足业务需求,对 Kylin 做出的一点改造。
满帮流量分析的场景特点
第一,满帮流量数据规模盘大。满帮集团作为全国最大的车货匹配信息平台,连接着上千万的司机和货主用户,这些用户每天都会访问平台各种各样的产品来进行发货、找货,以及使用一些如加油、ETC充值、借贷等服务,从而每天会产生近十亿的流量数据,近半年的数据累计达千亿级。
第二,业务重度依赖流量分析。海量的流量数据记录着非常丰富的用户行为。无论哪条业务线,无论是管理者、数据分析师、产品经理,还是运营人员,都非常希望深入分析流量数据,以此来洞察用户,为各项业务的展开提供决策支持。业务线对流量分析的诉求十分强烈,数据团队每周会收到几十个流量数据相关的需求。
第三,人工提数方式处理需求。在数据团队成立的初期,我们以人工提数的方式处理需求。业务人员每周会把需求提交给数据分析师,数据分析师进行排期、写 SQL 提数,最后把数据反馈给需求方。这种方式非常的原始低效,一方面,业务人员要等较长的时间才能拿到结果;另一方面,人工处理需求的成本非常高,当时我们有两个数据分析师全人力投入支持。
APPDATA 产品定位
针对上述流量分析场景的特点,我们希望能有一款自助流量分析的数据产品,提供给业务人员,快速高效地响应流量分析的需求。同时,也可以将那两个 all in 在流量数据提取工作上的数据分析师解救出来,让他们能专注到更需要「人智」的数据处理工作上。
这款自助流量分析产品就是 APPDATA。我们盘点了之前收到所有流量分析相关的提数需求,梳理出了 APPDATA 的 Feature List:
我们希望通过这四个功能覆盖 80% 的流量分析需求,通过产品满足数据分析,让大数据在驱动业务中工具化,自动化。
明确产品规划之后,我们开始推进产品落地。
早期方案
立项之初,出于效率优先的考虑,采用的方案如下图所示:
用户访问客户端产生埋点数据,上报到数据团队的集群,落到 Hive 中,数据分析师根据业务人员的查询需求,提前编写相应的 SQL 逻辑,在 Hive 中进行计算,通过流程引擎每天将数据结果导入到 MySQL 中,前台再根据相应的筛选条件,进行数据查询以及结果呈现。早期方案能实现以下功能:
可以看到早期方案实现的效果远未达到最初产品规划的效果,仅能覆盖最基础的流量数据查询需求。然而,随着业务的发展和业务人员数据意识的增强,对流量数据的查询越来越精细化,用户希望得到更丰富的维度、更及时的数据。
早期方案面临的挑战
早期方案存在怎样的问题,导致 APPDATA 无法满足精细化的流量数据查询?总结有以下四个原因:
针对上述存在的诸多问题,研发团队提出引入 Apache Kylin 作为系统的核心计算引擎加以解决。
为什么选择 Kylin?
回答这个问题,主要还是从实际面临的问题出发思考。下图的左边是上文提到的早期方案存在的四个问题,右边是 Kylin 的一些特性,可以看到 Kylin 特性能较好的解决问题。
除此之外,还有两个原因:
基于上述的这些原因,我们选择引入 Kylin 作为 APPDATA 的核心计算引擎。
Kylin 和 APPDATA 结合的技术架构
APPDATA 和 Kylin 结合的技术架构图如下所示:
从左往右,客户端产生埋点数据,上报到大数据,这些数据首先通过 Kafka 接进来。对于 T+1 的数据,数据写入 Hive,每天的凌晨根据事先写好的 SQL 逻辑对数据做简单的处理和转化,最终形成一张宽表, 然后根据配置好的 Cube 模型,每天构建一次,然后将结果数据导入到 HBase;对于 T+0 的数据处理,数据进来后会落到 Kafka,在两个 Kafka 之间我们用程序做了数据转化的工作,最终的效果也是形成一张宽表,这里和离线数据不同的是,Cube 构建是每十分钟构建一次,同样的,结果数据也会导入到 HBase。数据都准备好之后,剩下的就是响应用户的查询了。
新方案能做到哪些早期方案做不到的功能:
显然,新的实现方式能够更近一步支持精细化的流量分析,提供丰富的维度、T+0 的数据、即时灵活的自定义数据,让系统的功能得到了非常强大扩展。
数据情况和运行效率
硬件配置
Kylin 集群总共有三台服务器,一台用于构建 Cube,两台用于查询;HBase 服务器一共八台,每台机器内存 256GB,CPU 24 核,硬盘 8TB;计算集群服务器 60 台,内存 192GB,CPU 24 核,硬盘 144TB。
数据量
目前 APPDADA 生产线上有 5 个 Cube,每天有八九亿的数据增量,提供近半年数据查询,共累计了 10+T 的数据。接入了 8 个客户端,覆盖公司所有业务线的流量数据。
并发量
APPDATA 以 Web 服务和 API 两种形式服务于公司内部业务人员和业务系统,业务人员的数量在 150 个人左右,对接广告系统、活动运营平台两个业务系统。
查询效率
查询的效率依赖于查询条件的复杂程度,经过简单的测试,目前我们 85% 的查询是小于 800 毫秒,95% 的查询小于 3 秒,99% 的查询小于 7 秒。
在文章的最后,介绍在使用 Kylin 的过程中,做的一些调优操作,以及为了实现业务上的需求,对 Kylin 做的一点改进。
性能调优
首先,我们对维度做了优化。Kylin 核心的工作就是构建 N 个维度的 Cube,实现聚合的预计算。理论上,构建 N 个维度的 Cube 会生成 2 的 N 次方个 Cuboid。随着维度的增加,Cuboid 的数量会爆炸式地增长,给 Cube 的构建带来巨大的压力。而在实际数据查询中一些维度之间的组合是不必要的。这样就可以通过修剪无查询需求的 Cuboid,来缓解 Cube 构建的压力。
第二个是 Rowkey 的顺序优化。一般而言,Kylin 以 HBase 作为存储引擎,而 HBase 是以 Rowkey 顺序存储行的,设计良好的 Rowkey 将更有效地完成数据的查询过滤和定位,减少 IO 次数,提高查询速度。这意味着我们可以把查询中被用作过滤条件的维度放在非过滤条件维度的前面,基数较高的维度,放在基数较低维度的前面,这样就可以跳过一些不必要的扫描,快速的定位到查询场景。通过种方式,可以将绝大部分的查询效率稳定在亚秒级。
上述的这两个调优操作都能在 Kylin 提供的可视化界面的「高级配置」设置完成。
在应用层面的一点改进
为了帮助提升产品关键路径的转化,我们支持产品同学到 APPDATA 上构建漏斗,上文中提到我们用 Kylin 提供的交集函数来计算漏斗数据。假设一个两步的漏斗,计算时,先分别独立计算访问过两个步骤的用户数,得到的第一步的用户数作为第一步的人数,然后求两群人的交集,得到的人数作为第二步的人数。这里的求交集就是用到交集函数。
为了满足业务上的需要,在配置漏斗时,每一个步骤可以是单个的埋点,也可以是由多个埋点组合成的虚拟埋点。而单个埋点和虚拟埋点是有差异的,前者是物理上的概念,后者是逻辑上的。Kylin 原本提供的交集函数只能支持物理概念上的单个埋点,而不支持多个埋点组合成虚拟埋点,也就是说,不可以先对单个埋点求并集,然后再求交集。在这里,我们所做的改造就是扩展交集函数支持逻辑上的虚拟埋点。可以看到扩展后,我们可以先让单个埋点做或者运算,再求交集。
我们用扩展后的交集函数计算漏斗和留存数据。对于漏斗,用户先创建虚拟埋点,绑定若干个埋点,再创建漏斗,后台调用交集函数,给出结果。对于留存数据,用户也是先创建虚拟埋点,系统调用交集函数,计算每个虚拟埋点的日留存、周留存、月留存数据。
最后,要感谢 APPDATA 开发团队的成员华强、钟亚雄同学,以及建议 APPDATA 引入 Kylin 的 王贤彬同学,正是因为大家的努力才使得基于 Kylin 的解决方案成为可能。
作者介绍:陈雅婕(WeChat ID:chenyajie1992),前满帮集团大数据产品经理,曾就职于百度大数据部,多年数据产品工作经验,先后负责多款大数据产品的搭建,帮助数据团队从提数阶段向数据产品阶段转变。
01 现象 社区小伙伴最近在为 Kylin 4 开发 Soft Affinity + Local Cache
01 背景 随着顺丰末端物流(末端物流主要分为对小哥、柜机、区域等的资源的管理和分批;对路径、排班、改派等信息
Apache Kylin 的今天 目前,Apache Kylin 的最新发布版本是 4.0.1。Apache
Kylin 入选《上海市重点领域(金融类)“十四五”紧缺人才开发目录》 数字经济已成为全球增长新动
在 Kyligence 主办的 Data & Cloud Summit 2021 行业峰会的「数字化转
近日由 Kyligence 主办的 Data & Cloud Summit 2021 行业峰会在上海成
近五年来,Kyligence 服务了金融、制造、零售、互联网等各个行业的龙头企业,我们在服务这些企业的过程中,
2021年1月14日,Kyligence 产品经理陈思捷开启了我们在 2021 年的首场线上分享,为大家介绍了
400 8658 757
工作日:10:00 - 18:00
已有账号? 点此登陆
预约演示,您将获得
完整的产品体验
从数据导入、建模到分析的全流程操作演示。
行业专家解惑
与资深行业专家的交流机会,解答您的个性化问题。
请填写真实信息,我们会在 1-2 个工作日内电话与您联系。
全行业落地场景演示
涵盖金融、零售、餐饮、医药、制造等多个行业,最贴合您的业务需求与场景。
Data + AI 应用落地咨询
与资深技术专家深入交流,助您的企业快速落地 AI 场景应用。
立即预约,您将获得
精准数据计算能力:
接入高精度数值计算大模型服务,为您的企业级AI应用提供强大支持。
个性化业务场景解决方案:
量身定制的计算模型和数据分析服务,切实贴合您的业务需求和应用场景。
Data + AI 落地应用咨询:
与资深专家深入探讨数据和 AI 如何帮助您的企业加速实现应用落地,构建更智能的数据驱动未来。
申请体验,您将获得
体验数据处理性能 2x 加速
同等规模资源、同等量级数据、同一套数据处理逻辑,处理耗时下降一半
专家支持
试用部署、生成数据、性能对比各操作环节在线支持