写点什么

Apache Kylin 在绿城客户画像系统中的实践

  • 2018-02-23
  • 本文字数:3171 字

    阅读完需:约 10 分钟

前言

作为国内知名的房地产开发商,绿城经过 24 年的发展,已为全国 25 万户、80 万人营造了美丽家园,并将以“理想生活综合服务提供商”为目标,持续为客户营造高品质的房产品和生活服务。

2017 年,绿城理想生活集团成立,围绕客户全生活链、房屋全生命周期,为客户提供从买房子到房屋的保养维护,再到业主全方位的生活服务。为此构建了绿城 +App 生活服务平台、房产营销数字化平台及房屋 4S 服务平台,这些系统的构建为业主购房及生活服务提供了极大的便利,部分系统不仅开放给绿城客户、业主使用,同时也服务于非绿城的客户。通过一整套垂直行业的用户画像系统构建并使用 Apache Kylin 加速主要数据服务,有效提升了互联网广告推广、营销服务的效率。

一、绿城客户画像系统的背景

房产品的营造和线下销售是当前绿城的主营业务,为有效提升服务质量、管理效能,降低营销费用,实现客户服务智能化、销售行为自动化、成本管理合理化,绿城积极拥抱互联网,于 2015 年开始了数字化营销(Digital Marketing)的探索和研究,通过 + 互联网创新营销业务。

经过 2 年的探索和模式验证之后,2017 年绿城成立了专门的大数据团队,围绕营销全过程和客户全生命周期, 构建了房地产行业首个全闭环的“房产营销数字化平台”,服务于营销找客到成交回款全过程,如下图所示:


图 1 绿城房产营销数字化平台

在“房产营销数字化平台”中,精准营销和智慧案场为营销线最核心的两个系统,它们以广告投放、客户数据资产管理、经营指标分析为基础,延展出集合营销知识分享与学习、营销与转化工具、第三方供应商为一体的互联网平台,服务于房地产市场营销产业链生态圈,为 Marketing 阶段的客户获取提供了一站式程序化解决方案。另外置业绿城、掌上销售等系统则为后续的 Sales 环节提供数字化服务。

精准营销系统和智慧案场系统,基于 DMP(Data Management Platform,数据管理平台)的数据分析和处理能力支撑和流转起所有业务逻辑,一方面,绿城 DMP 系统通过积累营销投放过程中的回流数据,另外一方面又采集置业绿城、全民营销系统(绿粉汇)、掌上销售系统中的埋点行为数据及数据库数据。通过上述种种方式为数字化营销建立更为准确优化的策略,从而真正做到“数据驱动营销”。绿城 DMP 的数据包含第一、第二和第三方数据:

  • 第一方数据,即完全自有的数据。企业自身的 CRM 系统数据、网站和 APP 等运营活动的应用数据;
  • 第二方数据,主要包括程序化广告投放过程中的交易数据;
  • 第三方数据,主要为 BAT 数据、运营商数据等。

绿城 DMP 整体的业务架构图如下:


图 2: 绿城 DMP 与系统间的逻辑架构

DMP 作为服务于 Marketing 的核心工具,客户画像发挥着极其重要的作用。客户画像依赖于 DMP 的标签管理、用户归一化以及营销相关的客户数据,它为房子的营销推广提供决策支持和依据。

另外一方面,营销相关运营活动也需要画像系统支持。营销引擎基于用户画像系统,为精准营销、智慧案场系统提供统一的广告投放服务。

二、客户画像与 Apache Kylin 的结合

如前所述,客户画像服务于 Marketing,其核心的业务流程可以用下图表示:


图 3 客户画像的核心逻辑

通过 DMP 进行数据的采集、融合分析、归一化处理,再基于行业标签,为精准营销系统提供精准的人群画像,并投放到各类媒体及网站,实现对于受众的精准触达。

