星云系统的定位
星云系统=圈选平台(圈人、圈品、圈商、圈 X),给运营、商家提供精细化运营平台
随着用户、商品、商户的一切行为数据可以被企业追踪到,企业的关注点日益聚焦在如何利用大数据为经营分析和精准营销服务,提供精细化运营
得物当前已有圈选品配置数量21W+,每天处理2100+任务,总计计算30~40亿数据给到下游应用
星云架构
架构透视
DASS 层服务对外提供各种通用能力,APASS 层服务作为 DASS 层服务的底部支撑服务,不对外提供接口服务,属于星云内部能力,这样划分是为了让每个服务的能力边界和服务分层更加明确,也能缩小应用接口访问权限的管理,只有 DASS 层服务才需要接口权限申请
得物星云平台不但能支持自有内部数仓的标签数据,也能兼容外部团队的数仓数据,外部数仓只需要按照规范格式写数即可,数据的巡检、标签元信息的配置使用、人群的上层功能使用都可以复用所有能力
DASS 层服务
DASS 层有三个核心服务,分别是圈选平台、圈选画像、圈选 check 服务
圈选平台:
支撑页面操作的后端核心服务
圈选画像:
对外提供用户标签、商品标签、商户标签查询的能力
圈选 check 服务:
对外提供用户圈选配置 check 关系,商品和圈选配置 check 的关系以及商户和圈选配置的关系
圈选平台
标签、行为元信息维护的前端入口,圈选、圈选组配置的前端入口,下面是圈选平台的整体功能图
圈选平台的逻辑透视
得物星云平台当前一共有21W有效圈选、4600+有效圈选组,这些圈选配置的维护入口就是圈选平台
标签广场
标签数据来源于星云标签、算法标签以及效能平台的内部员工标签
标签有实时标签、离线标签,在得物星云平台实时标签的时效性可以保障到准实时级别,离线标签则分成了 T+1、T+1时效性
当然如果任何业务方有自己的数仓团队产出标签数据,只是希望借用星云上层配置、圈选、画像能力时,只需要将数据按照星云指定要求、指定格式同步到指定库表中,即可在星云平台完成对齐使用
星云平台支持内部标签和三方标签在圈选配置中进行混用,用户无需关心标签的来源,可以随意使用
星云内部专门开发一套 SQL 生成的框架,上层只需要传模型引擎会将模型转成不同的 SQL 语句,包含 ADB/CK 的查询语句,并且支持非常复杂的关联、嵌套等查询 SQL 的生成
圈选管理
下图则是圈选管理的其中一个页面截图,圈选的实体分成了用户、商品、商户,圈选的类型包含了标签、行为、导入、SQL、融合
人群数据看板
由于数据安全问题,下面的功能接入没有将真实数据展示,人群数据看板功能主要是展现每天上游对于用户和人群关系校验的流量、命中情况,当前圈选 check 服务每天请求总量基本在864亿次
任务执行监控
DASS 层有专门的巡检服务,当前星云有27种不同类型的数据任务,每种数据任务都可能出现延迟、失败等情况,星云的巡检服务可以在以上情况出现的第一时间感知且告警给响应的值班人员进行问题跟踪
圈选 check 服务
圈选 check 服务处于得物内部 P0核心链路,导致圈选 check服务有着很高 QPS 请求打入的前提下,业务对于圈选check 服务还有着很高的稳定性要求
圈选 check 主要是校验用户-圈选、商品-圈选、商户-圈选命中关系,上游根据调用的命中结果做出后续C 端业务逻辑处理
逻辑透视
圈选 check 服务应对不同场景时使用了不同的数据层,有 hbase、redis、es 等,不同数据层都有自己的特点,不同场景的读写流量以及底层数据量是不一样的,选择合适的数据层很重要
圈选画像服务
圈选画像服务主要是校验用户-标签、商品-标签、商户-标签的关系,例如可以获取用户某个标签的值,或者判断用户是否属于某个标签
圈选有时候无法满足所有运营使用场景,有些场景可能需要配置几千个圈选 check,这个显然是不合理的,就会需要用到画像服务来承接类似场景
代码逻辑透视
APASS 层服务
数据处理服务
星云平台有27种不同的任务类型,每天将近2100个任务需要执行,数据处理服务的稳定、高效运行对于星云来说非常重要
DASS 应用和 APASS 应用的交互
-
RPC 交互
-
执行计划交互
-
MQ 交互
架构透视
大数据平台的数据库通常存在一个共性问题就是单个查询的数据量可以支撑很大,但是往往不能支撑稍稍高一点的查询 QPS,为了服务稳定,需要对底层大数据库做非常精确的资源预检 & 查询限流等工作,在星云有一套天枢平台就是专门做这件事情的
得物星云平台的数据处理服务设计了正向、逆向两种通道任务,这样做解决了单个任务异常时不会阻塞其他正常任务的线程池队列通道,也可以对两种通道的流量、失效时间进行不一样的监控和配置,最大化保证任务吞吐量和自动化异常重试能力
数据巡检告警服务
服务定位
观测星云平台各个数据节点的异常情况,任务质量、数据质量、接口性能质量等等
数据埋点服务
埋点范围的脑图
埋点主要是针对 DASS 层应用进行数据埋点
天枢平台
服务定位
得物星云DASS 层数据库限流服务
-
针对 CK、ADB 等数据库进行精准资源限流,评估待执行任务的 CPU、内存损耗以及当前数据库剩余可用资源水位来决定最优的执行数据库
-
根据待执行队列中的任务可能损耗,动态规划队列中任务执行的顺序,包含了任务本身优先级、任务资源利用等等一系列因素,最大化保障数据库的利用率以及稳定性