Http 协议或(其他)协议的调用换标准 SQL

查看 99|回复 10
作者:jimisun   
目前有这样一个需求,适配底层各种数据源,对外提供统一的调用形式
现在要做一个数据集的功能
[ol]
  • 屏蔽底层数据源例如,mysql,oracle,pg 等的底层数据源
  • 对底层数据源建立字段映射代理,例如源数据表有十个,可以只映射 5 个,外面只能用这 5 个
  • 对外提供统一的调用形式
    [/ol]
    我的思路是将 http 按照指定规范进行调用,后端根据规范将请求使用 querydsl-sql 底层框架生成对应数据库类型的 sql 执行
    提问
    [ol]
  • 这样实现是否合理
  • 有没有类似的协议或开源产品能够借用? PS:如果自己开发转换 sql 过程的会有考虑不全,不支持多表等问题
    [/ol]

    底层, SQL, 调用, 数据

  • dzdh   
    GraphQL ?
    NessajCN   
    你先说清楚「对外提供统一的调用形式」,这个调用形式具体是啥
    http 只是个传输协议,你是要用 restful 接口呢,还是 websocket 发事件呢,还是自己编一套规则,
    还有对外是对哪个「外」,公司内部?第三方开发?平台接入?任意网友?
    jimisun
    OP
      
    @dzdh 这个刚才搜索了一下,应该是无具体的数据库无关对吗?
    jimmy3780   
    @jimisun GraphQL 不仅跟数据库无关,它甚至都不用关心你的数据是怎么来的
    jimisun
    OP
      
    @NessajCN 需求是这样的,底层数据来源会很多,比如接口,csv 文件,oracle 数据库,然后就行提供一个接口调用形式,给内部的大屏,报表,应用,提供一个接口,查询即可。类似市面上的 apijson
    jimisun
    OP
      
    @jimmy3780 谢谢,我想您一定很了解这个 GraphQL 。 我向你请教一个重要的我比较关系的问题。GraphQL 支持在运行时添加其实例吗? 比如我从管理系统增加了一条规则,那么就可以使用 GraphQL 訪問。
    NessajCN   
    @jimisun 那就是最普通的 restful 接口咯....给内部用的就不用考虑验证啊安全这些了直接写接收请求和返回字段就行
    kemistep   
    解决方式很简单:直接传递 sql ,后台解析即可,前端只需要拼接 sql 即可,后台做运算后,传递给前端 json
    jimisun
    OP
      
    @jimmy3780 还有一个场景,GraphQL 如果和数据无关的话,怎么实现高性能检索呢? 相比 GraphQL 必须要把数据加载进内存中使用自己的规范进行检索。如果某张表有 1000 万左右能实现吗?
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部