悠易科技战略升级:推出AI智能体矩阵,开启AI全域营销新征程  查看更多 >

技术文档丨查询接口的演进过程

营销干货

发布时间:2021-12-03   作者:

赵立贺



悠易互通丨技术专家

技术产品中心

数据组

 

本文是赵立贺所作的《查询接口的演进过程》,我们一起来看看吧:

  

对于业务系统而言,存在着各种显示形式,各种粒度的数据查看界面,而每一个数据查看界面都是由前端和后端的小伙伴配合来完成的,本文从后端开发的角度来分享接口的演进过程。

 

随着越来越多的广告主使用业务系统进行广告投放,那么系统也就需要满足不同广告主的数据需求,这对于开发人员而言苦不堪言。因为每一个数据需求都需要开发的小伙伴进行相应的开发来完成,那么有没有一种少开发或不开发只调整配置的方式来完成呢?

 

最开始的时候,产品提出一个数据查看需求,那么开发的小伙伴就要去了解数据查看的粒度,并且跟ETL的小伙伴沟通相应粒度的数据存储在什么地方,以及应该怎么查询(也就是一个数据需求,那么后台小伙伴就要开发一个接口),这样开发的结果就是ETL的一个结果集会有多个对外的数据查看接口,ETL工程师对结果集的任何一次升级,都需要后台数据查看开发的小伙伴修改多个对外的查看接口。示意图如下:



经过一段时间的开发和维护,会发现大部分接口的结构是类似的,有很大的优化的空间,从而有了第一次的重构。经过接口梳理和抽象,将接口按照主题域来进行归类,针对每一个主题域进行统一的数据预处理及查询加工处理来得到符合该主题域的所有结果集。这样做的好处是对于每一个主题域的处理逻辑是统一的,解决一个问题也就解决了该主题域的一类问题,比如ETL工程师对结果集的一次升级,只需要调整受影响的几个主题域即可,而且业务系统增加新的数据查看列表,开发的小伙伴先判断下该数据需要查询哪个数据主题域,对于该主题域,是否可以通过修改配置就能支持该数据查看列表,否则就扩展该主题的数据查询加工处理;缺点是会存在部分无效或冗余的字段,增加了网络传输的开销。示意图如下:



经过一段时间的使用,同时为了保证查询的性能,减少无效字段和冗余字段的传输,发现主题域越来越多,而且主题域的粒度也是越来越细(假设在极端的情况下,抽取的主题和接口的数量是一致的)。基于这样的现状,同时为了减少维护的成本,就有了第二次的重构,将前端的多个接口统一为一个,让前端来控制查询的内容,后端对于前端而言就类似于一张透明的大宽表,所有的业务需求都通过这张透明的大宽表来完成。示意图如下:



其中输入参数和返回结果的示例代码如下:


