查询与计算分离的data api架构

广告位招租
扫码页面底部二维码联系

在Morningstar的架构里,dat本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】a api起着越来越重要的作用,5年前开【本文受版权保护】【本文受版权保护】发的版本虽然非常稳定,但已经不能满足我们【原创内容,转载请注明出处】【关注微信公众号:wwwtangshuangnet】现在业务发展的需要,因此新的data a【未经授权禁止转载】【关注微信公众号:wwwtangshuangnet】pi被设计为一个统一接口,也就是所有的产著作权归作者所有,禁止商业用途转载。【原创不易,请尊重版权】品都通过data api获得数据,只有d转载请注明出处:www.tangshuang.net【未经授权禁止转载】ata api与后端的数据库进行交互。

本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net【原创内容,转载请注明出处】本文作者:唐霜,转载请注明出处。

我所工作的领域全部是前端,因此对于我们而【关注微信公众号:wwwtangshuangnet】【关注微信公众号:wwwtangshuangnet】言,大部分情况下,都只需要通过ajax向【版权所有,侵权必究】【本文受版权保护】data api发出请求,或者通过一个本著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。地的代理,用node构建数据请求代理层,【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。实现请求转发,实际上是data api的著作权归作者所有,禁止商业用途转载。【未经授权禁止转载】前端处理而已。

【作者:唐霜】【转载请注明来源】【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。

但是今天在接触的过程里面,我发现我们的d【访问 www.tangshuang.net 获取更多精彩内容】【访问 www.tangshuang.net 获取更多精彩内容】ata api还分为SqlMart和Na著作权归作者所有,禁止商业用途转载。【访问 www.tangshuang.net 获取更多精彩内容】tisa,一直搞不明白怎么data ap【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。i还分。经过一番了解之后,原来这两个只是【版权所有,侵权必究】【原创内容,转载请注明出处】data api的两个服务,其中SqlM本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshuang.netart负责获取轻量级的数据,直接向前端返本文版权归作者所有,未经授权不得转载。【本文受版权保护】回数据,而如果需要进行数据运算,则会将服【本文首发于唐霜的博客】【本文首发于唐霜的博客】务转向Natisa,通过Natisa运算本文版权归作者所有,未经授权不得转载。【本文受版权保护】后,将结果返回给前端。

【版权所有,侵权必究】原创内容,盗版必究。【版权所有,侵权必究】【转载请注明来源】

不过由于历史的原因,这两个服务之间并不能未经授权,禁止复制转载。【转载请注明来源】很好的兼容,特别是一些datapoint原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。,在名称上也不一样,这导致如果前端要从N未经授权,禁止复制转载。【作者:唐霜】atisa切换到SQLMart服务,不得【转载请注明来源】【版权所有】唐霜 www.tangshuang.net不修改一些字段名称。

【原创不易,请尊重版权】本文版权归作者所有,未经授权不得转载。本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】【关注微信公众号:wwwtangshuangnet】

data-api-service

未经授权,禁止复制转载。【本文首发于唐霜的博客】著作权归作者所有,禁止商业用途转载。

但如果我们忽略这个问题,从理想的状态来考本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。虑,这样的设计有什么样的好处,应该怎么来本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。运行呢?

【版权所有】唐霜 www.tangshuang.net【原创内容,转载请注明出处】【本文首发于唐霜的博客】著作权归作者所有,禁止商业用途转载。【作者:唐霜】

查询与计算分离的好处【未经授权禁止转载】

原创内容,盗版必究。转载请注明出处:www.tangshuang.net本文版权归作者所有,未经授权不得转载。【原创内容,转载请注明出处】原创内容,盗版必究。

一般大型的公司后面都有海量的数据,而且由【版权所有】唐霜 www.tangshuang.net【转载请注明来源】于业务涉及面广,数据格式基本上都是杂乱的【关注微信公众号:wwwtangshuangnet】【版权所有,侵权必究】,虽然大数据系统已经被广泛运用,但是在d原创内容,盗版必究。本文版权归作者所有,未经授权不得转载。ata api这一层,仍然尚未做到这么智【作者:唐霜】转载请注明出处:www.tangshuang.net能,仍然需要开发者完成查询与计算两个其实本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】可以完全分开的业务。

【转载请注明来源】未经授权,禁止复制转载。【原创不易,请尊重版权】【关注微信公众号:wwwtangshuangnet】【版权所有】唐霜 www.tangshuang.net

SQLMart和Natisa属于服务级别本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】的应用,服务级别也就是service,负【关注微信公众号:wwwtangshuangnet】著作权归作者所有,禁止商业用途转载。责不同的具体任务,对于只是查询而言,比如本文版权归作者所有,未经授权不得转载。【版权所有,侵权必究】立即查询出当前某只股票的价格,或者上月结本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。束某只基金的流出等等具体的数据(这些数据【访问 www.tangshuang.net 获取更多精彩内容】转载请注明出处:www.tangshuang.net以非常明确的值保存在数据库中),则直接通本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】过SQLMart进行查询取出。

【作者:唐霜】【本文受版权保护】著作权归作者所有,禁止商业用途转载。【原创不易,请尊重版权】【原创不易,请尊重版权】

