一、在线特点体系
主流互联网产品中,不论是经典的计算告白、搜刮、推荐,照样垂直范畴的路径筹划、司机派单、物料智能设计,建立在人工智能技巧之上的策略体系已经深刻到了产品功能的方方面面。响应的,每一个策略体系都离不开大年夜量的在线特点,来支撑模型算法或人工规矩对请求的精准响应,是以特点体系成为了支撑线上策略体系的重要支柱。美团点评技巧博客之前推出了多篇关于特点体系的文┞仿,如《机械进修中的数据清洗竽暌闺特点处理综述》侧重于介绍特点临盆过程中的离线数据清洗、发掘办法,《营业赋能利器之外卖特点档案》侧重于用不合的存储引擎解决不合的特点数据萌芽需求。而《外卖排序体系特点临盆框架》侧重介绍了特点计算、数据同步和线膳绫侨芽的特点临盆Pipeline。
本文以美团酒旅在线特点体系为原型,重点大年夜线上数据存取角度介绍一些实践中的通用技巧点,以解决在线特点体系在高并发情况下面对的问题。
1.1 在线特点体系框架——临盆、调剂、办事一体化
Merge之后的更新队列,我们依然可以应用雷同的算法进行同步Diff计算:在队列中找到大年夜于上一次更新版本号的所稀有据集。可以看到因为版本号的归并,算出的Diff不再是完全精准的更新数据,在队列中最早的更新数据集有可能包含部分已经同步过的数据——但如许的退化并不影响同步精确性,仅仅会造成少量的同步冗余,冗余的量取决于Diff中最早的数据集经由Merge的次数。
在线特点体系就是经由过程体系高低文,获得相干特点数据的在线办事。其功能可所以一个简单的Key-Value(KV)型存储,对线上供给特点萌芽办事,也可以辐射到通用特点临盆、同一特点调剂、及时特点监控等全套特点办事体系。可以说,几小我日就可以完成一个简单能用的特点体系,但在复杂的营业场景中,把这件事做得更便利、快速和稳定,却须要一个团队经久的积聚。
以上构造图为一体化特点体系的概貌,自底向上为数据流动的偏向,各部分的功能如下:
- 数据源:用于计算特点的原始数据。根据营业需求,数据来源可能是分布式文件体系(如Hive),关系型数据库(如MySQL),消息队列(如Kafka)等。
- 特点临盆:该部分负责大年夜各类数据源攫取数据,供给计算框架用于临盆特点。临盆框架须要根据数据源的类型、不合的枷⒚痂求综合设计,是以会有多套临盆框架。
- 特点导入:该部分负责将计算好的特点写入到线上存储供特点办事攫取。该部分重要存教导入功课之间的依附、并发写入的速度与一致性等问题。
- 特点办事:该部分为全部特点体系的核心功能部分,供给在线特点的存取办事,直接办事于上层策略体系。
特点的生命周期按照上述过程,可以抽象为五个步调:读、算、写、存、取。全部流程于特点体系框架内成为一个整体,作为特点工程的一体化解决筹划。本文重要环绕特点办事的核心功能“存”、“取”,介绍一些通用的实践经验。特点体系的延长部分,如特点临盆、体系框架等主题会在后续文┞仿中做具体介绍。
1.2 特点体系的核心——存与取
本文重要介绍了一些在线特点体系的技巧点,大年夜体系的高并发、高吞吐、大年夜数据、低延迟的需求出发,并以一些实际特点体系为原型,提出在线特点体系的一些设计思路。正如上文所说,特点体系的界线并不限于数据的存储与攫取。像数据导入功课调剂、及时特点、特点计算与临盆、数捷报份、容灾害复等等,都可看作为特点体系的一部分。本文是在线特点体系系列文┞仿的第一篇,我们的特点体系也在需求与挑衅中赓续演进,后续会有更多实践的经验与大年夜家分享。一家之言,不免有漏掉和偏颇之处,然则参考之资可以勾竽暌柜,若能为各位架构师在面向本身营业时供给一些思路,善晚大年夜焉。
简单来说,可以认为特点体系的核心功能是一个大年夜号的HashMap,用于存储和快速提取每次请求中相干维度的特点集合。然而实际情况并不像HashMap那样简单,以我们的通用在线特点体系(Datahub)的体系指标为例,它的核心功能重要需面对存储与攫取方面的挑衅:
- 高并发:策略体系面向用户端,办事端峰值QPS跨越1万,数据库峰值QPS跨越100万(批量请求造成)。
- 高吞吐:每次请求可能包含上千维特点,收集IO高。办事端收集出口流量均值500Mbps,峰值为1.5Gbps。
- 大年夜数据:固然线上须要应用的特点数据不会像离线Hive库那样宏大年夜,但数据条数也会跨越10亿,字节量会达到TB级。
- 低延迟:面对用户的请求,为保持用户体验,接口的延迟要尽可能低,办事端TP99指标须要在10ms以下。
以上指标数字仅是以我们体系作为参考,实际各个部分、公司的特点体系范围可能差别很大年夜,但无论一个特点体系的范围如何,其体系核心目标必定是推敲:高并发、高吞吐、大年夜数据、低延迟,只不过各有不合的优先级罢了。当体系的优化偏向是多目标时,我们弗成能自力的用任何一种方法,在有限资本的情况下做到面面俱到。留给我们的是营业最重要的需求特点,以及对应这些特点的解决筹划。
二、在线特点存取技巧
本节介绍一些在线特点体系上常用的存取技巧点,以丰富我们的兵器库。重要内容也并非具体的体系设计,而是一些常见问题的通用技巧解决筹划。但如上节所说,若何根据策略需求,应用合适的技巧,制订对应的筹划,才是各位架构师的核心价值地点。
2.1 数据分层
特点总数据量达到TB级后,单一的存储介质已经很难支撑完全的营业需求了。高机能的在线办事内存或缓存在数据量上成了杯水车薪,分布式KV存储能供给更大年夜的存储空间但在某些场景又不敷快。开源的分布式KV存储或缓存筹划很多,比如我们用到的就有Redis/Memcache,HBase,Tair等,这些开源筹划有大年夜量的供献者在为它们的功能、机能做出赓续尽力,本文就不更多着墨了。
对构建一个在线特点体系而言,实际上我们须要懂得的是我们的特点数据是如何的。有的数据异常热,我们经由过程内存副本或者是缓存可以或许以极小的内存价值覆盖大年夜量的请求。有的数据不热,然则一旦拜访请求稳定而快速的响应速度,这时基于全内存的分布式存储方檀卷是不错的选择。对于数据量级异常大年夜,或者增长异常快的数据,我们须要选择有磁盘兜底的存储筹划——个中又要根据各类不合的读写分布,来选择存储技巧。
推荐阅读
在中国电商成长的汗青中,造节促销一向是巨擘们激烈竞争的┞方场,但聚美优品似乎更愿意选择一条完全不合的路径。在某次全网电商节日开端之前,因为看法不合,聚美优品CEO陈欧和一位核心高管在会议室里起了争执,甚至>>>详细阅读
本文标题:人工智能在线特征系统中的数据存取技术
地址:http://www.17bianji.com/lsqh/36079.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示