CN113360478A - 一种多数据源集成方法 - Google Patents

一种多数据源集成方法 Download PDF

Info

Publication number
CN113360478A
CN113360478A CN202110709477.7A CN202110709477A CN113360478A CN 113360478 A CN113360478 A CN 113360478A CN 202110709477 A CN202110709477 A CN 202110709477A CN 113360478 A CN113360478 A CN 113360478A
Authority
CN
China
Prior art keywords
data source
connection
key
information
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110709477.7A
Other languages
English (en)
Other versions
CN113360478B (zh
Inventor
张志成
李明明
郭保荣
彭文净
解荧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202110709477.7A priority Critical patent/CN113360478B/zh
Publication of CN113360478A publication Critical patent/CN113360478A/zh
Application granted granted Critical
Publication of CN113360478B publication Critical patent/CN113360478B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及数据库领域,具体提供了一种多数据源集成方法,具有如下步骤:S1、数据源信息配置;S2、系统读取配置信息;S3、测试连接信息,连接数据库;S4、构建数据库连接池存放连接;S5、当使用到此连接,根据key值获取数据连接池,用此连接池中连接做其他数据库操作。与现有技术相比,本发明可以使调用者屏蔽掉数据连接层面的问题,进而专注于数据业务展示层面的开发。

Description

一种多数据源集成方法
技术领域
本发明涉及数据库领域,具体提供一种多数据源集成方法。
背景技术
数据可视化主要旨在通过图形方式清晰有效地传递信息。也就是说,可视化的存在是为了帮助我们更好地传递信息。我们可以使用程序将已有数据转化为可视化结果,也可以使用简单的数据可视化工具通过相应的操作将数据文件转化为可视化结果,甚至进行进一步的数据分析与探索,这类工具很多,但是其中首要的条件都是创建数据源的连接,否则将无法读取相关数据库中的数据也无法做到数据的可视化。
但是目前数据库的种类极多,根据数控存储的方式目前分为两大类型,即关系型和非关系型数据库,若每个系统都去实现这部分数据库的连接过于繁琐,达不到快速开发的目的。
发明内容
本发明是针对上述现有技术的不足,提供一种实用性强的多数据源集成方法。
本发明解决其技术问题所采用的技术方案是:
一种多数据源集成方法,具有如下步骤:
S1、数据源信息配置;
S2、系统读取配置信息;
S3、测试连接信息,连接数据库;
S4、构建数据库连接池存放连接;
S5、当使用到此连接,根据key值获取数据连接池,用此连接池中连接做其他数据库操作。
进一步的,在步骤S1中,采用spring boot作为后台框架,在项目启动时,读取项目中默认相关数据源的连接驱动。
作为优选,使用spring的ApplicationRunner,在项目启动时即将加载yml中配置的相关数据源信息,根据相关driver的名称加载到classloader中。
进一步的,对于外包扩展的数据源驱动,定义相关文件夹用于存储驱动,然后读取该文件夹路径,将相关驱动包动态加载到系统中,从而达到动态添加数据驱动的功能。
进一步的,当前端选定相关数据源并将相关数据源信息请求到后端时,后端采用将jdbcUrl、username、password和version关键信息做相关加密,后得到此连接的key,使用ConcurrentHashMap存储连接的key,value为对应连接的数据库连接池,此处使用DruidDataSource作为数据库的连接池。
进一步的,将所用到的数据库连接驱动jar包整理好,根据不同数据源驱动的不同连接url也做好相关配置。
作为优选,对于安全系数高的驱动采用Kerberos认证,在配置数据源信息时若存在Kerberos认证则需要配置相关密钥。
进一步的,根据步骤S1中的数据源信息配置,在步骤S2中根据规则生成key,判断Map中是否包含所述key,若存在,则取出对应的连接池;如不存在,创建对应连接池。
进一步的,当多个用户同时请求一个新数据源时,则加入ReentrantLock;若采用分布式部署的方式也可使用分布式锁来实现。
进一步的,在步骤S4中,取数据源版本,然后连接url,通过md5加密做key存储在map中。
本发明的一种多数据源集成方法和现有技术相比,具有以下突出的有益效果:
本发明可以使调用者屏蔽掉数据连接层面的问题,进而专注于数据业务展示层面的开发。对于多版本多数据源的情况可以较为全面的包含数据连接信息,从而完成对于数据源的统筹管理。不管对于关系型数据库还是非关系数据库都有较好的适配,对于安全等级较高的系统也可以采用Kerberos等认证的方式,从而达到对于数据安全的保护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1是一种多数据源集成方法的流程示意图;
附图2是一种多数据源集成方法中多数据源管理数据结构图;
附图3是一种多数据源集成方法中系统读取配置信息的流程示意图;
附图4是一种多数据源集成方法中请求锁流程示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
下面给出一个最佳实施例:
如图1所示,本实施例中的一种多数据源集成方法,具有如下步骤:
S1、数据源信息配置;
S2、系统读取配置信息;
S3、测试连接信息,连接数据库;
S4、构建数据库连接池存放连接;
S5、当使用到此连接,根据key值获取数据连接池,用此连接池中连接做其他数据库操作。
进一步的,在步骤S1中,采用spring boot作为后台框架,在项目启动时,读取项目中默认相关数据源的连接驱动。此处可以使用spring的ApplicationRunner,在项目启动时即将加载yml中配置的相关数据源信息,根据相关driver的名称加载到classloader中。对于外包扩展的数据源驱动,定义相关文件夹用于存储驱动,然后读取该文件夹路径,将相关驱动包动态加载到系统中,从而达到动态添加数据驱动的功能,避免停机加载对用户造成不便影响。
如图2、3所示,当前端选定相关数据源并将相关数据源信息请求到后端时,后端采用将jdbcUrl、username、password和version关键信息做相关加密,采用国密SM4算法对其加密,后得到此连接的key,使用ConcurrentHashMap存储连接的key,value为对应连接的数据库连接池,此处使用DruidDataSource作为数据库的连接池。使用ConcurrentHashMap的数据结构是因为它由一个Segment数组和多个HashEntry组成,实现原理是实现了锁分离的思路解决了多线程的安全问题。
将需要用到的数据库连接驱动jar包整理好,目前常用的数据源主要包括mysql、oracle、sqlserver、hs2、mongodb、elasticSearch、sparksql、impala、postgresql、newsql、phoenix、Greenplum等,根据不同数据源驱动的不同连接url也做好相关配置,做到一一针对,不同版本的数据库连接驱动存在些许区别,对于准备的连接驱动需要特别注意,对于某些安全系数较高的驱动还存在对应的认证还需要特别配置,采用Kerberos认证。
Kerberos认证使用对称密钥的方式对“用户对网络服务的访问”进行认证。对称密钥即发送和接收数据的双方必使用相同的密钥对明文进行加密和解密,那么密码不需要在网络中传输。因此在配置数据源信息时若存在Kerberos认证则需要配置相关密钥。
如图4所示,当多个用户同时请求一个新数据源时,会存在并发请求的问题,此时,若是map中不存在此数据源则可能产生并发问题,多个请求同时创建连接池造成性能损耗,故此处加入ReentrantLock,加锁用于减少并发带来的性能损耗和其他由于并发问题。若采用分布式部署的方式也可使用分布式锁来实现,如redis、zookeeper等中间件。
在步骤S4中,取数据源版本,然后连接url,通过md5加密做key存储在map中。
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种多数据源集成方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (10)

1.一种多数据源集成方法,其特征在于,具有如下步骤:
S1、数据源信息配置;
S2、系统读取配置信息;
S3、测试连接信息,连接数据库;
S4、构建数据库连接池存放连接;
S5、当使用到此连接,根据key值获取数据连接池,用此连接池中连接做其他数据库操作。
2.根据权利要求1所述的一种多数据源集成方法,其特征在于,在步骤S1中,采用spring boot作为后台框架,在项目启动时,读取项目中默认相关数据源的连接驱动。
3.根据权利要求2所述的一种多数据源集成方法,其特征在于,使用spring的ApplicationRunner,在项目启动时即将加载yml中配置的相关数据源信息,根据相关driver的名称加载到classloader中。
4.根据权利要求3所述的一种多数据源集成方法,其特征在于,对于外包扩展的数据源驱动,定义相关文件夹用于存储驱动,然后读取该文件夹路径,将相关驱动包动态加载到系统中,从而达到动态添加数据驱动的功能。
5.根据权利要求4所述的一种多数据源集成方法,其特征在于,当前端选定相关数据源并将相关数据源信息请求到后端时,后端采用将jdbcUrl、username、password和version关键信息做相关加密,后得到此连接的key,使用ConcurrentHashMap存储连接的key,value为对应连接的数据库连接池,此处使用DruidDataSource作为数据库的连接池。
6.根据权利要求5所述的一种多数据源集成方法,其特征在于,将所用到的数据库连接驱动jar包整理好,根据不同数据源驱动的不同连接url也做好相关配置。
7.根据权利要求6所述的一种多数据源集成方法,其特征在于,对于安全系数高的驱动采用Kerberos认证,在配置数据源信息时若存在Kerberos认证则需要配置相关密钥。
8.根据权利要求7所述的一种多数据源集成方法,其特征在于,根据步骤S1中的数据源信息配置,在步骤S2中根据规则生成key,判断Map中是否包含所述key,若存在,则取出对应的连接池;如不存在,创建对应连接池。
9.根据权利要求8所述的一种多数据源集成方法,其特征在于,当多个用户同时请求一个新数据源时,则加入ReentrantLock;若采用分布式部署的方式也可使用分布式锁来实现。
10.根据权利要求9所述的一种多数据源集成方法,其特征在于,在步骤S4中,取数据源版本,然后连接url,通过md5加密做key存储在map中。
CN202110709477.7A 2021-06-25 2021-06-25 一种多数据源集成方法 Active CN113360478B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110709477.7A CN113360478B (zh) 2021-06-25 2021-06-25 一种多数据源集成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110709477.7A CN113360478B (zh) 2021-06-25 2021-06-25 一种多数据源集成方法

Publications (2)

Publication Number Publication Date
CN113360478A true CN113360478A (zh) 2021-09-07
CN113360478B CN113360478B (zh) 2023-03-10

Family

ID=77536359

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110709477.7A Active CN113360478B (zh) 2021-06-25 2021-06-25 一种多数据源集成方法

Country Status (1)

Country Link
CN (1) CN113360478B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952228A (zh) * 2023-03-09 2023-04-11 山东浪潮超高清智能科技有限公司 一种数据库连接池连接Impala的方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408899A (zh) * 2008-11-21 2009-04-15 北京中企开源信息技术有限公司 一种网站多数据源切换方法和装置
CN107357831A (zh) * 2017-06-21 2017-11-17 信雅达系统工程股份有限公司 可配置的流程实例数据分布式存储方法及系统
CN107844508A (zh) * 2016-09-21 2018-03-27 北京航天长峰科技工业集团有限公司 一种企业业务流程数据管理方法
CN108667930A (zh) * 2018-05-09 2018-10-16 聚龙股份有限公司 一种动态数据源配置与自动化切换方法
CN110502560A (zh) * 2019-08-13 2019-11-26 威富通科技有限公司 一种数据库连接参数封装的方法及服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408899A (zh) * 2008-11-21 2009-04-15 北京中企开源信息技术有限公司 一种网站多数据源切换方法和装置
CN107844508A (zh) * 2016-09-21 2018-03-27 北京航天长峰科技工业集团有限公司 一种企业业务流程数据管理方法
CN107357831A (zh) * 2017-06-21 2017-11-17 信雅达系统工程股份有限公司 可配置的流程实例数据分布式存储方法及系统
CN108667930A (zh) * 2018-05-09 2018-10-16 聚龙股份有限公司 一种动态数据源配置与自动化切换方法
CN110502560A (zh) * 2019-08-13 2019-11-26 威富通科技有限公司 一种数据库连接参数封装的方法及服务器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952228A (zh) * 2023-03-09 2023-04-11 山东浪潮超高清智能科技有限公司 一种数据库连接池连接Impala的方法及系统
CN115952228B (zh) * 2023-03-09 2023-06-20 山东浪潮超高清智能科技有限公司 一种数据库连接池连接Impala的方法及系统

Also Published As

Publication number Publication date
CN113360478B (zh) 2023-03-10

Similar Documents

Publication Publication Date Title
US7743069B2 (en) Database system providing SQL extensions for automated encryption and decryption of column data
US7797342B2 (en) Database system providing encrypted column support for applications
US10002152B2 (en) Client computer for updating a database stored on a server via a network
US9747456B2 (en) Secure query processing over encrypted data
US10985902B2 (en) Dynamic symmetric searchable encryption
CN101587479B (zh) 面向数据库管理系统内核的数据加解密系统及其方法
EP2430789B1 (en) Protection of encryption keys in a database
US7587608B2 (en) Method and apparatus for storing data on the application layer in mobile devices
US20070079140A1 (en) Data migration
US8793797B2 (en) Secured database system with built-in antivirus protection
US7266699B2 (en) Cryptographic infrastructure for encrypting a database
US20090225987A1 (en) Key rotation
CN105426775B (zh) 一种保护智能手机信息安全的方法和系统
US10250613B2 (en) Data access method based on cloud computing platform, and user terminal
Ding et al. Model-driven application-level encryption for the privacy of e-health data
US20130091357A1 (en) Database management system and encryption method performed in database
EP2241986B1 (en) Privacy and confidentiality preserving schema mapping repository for mapping reuse
US8769302B2 (en) Encrypting data and characterization data that describes valid contents of a column
WO2007038509A2 (en) System and method for protecting sensitive data
CN113360478B (zh) 一种多数据源集成方法
CN117971798A (zh) SaaS软件多技术融合的数据隔离方法、系统及设备
CN115630378A (zh) 细粒度一体化数据存储安全密码防护方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant