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

技术文档丨查询接口的内部执行逻辑

营销干货

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

赵立贺


悠易互通丨技术专家

技术产品中心

数据组

 

阅读完上篇《查询接口的演进过程》之后,我们一起来探索下《查询接口的内部执行逻辑》吧:


 上一篇《技术文档丨查询接口的演进过程》中我们讲到了经过一层层的重构,我们对接前端的接口变为了一个。那么今天我们一起来讨论下通过一个接口获取不同粒度的数据的内部处理逻辑是怎样流转的。

 

在介绍一个接口获取不同粒度数据之前,大家先想想,开发一个被经常访问的数据列表接口,我们通常会怎么处理呢?是不是会考虑数据存储在什么数据库里面,使用到了哪几张表,列表的字段和数据表的字段的对应关系是怎样的,字段是否需要经过特殊的转化以及是否需要将结果集缓存等过程。

 

对于一个普通的列表接口都需要考虑这么多的内容,那么一个接口能够处理不同粒度的数据是不是要复杂的多啊?答案是不一定,因为我们仅需要将上述涉及的各个考虑过程进行抽象,形成各自的处理模块,然后对不同的处理模块进行流程指定及处理模块的具体化即可,也就是使用代码实现上述的考虑过程。基于这样的抽象设计思路,目前已经将查询接口抽象出校验层、缓存层、路由层、处理层、SQL构造层和元数据等处理模块。通过这几个处理模块的齐心协力,最终实现一个接口能够获取不同粒度的数据,结构图如下图所示。下边分别介绍各个处理模块的主要处理逻辑



首先,校验层会获取到这个查询对象,校验这个对象携带的信息是否符合业务要求,如开始时间(since),结束时间(until), 查询字段(queryFields)等属性不能为空,开始时间不能晚于结束时间等。通过了校验层后,就进入了缓存层。缓存层的作用主要是缓存查询结果,其次是使用布隆隆过滤器器来防止查询攻击。

 

如果缓存层未命中,则进入了路由层,路由层的作用是确定查询对象对应的最优查询引擎,具体是通过元数据来获取包含查询字段的所有查询引擎,然后根据查询引擎的优先级来分别构造查询的SQL脚本,如果能够构造成功,则确定该查询引擎为最优查询引擎。对应到简单的普通列表查询,路由层类似于普通查询中的确定数据对应的数据库。核心方法如下:


public class QueryRouter {
     private final static QueryRouter router = new QueryRouter();
     /**     * 路由单例     */    public static QueryRouter getInstance() {        return router;    }

     /**     * 路由的主函数     */    public StorageEngine route(QueryBase queryBase, int rejectEngine){        ...    }}


确定了查询对象对应的查询引擎后,则进入查询处理层,查询处理层主要工作是执行查询前的对象加工,执行具体SQL查询及查询后的结果集加工等操作,比如查询前,需要添加查询指标大于零的过滤条件,查询后填充默认值及类型转化等。对应到普通查询,查询处理层类似于数据加工及数据查询等操作。核心方法如下:


public interface ISqlBuilder {    String getSqlScript();}
public interface ISqlProcessor {    /**     * 获取过滤条件表达式     */    String getFilterExpression(List<IFilter>filters, StorageCategory category, FilterCategory filterCategory
    /**     * 获取字段排序表达式     */    String getOrderExpression(List<OrderItem> orderItems);
    /**     * 获取表join表达式     */    String getJoinExpression(Pair<String, String> tables);
    /**     * 获取分页表达式     */    String getPageInfoExpression(PageInfopageInfo);}


通过上述各个模块的相互配合,一个基本的一个接口能够处理不同粒度数据的查询接口框架就完成了。看完了处理逻辑的描述,那么这套接口适应于什么场景呢?每套接口的产生都有其依赖的业务场景的,本套接口也不例外,它适用于那些需要对数据模型进行上卷,下转等操作的数据分析场景,如果是少量的固定报表,本套查询接口不是很适用。

 

看到这里,你是否已经在头脑中已经有了一个简单的查询处理逻辑呢?如果对哪部分不清楚或了解更多细节的话欢迎在文章下边给我留言,我们一起探讨,共同进步。

分享到..

热门文章

悠易科技正式加入AIIA安全治理委员会,以可信、可靠、可持续GEO引领行业合规发展

悠易科技正式加入AIIA安全治理委员会,以可信、可靠、可持续GEO引领行业合规发展

2026-04-24
GEO付费模式深度对比:效果付费与工作量付费,谁的风险更小?

GEO付费模式深度对比:效果付费与工作量付费,谁的风险更小?

2026-04-09
花钱买的洋教授,AI 一查就露馅

花钱买的洋教授,AI 一查就露馅

2026-04-07
内容创作的风格之问:GEO时代,写给“人”看,还是教给“AI”学?

内容创作的风格之问:GEO时代,写给“人”看,还是教给“AI”学?

2026-03-31
从“查无此品类”到 AI 搜索首选,这个新品类如何打开市场?

从“查无此品类”到 AI 搜索首选,这个新品类如何打开市场?

2026-03-30
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
优先改造旧内容,还是创作AI新内容?GEO策略的终极决策指南

优先改造旧内容,还是创作AI新内容?GEO策略的终极决策指南

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

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

2022-04-24

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

订阅我们

获取最新的案例分享。

想要实现全域新增长

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

申请试用