2015~2016 年,绿城大数据平台中的数据主要通过 Hive + HBase 进行存储以及分析计算,后台的数据服务尤其是画像服务,均是基于 HBase 的 Java API 开发,那时基本能满足业务秒级的响应需求。但经历 2017 年的业务高速发展之后,随着渠道及合作方的增多,数据的体量和维度的增加了数十倍,画像等数据服务的响应速度逐渐降至 5 秒甚至 30 秒,部分业务查询甚至超过了 1min,而且数据源头繁杂、维度众多,需要体系化地管理。为解决这个问题,绿城大数据团队于 17 年上半年进行标签体系建设形成共 13 大类、8000+ 细类的多维度标签,客户画像的构建,便依赖于这个丰富成熟的标签体系。

日均 300G 以上数据会沉淀在大数据平台中,数据体量的增加导致性能瓶颈明显,经过多轮测试、综合对比分析 Apache Kudu,Presto,Druid 以及 Apache Kylin 之后,最终选择 Apache Kylin 作为 OLAP 工具,最终优化并解决了数据服务查询的性能问题。选择 Apache Kylin 的主要原因有以下几点:

  • 成熟度来讲:Apache Kylin 和 Druid 更为成熟(参照稳定性、性能、社区活跃度等因素)
  • 查询效率来讲:Druid ≈ Apache Kylin,优于其他(主要业务场景)
  • 实用和便捷性:Apache Kylin 搭建和使用均较为便捷(同时也是华人的顶级开源项目)

另外,Apache Kylin 还有以下优点:

  1. Apache Kylin 进行预计算,空间换时间,通过预定义、计算 Cube 的方式提升查询的速度和性能,同时,查询的性能随业务的增长也不会受到影响;
  2. 数据管理及同步方便。预计算、构建 Cube、数据管理都可基于 Apache Kylin 自行管理;有开放的 API 可以方便、快速地对接内部数据处理流程、与调度系统打通。

绿城大数据平台每日增量构建数百 GB 的 Cube,构建的时间从几小时到十几小时不等,之前后台较慢的查询时间范围是从十几到几十秒,使用 Apache Kylin 后则基本都在 1-2 秒内即可予以响应。最终优化之后的客户画像构建流程如下:


图 4 客户画像构建流程

其中,业务系统数据和 Log 数据通过采集、传输后,基于 Spark 进行初步处理,之后包含埋点、运营活动等的结果数据会写入 HDFS 以及 HBase 中。一部分客户、楼盘的数据报告和分析服务通过 Hive 及 Spark 进行支撑和输出,而主要的数据服务则通过 Apache Kylin 进行构建。

在 Kylin 中,对于小数据量的 Cube,或者经常需要全表更新的 Cube,使用全量构建需要更少的运维精力,以少量的重复计算降低生产环境中的维护复杂度。而对于大数据量的 Cube,例如对于一个包含两年历史数据的 Cube,如果需要每天更新,那么每天为了新数据而去重复计算过去两年的数据就会变得非常浪费,而在这种情况下需要考虑使用增量构建。

因为绿城大数据平台的数据每天按日更新,并且日均数据量都会在百 G 以上,所以我们用到了 Apache Kylin 的增量构建 Cube。Kylin 在 Web 界面上提供了手动构建 Cube 的操作,此外,Apache Kylin 也提供了 Rest API 进行增量构建。在绿城客户画像系统中,70% 的自动化触发增量构建都基于 Rest API 完成。


图 5 Apache Kylin 构建 Cube 的 Web 页面

我们基于 Apache Kylin 构建好的数据服务,又通过开源工具 Superset 进行客户画像中标签数据的可视化分析展示,如下图:


图 6 基于 Superset 的标签画像展示

大数据可视化工具的选择非常丰富。在对比了开源工具 Superset、Zeppelin 以及商业工具 FineBI 后,最终采用 Airbnb 开源的 Superset(曾用名 Caravel)的主要原因如下:

  1. 数据安全性、权限控制,仅 Superset 有表检索的权限控制
  2. 图表多样性,Superset 拥有多达 30 张以上的图表,多表的联动性 -filter 支持多表联动
  3. 数据库多元性,Superset 既支持关系型数据库,也支持像 Apache Kylin 这样的大数据框架
  4. 社区活跃度相对更高
  5. Superset 作为一款开源的 BI 工具,能够满足我们对于标签画像联动分析的需求,节省了前端、UI 的开发资源

客户画像依赖的数据、后台计算引擎以及标签都构建完成后,绿城客户画像的一瞥如下图所示:

三、未来客户画像系统的展望

