NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:544893

评论

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

架构师训练营第十一周作业

zamkai

Arthas 使用的各类方式

阿里巴巴云原生

Java 微服务 云原生 中间件 Arthas

缓存设计的好,服务基本不会倒

万俊峰Kevin

缓存 微服务 microservice Go 语言

最好的IDEA debug长文?看完我佛了

YourBatman

eclipse debug IntelliJ IDEA 远程调试

架构师训练营第六周作业

跳蚤

排查指南 | 当 mPaaS 小程序真机扫码时提示 "应用更新错误(50002)"

蚂蚁集团移动开发平台 mPaaS

小程序 问题排查 mPaaS

Ebean ORM框架介绍-1.增强注解

Barry的异想世界

Spring Boot jpa ORM Ebean

无意间发现 Google 代码模板,分享给大家!

C语言与CPP编程

c++ JavaScript objective-c 代码规范 Python 编码格式

逼疯UE设计师,不可不知的提升产品用户体验的10个测试方法

华为云开发者联盟

产品 测试 UI 用户体验

前端开发:Node版本引起的报错问题

三掌柜

vue.js 大前端

字节跳动架构师讲解Android开发!2021年展望Android原生开发的现状,分享一点面试小经验

欢喜学安卓

android 程序员 面试 移动开发

执行、管理、领导做不好,都有懒的因素

刘华Kenneth

领导力 管理 软件开发

区块链还可以这么玩?“点亮莫高窟”背后的腾讯云区块链

CECBC

区块链

从云数据迁移服务看MySQL大表抽取模式

华为云开发者联盟

MySQL JVM JDBC 数据迁移

Spring Boot 微服务性能下降九成!使用 Arthas 定位根因

阿里巴巴云原生

Java 微服务 云原生 中间件 Arthas

几幅图拿下 ARP 协议

飞天小牛肉

Java 程序员 计算机网络 网络协议 2月春节不断更

搜索引擎简述

跳蚤

架构2期-大作业(一)

浮生一梦

大作业 2组 架构师训练营第2期

对话京东科技算法科学家吴友政:回望2020,NLP技术发展速度强劲

京东科技开发者

人工智能 自然语言处理

产品经理训练营笔记-业务流程与产品文档(一)

.nil?

产品经理训练营

字节跳动面试必问:从外包月薪5K到阿里月薪15K,学习路线+知识点梳理

欢喜学安卓

android 程序员 面试 移动开发

欢度春节|新用户专属福利

InfoQ写作社区官方

热门活动

停车、投票、领证,区块链如何在「智慧城市」建设中大显身手?

CECBC

区块链

2. 无门槛学会数据类型与输入、输出函数,滚雪球学 Python

梦想橡皮擦

Python python 爬虫 2月春节不断更 python入门

一文总结GaussDB通信原理知识

华为云开发者联盟

数据库 通信 框架 GaussDB 计算

Kubernetes 原生 CI/CD 构建框架 Tekton 详解

字节跳动 Kubernetes 云原生 Tekton CI/CD

从0到1实现一个简单计算器

codevald

Java 项目 计算器 动手实践

Serverless 场景下 Pod 创建效率优化

阿里巴巴云原生

Docker Serverless 容器 云原生 k8s

架构2期-大作业(二)

浮生一梦

大作业 2组 架构师训练营第2期

中国移动工程师浅析:KubeEdge在国家工业互联网大数据中心的架构设计与应用

华为云开发者联盟

大数据 数据采集 工业智能体 边缘数据中心管理 EDCM

前端必学必会-多媒体-本地存储-浏览器与服务器的交互-通信功能

我是哪吒

学习 程序员 面试 大前端 2月春节不断更

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