揭秘宜信财富年度账单的技术实现
一、背景
年底很多移动产品都会推出自己的年度账单,每年都会引起大众媒体的关注。今年有幸参与了宜信财富APP年度账单的开发,本文将带大家探索宜信财富年度账单背后的技术架构和研发逻辑,希望可以给大家带来一些思路上的启发。
二、前端整体架构和执行流程
宜信财富年度账单前端架构所采用的技术栈包括:
- 前端页面是用H5制作;
- 数据加载进度百分比,技术用到swiper插件和一些CSS3动效;
- 海报生成用到了canvas图片合成,把海报背景和二维码合二为一。
- 为了完成MGM的追踪,在二维码中嵌入M1信息。
三、数据来源和数据处理
本次年度账单涉及客户维度、销售维度、客户标签等数据,其中客户维度包括活动参与、文章、视频浏览等数据。这部分数据的整合来源于数据中台的主题数据。以下是数据中台的架构图:
- ODS:数据来源层,存放从业务系统抽取过来的数据,业务系统中的原始数据经过抽取、洗净、传输装入本层。这层数据接近原始数据,却不等同原始数据,数据装入的时候进行了去重、去噪、表命名、字段命名等一系列规范操作。
- DW:数据仓库层,该层是数据仓库的主体,将ODS层的数据按照主题建立数据模型,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合,是一个包含所有主题的通用的集合。
- DM:数据集市层,是以某个业务应用为出发点而生成的字段比较的宽表,用于提供后续的业务查询、OLAP分析、数据分发等,该层数据主要由轻度汇总层和明细层数据计算生成。
在数据中台的架构上,我们建立了“以客户为中心”的标签体系。该套标签体系按照人口属性、价值指标、地理指标、心理指标等几大类对数据进行分层管理,标签的加工方式主要来源于DW和DM层数据的轻量汇总或者衍生加工,以及部分模型生成的产品预测等标签。这套标签体系支持360度客户画像以及分析关键接触点,提供基于跨渠道全流客户体验优化和关键触点优化。
本次账单的数据主要来源于业务操作、用户管理等源系统数据,这些数据被结构化地存储在数据库集群中,且都已接入数据中台,并按照定时任务或者实时数据落入对应主题域。账单数据通过其相应主题数据加工而成,前端通过接口API访问数据。
账单需求里的“销售评价消息实时推送”和“账单传播短信发送”都是通过智能运营系统支持的,该系统是集运营活动创建、执行、管理、反馈、迭代为一体的自动化平台,能够通过用户属性、标签、计划、操作等数据筛选客群,实现目标的精准触达,提升关键指标和运营效率。
下面是智能运营系统创建运营计划流程图:
- 销售评价消息实时推送:该功能依赖wormhole实时平台将数据落到数据库,然后在智能运营系统里配置数据,最终通过消息中心和极光将消息推送到产品终端。
- 账单传播短信发送:按照业务规则筛选符合条件的客群,在智能运营系统里配置短信模板等内容,然后调用notify通过短信平台将短信发送给客户。
四、技术后台
用户数据来源于宜信财富平台本身数据,包含:基础信息、浏览信息、参与活动等多项数据,如何保证数据准确、高效地传达到前端是后端开发所必须保障的。资产平台采用了spring+jersery+oracle+redis+jetCache的技术架构,为了提升用户体验度,加快响应时间,数据存储上该项目采用了缓存、非关系数据库和传统关系数据库灵活结合的方式,更好地提供数据支撑。
在对接年度账单需求时,我们也着重考虑了接口响应时间。年度账单用户数据包括用户活动数据及操作数据两张表,其中操作数据是一个重量级表格,为了减少数据库的IO操作,采用了两种方式来减少IO时间:
- 根据数据组提供的标签,尽量减少访问资产数据表的几率;
- 利用java8的Stream的新特性,将复杂的SQL逻辑放进代码中进行处理。
Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,更像一个高级版本的 Iterator。
此外Stream还提供了并行技术,在不关注集合内部数据顺序的时候,可以采用并行Stream拆解任务来加速处理过程。例如在做统计,需要将子产品进行汇总,或其他操作时。
如果将复杂的代码逻辑直接用SQL来实现,代码会非常冗长,执行效率也不高。代码的逻辑是使用并行流Stream,根据类型对相关数据进行分类汇总,并且根据本次需求的业务场景将某一子类划分到另一个类别下。
使用Stream并行流代替SQL逻辑可以加速执行效率,减少响应时间。感兴趣的同学如果想了解Stream的更多特性,可以参考技术文档。Stream的应用能够让代码逻辑更加清晰,提高速度。
五、总结
此项目是由多个团队共同协作完成,本文对年度账单需求做了一次技术层面的梳理,由于时间比较匆忙,内容不太详细,希望可以给大家带来一些开发思路,也希望用户可以真切感受到我们的用心。
来源:宜信财富管理技术团队
作者:米志华、孙李强、李力、赵全超
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
美国权威媒体CRN预测:2020年值得关注的10个新兴云计算趋势
云计算在过去一年里极速发展,其速度之快,让人难以预测未来会发生什么。即使依照这些趋势而新发明的技术在不断变化并且极其脆弱,而推动这些趋势和技术不断发展的企业和组织最终也很有可能发生变化,但不妨碍这些大趋势将成为2020年云计算市场上的主要特征,十分值得我们关注。 许多新兴的云计算趋势可以溯源至标准化和增强兼容性阶段,这是任何技术领域成熟的标志。公有的、托管的、私有的以及本地的云基础设施之前的壁垒越来越少,从而使得工作负载更具有可移植性,数据流更具移动性。 行业的标准化很大程度上要归功于开源项目的发展,它使得关注的重点转移到技术堆栈上,而不是单一的某项技术。同时,出现了新的角色来支持应用程序级流程,从启用人工智能和高性能计算到交付创新的SaaSOps和应用程序开发服务。 多云将变为全云(Omni-Cloud) 2019年,许多企业开始跨多个IaaS提供商来定期部署工作负载,因此说我们进入多云世界已经十分寻常。但是随着应用程序变得更加可移植,计算周期更易于实时获取,数据集成平台简化了连接,那么在不久的将来,多云的趋势可能会看起来更像是全云趋势。 通常情况下,大型企业可能很快就会成为那些超大...
-
下一篇
Kafka 集群在马蜂窝大数据平台的优化与应用扩展
马蜂窝技术原创文章,更多干货请订阅公众号:mfwtech Kafka 是当下热门的消息队列中间件,它可以实时地处理海量数据,具备高吞吐、低延时等特性及可靠的消息异步传递机制,可以很好地解决不同系统间数据的交流和传递问题。 Kafka 在马蜂窝也有非常广泛的应用,为很多核心的业务提供支撑。本文将围绕 Kafka 在马蜂窝大数据平台的应用实践,介绍相关业务场景、在 Kafka 应用的不同阶段我们遇到了哪些问题以及如何解决、之后还有哪些计划等。 Part.1 应用场景 从 Kafka 在大数据平台的应用场景来看,主要分为以下三类: 第一类是将 Kafka 作为数据库,提供大数据平台对实时数据的存储服务。从来源和用途两个维度来说,可以将实时数据分为业务端 DB 数据、监控类型日志、基于埋点的客户端日志 (H5、WEB、APP、小程序) 和服务端日志。 第二类是为数据分析提供数据源,各埋点日志会作为数据源,支持并对接公司离线数据、实时数据仓库及分析系统,包括多维查询、实时 Druid OLAP、日志明细等。 第三类是为业务方提供数据订阅。除了在大数据平台内部的应用之外,我们还使用 Kafka ...
相关文章
文章评论
共有0条评论来说两句吧...




微信收款码
支付宝收款码