绿城客户画像系统目前只服务于房产营销,随着房屋 4S、园区商业、绿城 +App 生活服务平台的日益成熟,画像系统将融合各业务系统数据,完成客户全生活链用户画像的建设,同时客户画像会融入知识图谱,建立业主与业主、业主与房子之间的连接,从而形成一套更加全面、可视化的用户画像系统。绿城大数据团队将积极拥抱开源、拥抱互联网,拥抱变化,持续用技术和数据驱动绿城各条线的业务发展。

作者介绍:

秦海龙,绿城理想生活科技有限公司大数据平台负责人。Java 语言、Scala 语言,Hadoop 生态、Spark 大数据处理技术爱好者。

2018-02-23 16:545564

评论

发布
暂无评论
发现更多内容

阿里云实时计算Flink的产品化思考与实践【上】

Apache Flink

大数据 flink 实时计算

中国 10 亿参数规模以上大模型数量已超 100 个;GitHub 推出代码自动修复工具丨 RTE 开发者日报 Vol.172

声网

JVM字节码分析与修改:探索代码覆盖率底层实现框架

测吧(北京)科技有限公司

测试

软件测试学习笔记丨Allure2报告中添加附件-日志

测试人

软件测试 测试开发

TikTok直播专线是什么?有什么用?

Ogcloud

海外直播专线 海外直播 tiktok直播 tiktok直播专线 海外直播网络

解锁TikTok直播专线,提高使用体验

Ogcloud

海外直播专线 海外直播 tiktok直播 tiktok直播专线 tiktok直播网络

软件测试学习笔记丨Allure2 报告中添加附件(视频)

测试人

软件测试

互联网公司裁员现象调查:探寻背后原因与应对策略

小魏写代码

如何轻松管理你的海外主机?实用技巧大公开!

一只扑棱蛾子

海外主机

日立公司采用元太科技电子纸实现了无纸化营运

财见

OLAP性能再获突破!火山引擎ByteHouse性能白皮书发布

极客天地

更轻松地部署和升级 NGINX Service Mesh

NGINX开源社区

nginx Kubernetes Helm Service Mesh 服务网格 mTLS

新版Redis不再“开源”,对使用者都有哪些影响?

华为云开发者联盟

数据库 redis 华为云 华为云开发者联盟 华为云GeminiDB

码上时刻|通过逻辑视图 Logic View 快速实现批流一体

Kyligence

SpringBoot集成ElasticSearch,实现模糊查询,批量CRUD,排序,分页,高亮...

Java技术精选

聊聊我做测试开发的十年心路历程

阿里技术

测试 开发

搭建Elasticsearch、Kibana和Logstash环境:构建强大的数据分析平台

测吧(北京)科技有限公司

测试

“专业敏捷教练课程” 6月1-2日 · CSP-SM认证周末班【晋升高阶享多重福利】

ShineScrum

比 MyBatis 效率快 100 倍...

Java技术精选

云端简易指南:快速启动与管理您的ECS实例

极客天地

代码覆盖率提升策略:利用静态分析工具优化测试覆盖率

测吧(北京)科技有限公司

测试

利用Shell二次封装Elasticsearch客户端:简化数据检索与操作

测吧(北京)科技有限公司

测试

亚马逊云科技携手埃森哲、Anthropic助力企业打造负责任的AI

财见

分享一些大数据处理算法

Chris Zhang

大数据

敏捷开发:想要快速交付就必须舍弃产品质量?

敏捷开发

项目管理 Scrum 敏捷开发 产品研发 研发

深入了解一下http和https的区别

秃头小帅oi

实战代码静态分析工具:利用语法树数据工具提升代码质量

测吧(北京)科技有限公司

测试

同城双活:交易链路的稳定性与可靠性探索

得物技术

Java 后端 中间件 双活

ECS公网连接指南:精明选择公网IP计费策略

极客天地

深入理解精准测试理论与技术:揭秘测试技术的核心原理

测吧(北京)科技有限公司

测试

深度解析代码变更对业务的影响范围:业务影响范围关联分析

测吧(北京)科技有限公司

测试

Apache Kylin在绿城客户画像系统中的实践_开源_秦海龙_InfoQ精选文章