但是对于一些需要统计后运算的数据,就需要【原创内容,转载请注明出处】【作者:唐霜】有一个强大的计算服务来完成。举一个例子,【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。我希望获得某只基金的回报率在过去十年在具【原创内容,转载请注明出处】著作权归作者所有,禁止商业用途转载。体分类中的百分位排名,并且按季度返回最近本文版权归作者所有,未经授权不得转载。【本文首发于唐霜的博客】一期之前的所有数据,那么这个具体场景中就【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。需要进行计算。需要查询出过去十年每一年的原创内容,盗版必究。原创内容,盗版必究。回报率以及当年的每月回报率,然后再进行时本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。间区间内的累加,得到一个total值,再【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。在这个时间区间内进行降序排序,再进行百分本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshuang.net位排名运算,最后将这个结果返回。由于这个本文版权归作者所有,未经授权不得转载。【原创内容,转载请注明出处】过程里面可能涉及几万条甚至几十万条数据,【关注微信公众号:wwwtangshuangnet】【关注微信公众号:wwwtangshuangnet】而且由于这个需求并不固定,比如时间区间、【原创不易,请尊重版权】本文作者:唐霜,转载请注明出处。步幅等等都可以让用户自己选择,而且当前数【原创不易,请尊重版权】【版权所有】唐霜 www.tangshuang.net据还在变化,所以根本没法缓存一个数据下来本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。(一些历史确定数据可以变相缓存),只能即【关注微信公众号:wwwtangshuangnet】转载请注明出处:www.tangshuang.net时进行运算,这时就需要Natisa进行运【本文首发于唐霜的博客】著作权归作者所有,禁止商业用途转载。算。

著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net

可以想象,这两个service肯定由不同【版权所有,侵权必究】原创内容,盗版必究。的服务器来完成,这样就算其中一个挂掉或出【转载请注明来源】著作权归作者所有,禁止商业用途转载。现bug,也不会影响另外一个服务。
【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.net 无论是在性能上,还是在业务专注度上,这原创内容,盗版必究。本文作者:唐霜,转载请注明出处。种区分都对整体的维护有好处。

【原创不易,请尊重版权】【版权所有,侵权必究】【转载请注明来源】

架构的想象空间【未经授权禁止转载】

【访问 www.tangshuang.net 获取更多精彩内容】【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshuang.net【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。

前端请求数据时,可以事先作出预判,决定采转载请注明出处:www.tangshuang.net本文作者:唐霜,转载请注明出处。用哪一个服务来返回数据。有些可以更快获得原创内容,盗版必究。【原创内容,转载请注明出处】的数据,可以提前加载出来,从而更快渲染界【版权所有】唐霜 www.tangshuang.net本文版权归作者所有,未经授权不得转载。面,而需要长时间运算的数据,就放到后面再【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshuang.net渲染。

【访问 www.tangshuang.net 获取更多精彩内容】【原创不易,请尊重版权】【本文首发于唐霜的博客】【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。

而对于服务端而言,也有了自己的一些空间,【原创不易,请尊重版权】原创内容,盗版必究。如果把所有的运算都放在Natisa,那么转载请注明出处:www.tangshuang.net原创内容,盗版必究。整个公司那么多产品都从Natisa去运算著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】,再牛逼的服务器,也可能承受不住压力而宕【作者:唐霜】【本文首发于唐霜的博客】机,对于每个产品自己的server,可以【未经授权禁止转载】【未经授权禁止转载】根据自己的情况,从SQLMart获取细粒【原创不易,请尊重版权】【版权所有】唐霜 www.tangshuang.net度很小的数据后进行小型的运算,返回给前端【转载请注明来源】【关注微信公众号:wwwtangshuangnet】,这样不走Natisa,可能也能给前端速原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net度带来一些优化。

未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。【未经授权禁止转载】

而对于SQLMart而言,由于它的任务非【本文受版权保护】【原创不易,请尊重版权】常轻量,所以甚至可以起到代理的作用,当来【版权所有】唐霜 www.tangshuang.net【原创不易,请尊重版权】自前端的请求的数据并不能直接从SQLMa【关注微信公众号:wwwtangshuangnet】本文作者:唐霜,转载请注明出处。rt得到时,它甚至可以将请求转发给Nat著作权归作者所有,禁止商业用途转载。【版权所有,侵权必究】isa,这样相当于做了一个Mapping【本文受版权保护】本文作者:唐霜,转载请注明出处。,对于前端而言,完全无需区分到底是哪一个【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。服务在为自己提供数据,甚至真的可以把da原创内容,盗版必究。转载请注明出处:www.tangshuang.netta api当做黑箱,请求数据,拿到数据【转载请注明来源】【关注微信公众号:wwwtangshuangnet】

转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。未经授权,禁止复制转载。

在Morningstar,虽然工作的都是本文版权归作者所有,未经授权不得转载。【本文受版权保护】前端的内容,但是由于公司是以数据为支撑的【本文受版权保护】未经授权,禁止复制转载。技术架构,所以在整体的技术框架上,还是比转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。较保守一些,使用的技术都是需要等到它在市【原创内容,转载请注明出处】【转载请注明来源】场上表现的非常稳定之后才敢用,这无疑阻碍【未经授权禁止转载】【关注微信公众号:wwwtangshuangnet】了我们快速学习和掌握新技术的实践途径。但原创内容,盗版必究。本文作者:唐霜,转载请注明出处。是,也正因为这样,Morningstar【关注微信公众号:wwwtangshuangnet】【本文受版权保护】的架构非常成熟,在数据端的沉淀也很有深入【未经授权禁止转载】未经授权,禁止复制转载。学习的空间,一旦掌握了,我相信在任何一家未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。以数据见长的公司,都可以非常容易上手。

【本文首发于唐霜的博客】【转载请注明来源】【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】

2016-10-24 6342

为价值买单,打赏一杯咖啡

本文价值63.42RMB