SQLServer连接器

连接器简介

 

1. SQLServer是什么

    SQLServer官网地址是: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads,SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL Server是由Microsoft开发和推广的关系数据库管理系统(RDBMS)。其特点如下:

  1. 真正的客户机/服务器体系结构。
  2. 图形化用户界面,使系统管理和数据库管理更加直观、简单。
  3. 丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。
  4. SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。
  5. 具有很好的伸缩性,可跨越从运行Windows 95/98的小型电脑到运行Windows 2000的大型多处理器等多种平台使用。
  6. 对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。
  7. SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。
  8. SQL Server 2000与以前版本相比较,又具有以下新特性 :
  9. 支持XML(Extensive Markup Language,扩展标记语言)
  10. 强大的基于Web的分析
  11. 支持OLE DB和多种查询
  12. 支持分布式的分区视图

2. 常规使用流程

    我们在使用各种语言的驱动连接SQLServer时,常规流程如下图所示:

 

虽然最终数据库是同一个,但每种语言都有对应的驱动程序,操作方式不尽相同。

3. 面临的问题

3.1 多项目、多语言环境下交互复杂,代码重复率高,维护困难

假如在体系中存在三个子系统,它们都需要调用getUserById方法,很可能是下图所示的结构:

 

图中的【1.直连】表示B系统用php实现getUserById方法,使用php驱动直接操作SQLServer库。

图中的【2.直连】表示A系统用java实现getUserById方法,使用java驱动直接操作SQLServer库。

图中的【3.API调用】表示C系统调用A系统的API。

 

这样的结构有一些问题:如果业务调整,getUserById的实现需要改变,比如不再返回注销的用户,那AB系统的代码都要调整。用以下的结构可以轻松搞定。

 

 

3.2 驱动的版本管理

当项目需要连接多个版本的SQLServer时(比如老系统改造,系统二次开发),此问题尤为严重,驱动包的冲突会导致开发管理成本上升。

3.3 开发者门槛高,有一定的学习曲线,对于快速迭代、验证型项目成本较高

目前越来越多的人参与到软件开发中,项目规模可能不大,但几乎都会涉及到数据库应用,而关系数据库SQLServer就是一个非常好的选择。这些大量的开发者并不会太关心数据库原理、数据库范式等底层核心内容,他们关心的是怎么样高效地完成【增删查改】操作,越简单完成业务越好,让机器去做生活中的重复无趣操作从而提升效率。

很多项目中用户数不多,甚至只有1个(自用型),这样的情况下要求入门开发者去了解数据库原理、驱动操作就有点为难,毕竟开发出来的软件服务的是业务而不是技术,这种时候开发速度比成熟度、性能更为重要。

4.解决方案

 

  • 通过易源SQLServer连接器,您可以用HTTP接口操作您自己的SQLServer数据库,比如增删查改等CRUD操作,也可以说您的数据库被“HTTP”化了。
  • 易源已经将一些常见SQL操作封装成API接入点,通过几步简单的配置操作,就可以在代码中通过HTTP请求使用SQLServer数据库。
  • 您可以轻松摆脱语言、驱动、框架的约束,只用简单的写几句代码就可以实现对数据库的操作。
  • 在实际使用时,调用者只需要关心调用地址、输入参数、输出参数 三个元素,具体实现细节不需要关注,比如后端是SQLServer还是MongoDB,是txt还是csv,只要这个后端实现了同样的调用地址、输入参数、输出参数三元素即可。这样的特性非常适合于前后端分离开发。

使用易源平台操作SQLServer,其流程如下图所示:

易源的SQLServer连接器将SQLServer数据库转化为通用数据源,并可以使用http接口进行全部数据库操作,包括但不限于增、删、查、改方法。

4.1 创建数据源

  • 进入配置界面

 

  • 填写数据源配置

4.2 创建接入点时选择SQLServer连接器

 

4.3 在接入点中选择SQLServer数据源

 

4.4 创建表

通过HTTP接口创建表,详情操作请点此查看。

4.5 查看所有表

通过HTTP接口查看所有的数据表,详情操作请点此查看

4.6 插入记录

通过HTTP接口插入一条记录,详情操作请点此查看

4.7 更新记录

通过HTTP接口更新多条记录,详情操作请点此查看

4.8 删除记录

通过HTTP接口删除记录,详情操作请点此查看

4.9 查询列表

通过HTTP接口查询数据列表, 详情操作请点此查看

4.10 查询分页

通过HTTP接口查询分页记录,返回结构包含当前页、总页数、总记录数、当前页数据列表。分页虽不难,但历来都是繁琐操作(如果自己封装)使用易源的HTTP操作可以瞬间让您的程序具备分页查询功能。 。

4.11 自定义SQL语句

如果我们需要用到复杂的SQL语句,在易源可以预先设置。比如说一段100行的复杂SQL代码,里面嵌入变量,这些变量从客户端用HTTP传入。SQL语句和变量您都可以自由定制。您可以使用本功能完成几乎所有的SQLServer操作。

 

 

5. 性能问题

以前是直连SQLServer,现在是通过易源进行中转,您可能会对这个流程的性能提出质疑,回答如下:

 

  • 如果在同一个局域网下进行压力测试,直连时程序做充分优化,易源中转比直连方式的多消耗时间<1ms。网站或APP的响应时间在100ms-1000ms之间是可以接受的,也就是易源增加的时间是整体流程的0.01至0.001的比率,几乎可以忽略不计。这点开销,就像开车从北京到西安有1000公里,中间因为修路多走了1公里,总共由1000到1001公里,多走这1公里对全局可以忽略不计。
  • 程序直连的性能取决于数据库和客户端的优化。比如客户端程序是否使用连接池、连接参数是怎么样的,都会对测试性能产生不小的影响。而在很多情况下,客户端的程序是缺乏优化的,甚至很多程序根本不使用连接池。使用易源转发就不存在这个问题,易源默认连接池,并会动态根据繁忙情况动态调整参数,因此很多时候使用易源还会带来更高的性能。

总结:您不需要为性能担忧,对于优化得当的老鸟来说易源会慢千分之一,但对于普通开发者来说易源可能更快。

 

6. 安全问题

  • 易源平台和您签定合作协议,易源保证关键信息加密存储,保证数据安全不泄露,保证无用户授权绝对不连接数据源。
  • 易源公布对外IP,您可以设置IP白名单。

对于SQLServer连接器,易源的IP是:

  • 121.41.60.109
  • 120.26.59.160
  • 120.26.61.225
  • 129.211.129.137

 

 

 

 

连接器功能(使用场景)

适合以下条件时,使用易源的SQLServer连接器是个很好的选择:

  1. 在二次开发系统中使用SQLServer,但不想引入依赖包,也不想修改原有代码;
  2. 快速迭代的新系统,可能由多个开发语言子系统组成,PHP,JAVA, PYTHON等,如果用原生语言驱动,需要熟悉各驱动用法。而使用HTTP则调用方法一致。
  3. 系统与系统交互时,您需要提供接口给第三方的情况;通常的做法,就算最简单的查询也需要硬编码,然后重启系统,如果有接口参数更改则再次编码和重启系统。如果使用配置类型的HTTP接口,则创建和修改都可以在几分钟内完成。
  4. 您对IP白名单、可调权限、日志、监控、后端负载等有需求,如果您自己硬编码把Oracle数据暴露为接口,接口的管控功能需要自己做,而使用易源HTTP则天然具备管控功能; 
  5. 您已经对易源平台的操作、接口调用比较熟悉;