下面是小编为大家整理的salaxy实时指标分享202012,供大家参考。
y salaxy 实时指标分享 201812
01 为什么要有实时指标?
velocity 的局限性 对商户类规则支持不好 短时间大批量数据
商户回溯 5 分钟交易笔数大于等于 22000
商户回溯 10 分钟,涉及交易卡大于等于 20000 张
velocity 保留最近的 1000 条记录 性能 记录数限制 velocity 的优点
简单粗暴 遍历历史数据 几乎能实现所有的变态规则
02 实时指标核心原理
可计算缓存 服务端数据聚合
时间片 + 滑动窗口 流计算 实时计算 增量计算 (velocity 基于全量历史数据计算)
按时间分片 指标 key 拼装 指标数据读写
简单的玩法和套路
实时指标还有很大的优化空间,有很多优化措施没有实现 03 实时指标架构
开源流处理框架 storm
spark-streaming flink
典型的流处理架构 流处理引擎 + 异步消息队列 譬如 flink + kafka
流计算难点
时间窗口处理 乱序
数据延迟 状态持久化
salaxy 应对方案
业务抽象 流处理引擎与缓存 持久层 合并
减少中间层 计算无状态化 ( 无状态 集群扩容友好)
可计算缓存 按时间分片 服务端聚合 (分片粒度根据窗口周期自适应调整)
简单 朴素 高效 针对业务场景高度优化的流计算方案 流计算领域的新门派
最简洁的部署架构 api + aerospike
写入可以增加异步消息队列 api + aerospike + kafka
使用 kafka 的缺点 1 消息队列有延迟 准确性性会有有影响
2 写入快 没必要走 MQ
3 增加复杂度
性能
稳定性
高可用
一把梭
全靠 AS
S AS 有多嗨,y salaxy 就能有多嗨!!!
04 实时指标类型
count 次数统计
sum 求和
avg 平均
min 最小值
max 最大值
var 方差
std 标准差
set 关联个数
activeDayCount 活跃天数
eventTimeDif 事件时间差
hisvalue 历史取值
concentrateAge 小时集中度天数
topn 字段排行
trend 趋势
continuationCount 连续次数
continuationAgg 连续累计
kurtosis 峰度系数
bizChain 业务链 只有配了 velocity 指标才会写数据
05 实时指标配置
实时指标配置表
salaxy_zb 参考
salaxy1.2 实时指标表结构 http://wiki.tongdun.me/pages/viewpage.action?pageId=25400503
关键字段及实例
uuid
app
event
事件(策略集)
calc_type sum 具体指标类型 win_size H
win_type last
win_count 3
dim1 account 主属性 dim2
dim3
calc_field payAmount 计算字段 time_slice_size
分片大小 目前根据 win_size 自动设置 dim_read1 recvAccount 主要用于跨事件 主属性取值非统一字段的场景 dim_read2
dim_read3
max_size 5 最大分片数 attach_fields {"includeCurrent":"1"} 附加参数 指标附加参数说明 http://wiki.tongdun.me/pages/viewpage.action?pageId=25402909filter_str [
{
"leftPropertyName": "age",
"operator": ">",
"rightValue": "60",
"rightValueType": "input",
"type": "INT"
} ] 过滤条件
指标配置重点难点
跨事件 指定主属性
当前 变量过滤条件 从属性
一些限制 只有 string 类型才能用作主属性 从属性 过滤条件只支持简单的 and 操作配置不支持当前笔 主属性配置成支付金额 肯定是错误的用法
06 实时指标数据结构
每一种(类型)指标都有特定的 数据结构 具体参考 salaxy1.2 指标数据结构 http://wiki.tongdun.me/pages/viewpage.action?pageId=25398455
通用指标 sum count avg min max 事件时间差 存储 4 个值
sum count min max
方差 / 标准差 存储三个值
count sum ivar ivar 增量方差
活跃天数 map 结构 活跃过的日期 譬如 20181203 作为 key 活跃天数 计算时间周期内 key 个数即可
关联个数 关联字段值作为 key
,时间戳负数作为 value
07 当前笔处理
只有常规统计类指标(count sum avg min max)有当前笔处理逻辑
在 api 端处理
当前笔 和 as 聚合结果再聚合一次
08 跨事件处理
指定主属性字段
指标天然跨事件
A 事件下的规则 可以使用 其他 事件下的指标
指标 key 根据 主属性及相应的值来拼装 ,
主属性取值不是同一字段时 需要指定一下
09
变量过滤条件/ / 从属性
主属性 账号 , 当前手机号最近 3 天交易笔数 会在过滤条件里 配置 手机号 等于 当前手机号 手机号会作为指标 key 的一部分
这个相当于 从属性 , 后续会把从属性独立出来
主属性 账号 accountNo
变量过滤条件/从属性 手机号 mobileNo
key=accountNo.777777.mobileNo.666
10
N N 小时内交易金额等于当前笔的交易笔数
目前无法实现
交易金额 数字 不能作为从属性
最好把数字规整化 譬如 某个区间规整为固定的 key
11 优化点
从属性 独立,从过滤条件里拿出去 ( 从属性独立了,才能 支持 指定从属性)
支持更复杂的过滤条件配置 (感觉这个不是很有必要,复杂的用动态脚本)
四则运算指标
复杂表达式指标
12 TODO
不同切片下性能状况 时间切片的自定义设置 纯内存和硬盘模式的对比 (SSD
非 SSD) 虚拟机 物理机 性能差异
13 对比其他流处理架构的优势
架构简单高效 低成本
部署 运维成本低 计算 存储 缓存 三合一 ,高效率 高性能 as 集群功能完善 副本机制
数据自动迁移
高可用
高性能
水平扩展
目前流处理主流是 flink
力压 flink (flink 不支持中间结果数据查询)
对离线计算友好 ,补充历史分片即可
参考资料
大数据流处理框架对比
http://codefun007.xyz/view/article_detail.htm?id=124
salaxy1.2 架构简介 http://wiki.tongdun.me/pages/viewpage.action?pageId=25404497
salaxy1.2 实时指标表结构 http://wiki.tongdun.me/pages/viewpage.action?pageId=25400503
指标附加参数说明 http://wiki.tongdun.me/pages/viewpage.action?pageId=25402909
salaxy1.2 实时指标配置操作手册 http://wiki.tongdun.me/pages/viewpage.action?pageId=25403786
salaxy1.2 指标数据结构 http://wiki.tongdun.me/pages/viewpage.action?pageId=25398455
salaxy1.2 实时指标表结构 http://wiki.tongdun.me/pages/viewpage.action?pageId=25400503
当前笔处理 salaxy 实时指标包含当前笔处理 http://wiki.tongdun.me/pages/viewpage.action?pageId=26843593
aerospike4.3.1.5 安装记录 http://wiki.tongdun.me/pages/viewpage.action?pageId=27688173
AS FAQ
http://wiki.tongdun.me/pages/viewpage.action?pageId=26919565
通联性能压测 http://wiki.tongdun.me/pages/viewpage.action?pageId=27669961
poc 规则整理 http://wiki.tongdun.me/pages/viewpage.action?pageId=25403809
指标常见问题记录 http://wiki.tongdun.me/pages/viewpage.action?pageId=28640920
指标平台测试问题纪录 http://wiki.tongdun.me/pages/viewpage.action?pageId=24641334
通联现场压测记录 20181214 http://wiki.tongdun.me/pages/viewpage.action?pageId=28659828
推荐访问:salaxy实时指标分享202012 实时 指标 分享