IOTA 架构下的数据采集
导读
IOTA架构是基于IOTA和AI时代背景下的大数据架构模式,其整体技术结构的核心是贯穿于整体业务始终的数据模型,具有提高整体的预算效率的作用。IOTA架构这一概念由易观首次提出,并将其应用于最新研发的精细化运营工具中。
在之前文章中介绍过易观提出的IOTA架构,相信很多同学已经对整体有了一个了解。本文将介绍IOTA架构下的数据采集。
SDK架构
通过上图可以看出,在IOTA架构下,在当下终端设备计算能力普通较强的情况下,SDK不仅承载着以往的基础功能,并且被赋予了边缘计算的角色。例如在设备端就开始做数据完整性和有效性的校验、将用户行为转化成为统一的数据模型,然后传送给服务端。
一个稳定的数据采集端需要有如下功能,存储、回数、控制、保护。
存储: 数据存储,校验当前存储数据合法性,及防止数据被第三方串改。
回数: 数据上报,加密上报数据,防止被第三方截取,保证不受HOOK等影响,防止DNS污染等。
控制: 控制发送策略,可以指定3G/4G/wifi 环境上传,可以调整上报时间频次、本地数据缓存规则全部可动态调整。
保护: 有自保护机制。不要影响用户的正常使用,减少因逆向导致的数据异常
显而易见,普通的采集端都具有这些功能。作为IOTA架构下的采集端进行了哪些优化呢?如下:
统一模型: 在IOTA架构下从数据采集到数据接收以及数据处理都是用一套数据模型。例如对于用户行为分析时会用到的模型中,我们可以抽象出以下几个基本要素: 发生行为主体 (who),行为发生的时间(when), 行为的发生地点(where),发送的事件(what)。在IOTA架构下也统称为Common Data Model。
聚合: 同样的数据进行边缘聚合计算,如某些用户访问路径可以直接由采集端来完成,生成对应类似漏斗的事件。一般这个计算是服务器下发策略来动态控制的,当然也可以随时做出调整,值得注意的是这是不可以逆的运算,并且这种模式只适用于适合间隔发送模式的数据。
校验: 数据的完整和有效性可以放到采集端处理,确保SDK给server的数据不是被修改的,产生的数据是合理的,这就要求采集端加入防作弊的功能。 这是一个成熟产品长期需要投入的项目,大部分公司的风控做的也有一部分这样的工作。典型的案例如防止Xposed拦截,防止反编译,防止二次打包。
实时: 数据实时上报给服务器,这样才能让用户感觉到零延迟,实时计算。如12306购票,要立即的进行查看结果,不能等得到次日才看到结果。同样的带来另一个问题,个人高频上报、用户高峰期大量用户上报需要进行区分,两者对收数服务器而言是一样的,那这个时候就需要收数服务器和采集端进行通讯,动态控制。
高可控: 高可控是对数据采集最基础,也是最重要的一个要求。不然面对攻击,服务器无法实时监控,动态调整,立即处理,可能会导致服务器的短时间无法正常工作(如数据处理延迟,严重的乃至宕机)。如图:
图二
当然对于很多大数据架构中,数据采集端各不相同,这也是我们在支持大量用户后的一个分享。
总的来说,IOTA架构下的数据采集有如下特点:采用统一的数据模型,支持边缘计算、支持与服务器端动态交互的控制策略。这些已经在易观的数据产品中广泛使用,也欢迎大家试用易观方舟、易观千帆。
评论