论文部分内容阅读
随着互联网的发展,城市交通也处在高速发展的阶段,指数增长的异构存储数据不断增加着用户和开发人员的使用和维护成本。如果无法快速高效地将数据串联起来,数据的价值就无法被有效利用。目前阿里云城市大脑使用的底层数据源有RDS for My SQL、Tablestore、HBase等,特别是存储着PB级数据的列式存储数据库,它们有着各自的数据支持SDK,用户往往需要纠结于资源的调配细节,这无形之中增加了使用数据的成本。同时,业务要求数据需要在不被破坏的情况下支持快速抽取以进行分析。如何将有着各自应用场景的数据的获取方式统一起来,让应用方以低成本且高效的方式使用数据成为强烈需求。为了解决此类问题,本文实现了一个基于异构数据源的数据服务系统,使得用户可以通过在线配置数据接口的形式,以RESTful风格的API透出数据。本文研究了各种异构数据源的底层数据库和数据服务在发展过程中使用的技术,重点研究了数据服务系统建设过程中使用的技术概念和数据服务模型的应用,并对服务API的RESTful风格,数据库持久化框架My Batis,数据库连接模板Jdbc Template等相关技术做了综述。在研究数据库技术和数据服务的基础上,本文设计和实现了统一查询SDK和基于此的数据服务系统。统一查询SDK将重点放在数据库的统一连接方式和提供通用数据库存取方法上,使用单独实现的连接池和Druid连接池来屏蔽异构数据源的连接方式,并通过数据库模板解决数据增删改查的问题。而数据服务则通过在线配置接口API的方式向客户提供数据快速分析查询的能力与多样的数据消费形式。数据服务模块有三个子模块,以接口配置模块、版本管理模块和查询引擎模块实现API在线动态配置、API服务版本管理和授权以及底层数据操作。使用本系统,用户可以低成本的数据消费形式快速在多个数据源中获取数据,在线配置API接口也满足了及时响应的客户需求,这使得交通场景下异构数据的获取变得简单,可靠。本人参与了数据服务系统的设计和实现工作,并完成项目在公有云和专有云环境下的部署。目前系统能够在多场景下稳定运行。