数据集成中间件知识点总结

  数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。

一、模型分类

  (1)联邦式数据库系统(Federated Distributed Database System),这种分布式数据库的特点是结点自治和没有全局数据模式,每个结点所看到的数据模式仅仅限于此结点所用到的数据。它一般由两部分组成:一个是本节点的数据模式,另一个是供本节点共享的其他节点上有关的数据模式。结点间的数据共享由双边协商确定。

  (2)中间件模式通过统一的全局数据模型来访问异构的数据库、遗留系统、Web资源等。中间件位于异构数据源系统(数据层)和应用程序之间,向下协调各数据源系统,向上为访问集成数据的应用提供统一数据模式和数据访问的通用接口。中间件系统则主要集中为异构数据源提供一个高层次检索服务

  (3)数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的和不可修改的数据集合。其中,数据被归类为广义的、功能上独立的、没有重叠的主题。

  二、Web服务的数据集成中间件设计与实现

  该系统的主要部分是中介器(Mediator)和针对每个数据源的包装器(Wrapper)。这里中介器的功能是接收针对全局模式生成的查询,根据数据源描述信息及映射规则将接收的查询分解成每个数据源的子查询,再将子查询发送到每个数据源的包装器。包装器将这些子查询翻译成符合每个数据源的子查询,并把查询结果返回给中介器。中介器将接收的所有数据源的结果合并成一个结果返回给用户。

  在Web Services的框架下使用一组Web Service协议构建信息集成系统。为中间件的数据访问接口创建一个Web Service,然后使用WSDL向服务中心注册。客户端首先向注册中心发送查找请求,然后通过SOAP协议调用数据访问接口,从这些数据源获取数据。这种方法具有完好封装、松散耦合、规范协议和高度的集成能力等特性。

该系统有五个核心模块:

  (1)中间件配置模块:配置中间件和各个异构数据库的连接信息,包括数据库地址、登录用户名、密码、数据库名

  (2)查询分解模块:根据数据源描述信息及映射规则将接收的查询分解成每个数据源的子查询

  (3)子查询发送模块:分析用户提交的查询语句,从中找出该查询需要的数据源,然后到中间件的配置信息中查找相应的包装器,把连接信息和子查询发送到对应的包装器。

  (4)子查询执行模块:子查询模块根据不同的数据库类型,加载对应的JDBC驱动程序,实现多个不同数据库的查询操作。

  (5)查询结果重组模块:查询结果重组模块收集子查询的结果,这些结果是以DataSet的形式存在的,然后合并为一个大的DataSet作为最终的结果。返回给客户端时,根据DataSet生成一个结果XML文件给客户端,完成整个查询流程。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

运维必读:Linux 的内存分页管理

内存是计算机的主存储器。内存为进程开辟出进程空间,让进程在其中保存数据。我将从内存的物理特性出发,深入到内存管理的细节,特别是了解虚拟内存和内存分页的概念。

1273
来自专栏IT技术精选文摘

缓存在分布式系统中的应用

缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。 一、缓存概述 缓存是分布式系统中的重要组件,主要...

3609
来自专栏友弟技术工作室

云原生概念

1.8K5
来自专栏北京马哥教育

高性能服务端漫谈

一、背景 进入多核时代已经很久了,大数据概念也吵得沸沸扬扬,不管你喜欢不喜欢,不管你遇到没遇到,big-data或bigger-data都必须正视. 处理大数...

3188
来自专栏IT技术精选文摘

redis架构演变与redis-cluster群集读写方案

redis-cluster是近年来redis架构不断改进中的相对较好的redis高可用方案。本文涉及到近年来redis多实例架构的演变过程,包括普通主从架构(M...

5633
来自专栏极客猴

pustil - 获取系统信息库

运维工程师经常使用 Python 编写脚本程序来做监控系统运行的状态。如果自己手动使用 Python 的标准库执行系统命令来获取信息,会显得非常麻烦。既要兼容不...

1471
来自专栏性能与架构

Redis 4.0 新特性

简介 Redis 4.0 即将发布,这是个很重要的版本,变动比较大,下面看几个重要的新特性。 推出模块系统 通过模块系统,我们可以对Redis进行自定义扩展,实...

4258
来自专栏JAVA技术zhai

分享30道Redis面试题,面试官能问到的我都找到了

Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到...

2822
来自专栏机器之心

教程 | Python代码优化指南:从环境设置到内存分析(一)

选自pythonfiles.wordpress 机器之心编译 参与:Panda、蒋思源 近日,Python Files 博客发布了几篇主题为「Hunting P...

3359
来自专栏JAVA烂猪皮

大型分布式网站架构:缓存在分布式系统中的应用

缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。

1643

扫码关注云+社区

领取腾讯云代金券