/** * 实体查询的输⼊入参数 */public class EntityQuery implements IQuery, Serializable {    // 查询字段    private List<String> queryFields;    // 过滤条件    private List<IFilter> filters;    // 开始时间    private String since;    // 结束时间    private String until;    // 排序信息列列表    private List<OrderItem> orderBys;    // 所属业务    private String owner;    // 分⻚页信息     private PageInfo pageInfo;    // 其他信息    private Object options;}
/** * 返回结果 */public class ResultData implements Serializable {    // 查询的字段顺序列列表    private List<String> headers;    // 查询的结果集    private List<Map<String, Object>> data;    // 查询的sql表达式        private String sqlScript;    // 总条⽬目数    private int totalSize;}


通过上述的输入对象,能够明确的表示界面需要的字段有哪些,以及对应的查询条件、排序和分页信息等,而且返回信息也相对统一了。这样做的好处是开发的小伙伴能够有一套完整的数据查看处理流程,而且能够有更多的精力来优化这套处理流程,使其有更强的稳定性和更高的扩展性。但是,这种一个接口承担所有的数据查看的形式也是存在缺点的,比如对于频次的查询、人群包的流量分析,用户画像分析等模块的数据查看都会有其特定的信息需要传递到后端才能进行相应数据的处理等。所以现阶段的接口统一也是在现有业务情况下来进行的。后续随着业务的不断变化,接口也会跟着不断的演进。 


总之,随着数据查看接口的不断演进,接口越来越少、而且越来越灵活的宗旨不变。但是,接口的演进是在公司的特定业务场景下进行的,并没有一种万能的方法,能够适应于所有的业务。期待着我们的接口更少更灵活。


分享到..

热门文章

GEO工作应该放在市场部、电商部还是单独成立数字化创新部门来牵头?

GEO工作应该放在市场部、电商部还是单独成立数字化创新部门来牵头?

2026-03-25
多AI引擎技术对接:统一标准还是分别适配?一份给决策者的实战指南

多AI引擎技术对接:统一标准还是分别适配?一份给决策者的实战指南

2026-03-24
GEO多平台拓展:驾驭边际成本,实现AI认知的规模覆盖

GEO多平台拓展:驾驭边际成本,实现AI认知的规模覆盖

2026-03-24
面对竞品“擦边策略”,品牌是否需要跟进?一份AI时代的决策指南

面对竞品“擦边策略”,品牌是否需要跟进?一份AI时代的决策指南

2026-03-24
当团队对AI搜索的理解还停留在表面,强推GEO会不会执行变形?

当团队对AI搜索的理解还停留在表面,强推GEO会不会执行变形?

2026-03-19
315之后,GEO到底该现在做,还是明年做?一个老营销人的实战决策框架

315之后,GEO到底该现在做,还是明年做?一个老营销人的实战决策框架

2026-03-19
竞品是否已通过GEO抢占了我们的品类认知?一个营销老兵的GEO破局思考

竞品是否已通过GEO抢占了我们的品类认知?一个营销老兵的GEO破局思考

2026-03-19
品牌在AI搜索里到底有没有存在感?一位顾问的紧急评估笔记

品牌在AI搜索里到底有没有存在感?一位顾问的紧急评估笔记

2026-03-13
2026年主流AI搜索优化服务商对比评测:如何选择靠谱的合作伙伴?

2026年主流AI搜索优化服务商对比评测:如何选择靠谱的合作伙伴?

2026-03-12
GEO ROI衡量的完整逻辑链:从心智到商业价值的系统化方法

GEO ROI衡量的完整逻辑链:从心智到商业价值的系统化方法

2026-02-05
悠易科技亮相英伟达APAC AI营销周,定义品牌影响力新战场——GEO

悠易科技亮相英伟达APAC AI营销周,定义品牌影响力新战场——GEO

2026-01-23
AI更爱AI写的内容?用这套「反人性」写作招式,修炼碳硅双料爆款!

AI更爱AI写的内容?用这套「反人性」写作招式,修炼碳硅双料爆款!

2026-01-16
什么是 GEO(Generative Engine Optimization)?一篇讲透

什么是 GEO(Generative Engine Optimization)?一篇讲透

2026-01-07
悠易GEO智能体九步路径:抢占AI时代下的品牌心智货架

悠易GEO智能体九步路径:抢占AI时代下的品牌心智货架

2025-12-23
从辅助到核心,企业如何基于AI AGENT升级品牌数字营销

从辅助到核心,企业如何基于AI AGENT升级品牌数字营销

2025-03-28
AI Agent 是什么以及它如何助力全域营销

AI Agent 是什么以及它如何助力全域营销

2025-03-21
DeepSeek、Manus 相继爆火,营销 Agent的春天还远吗?

DeepSeek、Manus 相继爆火,营销 Agent的春天还远吗?

2025-03-10
电商流量瓶颈下,美迪惠尔如何成为站外拉新ROI王者

电商流量瓶颈下,美迪惠尔如何成为站外拉新ROI王者

2021-11-27
Forrester大中华区总经理邹欣:CDP帮助企业ROI达到388%

Forrester大中华区总经理邹欣:CDP帮助企业ROI达到388%

2021-11-27
从数字营销的角度深度解读悠易互通CDP

从数字营销的角度深度解读悠易互通CDP

2022-04-24

扫码加入
高质量营销交流社群

订阅我们

获取最新的案例分享。

想要实现全域新增长

选择悠易科技,成为1000+成功企业的一员

申请试用