一、第三平台带来的数据问题
我们知道,在传统的java架构中,JPA支持ORM映射元数据,将框架据此将实体对象持久化到数据库表中。以实现应用对后端数据的访问。
那么,随着第三平台的发展,BIG DATA,、CLOUD、MOBILE、社交使各种数据激增,有的是结构化的,有的是非结构化的:
这带来的问题有:
产生大量数据孤岛,而这些数据在需要时很难访问
点对点数据集成过于简单,很难做到弹性扩容
数据蔓延导致安全和合规风险
而现有的数据集成方法存在技术上的不足:
提取和移动数据会增加延迟和成本
每个项目都以不同的方式解决数据访问和集成问题
解决方案与数据源紧密结合
灵活性和敏捷性差
在这种情况下,数据如何抽取和访问数据?
二、企业数据虚拟化
Enterprise Data Virtualization (EDV)并不是一个新的技术,它已经存在了10多年。但它在这几年越来越收到重视。
在早些年,数据虚拟化解决方案主要用于金融、电信行业。但是,在过去五年中,EDV在其他行业(如保险,零售,医疗保健,制造业,石油和天然气以及电子商务)的采用量显着增加。另外,由于架构师已经意识到EDV对于满足他们日益增长的数据需求的重要性,因此许多实现已从单一用例部署转移到支持多个用例的更多企业级策略。
在当下,EDV的主要使用场景有:
客户的360度视图
一家公司可能想要了解客户对产品发布的反应,以便将其与以前的发布进行比较;或想方设法最大限度地减少客户流失。EDV解决方案可以快速提取、转换和处理来自社交网络(例如Facebook和Twitter)的数据,然后数据仓库和CRM应用程序集成,以创建客户的360度视图。EDV还可以快速支持新的数据源,并适应不断变化的业务需求。
处理集成数据的IoT分析。EDV能够利用来自存储在Hadoop,Spark或NoSQL存储库中的传感器和设备的大量IoT数据以及历史数据执行分析。 EDV平台上的物联网分析功能使制造商能够预测机器故障、最大限度地减少或消除生产放缓,并支持主动重新订购机器部件。
实时数据共享和协作数据平台。EDV不仅仅是一个数据访问层 - 它是一个数据平台,支持多行业务(LOB)、业务分析师和技术组织共同协作,实现整个企业的数据共享和协作。数据虚拟化提供了将可信的企业数据无缝地提供给应用程序和分析工具的统一可信视图的能力。
通过集中访问保护敏感数据。一些金融服务和医疗机构使用数据虚拟化来保护和控制敏感数据。数据虚拟化有助于他们通过公共数据层集中数据访问、确保对敏感数据进行有安全控制,特别是当数据来自不同的来源时。
为技术和商业用户提供自助式数据平台。对于技术组织而言,数据虚拟化使开发人员和架构师能够快速映射数据源,确保细化的数据安全性和持续可用性,并专注于业务问题而不是应对技术问题。
我们看一下目前主流的EDV厂商:
各个厂商的产品如下:
接下来,我们看看红帽的JDV产品,以便对EDV的方案有所了解。
三、JDV架构
借助于JDV,我们可以实现数据即服务:
不同源数据的上下文视图统一展现
单点访问
基于标准的接口
可共享的集成和转换逻辑
可重用的数据服务
我们看一下数据访问的示意图,这里,我们举两个例子:ESB访问数据源和应用访问数据源
ESB:
1.前端ESB发起REST请求:
2.请求到达JDV:
3.JDV将前端请求分解后访问后端数据的需求:REST消息、SQL、SOAP消息:
4.分解后的请求到达各自的数据源:
5.JDV向发起请求的ESB返回JSON结果:
BI应用:
前端的BI应用发起SQL请求:
2.请求到JDV
3.后端数据源返回信息给JDV,JDV将SQL结果返回给BI应用:
接下来,我们看一下应用和JDV通讯的具体步骤:
连接:使用不同的访问方法和存储模型快速访问来自不同系统(数据库,文件,服务,应用程序等)的数据。
组合:通过组合和转换来自多个来源的数据,轻松创建可重用、统一的通用数据模型和虚拟数据视图。
消费:通过各种开放标准数据访问方法,实时提供实时可用的统一虚拟数据模型和视图,以支持不同的工具和应用程序。
我们看一下JDV的业务视图:
JDV提供了数据访问的安全策略:
JBoss Data Virtualization使数据防火墙代理可以保持匿名的物理数据源并防止不必要的暴露
除物理来源的安全性外,还将基于角色的数据访问和审计策略应用于虚拟数据库
JBoss Data Virtualization可以提供更细粒度的安全控制:
身份验证:Kerberos,LDAP,WS-UsernameToken,HTTP Basic,SAML
授权:虚拟数据视图,基于角色的访问控制
管理:虚拟数据库权限的集中管理
审计:集中式审计日志记录和仪表板
保护:行和列掩码;SSL加密(ODBC和JDBC)
四、JDV的九个应用场景
场景1:虚拟数据集市
数据集市也叫数据市场,是一个从操作的数据和其他的为某个特殊的专业人员团体服务的数据源中收集数据的仓库。从范围上来说,数据是从企业范围的数据库、数据仓库,或者是更加专业的数据仓库中抽取出来的。数据中心的重点就在于它迎合了专业用户群体的特殊需求,在分析、内容、表现,以及易用方面。数据中心的用户希望数据是由他们熟悉的术语表现的。
场景2:扩展数据仓库
并非所有BI所需的数据在数据仓库中均可用。数据仓库通常不包括非传统数据源:如外部数据源、呼叫中心日志文件、博客文件、来自客户呼叫的语音记录以及个人电子表格。这会影响到业务,很简单,这些数据有分析的价值。
通过JDV,可以将传统数据仓库和非传统数据源统一集成:以便让外部数据源和数据仓库将看起来像一个集成数据库。这个概念被称为扩展数据仓库。
场景3:在线生成营运报告
JDV会对生产数据先进行复制,然后对复制的数据进行分析,这样不会影响到生产。
场景4:管理自服务BI
JDV向下集成多种数据源,向上为多种应用提供服务,并生成各种分析报告:
场景5:大数据
将大数据抽象为关系式视图
与现有企业来源整合
为大数据添加实时查询功能
除了JDBC和ODBC之外,还提供对基于标准的接口(如REST和OData)的全面支持。
为大数据基础架构添加安全性和治理
场景6:将现有数据与大数据集成
通过JDV,将现有数据与大数据集成非常简单
集成的方式可以用共享的,也可以为客户独特的徐秀单独开发。
场景7:JDV为SOA提供服务
需求场景:
客户希望有能够跨所有来源的通用数据模型
应用与物理数据源实现松耦合
更改数据源而不会中断应用
方案
所有数据都通过数据服务访问
JDV为企业提供了抽象和逻辑数据模型
将数据公开为Web服务和SQL,以便被应用访问
优点:
所有应用程序将通过使用通用模型“获取”相同的数据
更容易将数据公开给新的应用程序
更容易对数据源进行更改
场景8:数据库迁移
例如,将数据从OracleDB迁移到MySQL:
场景9:微服务
传统应用对数据库的访问:
多个客户端耦合到单个数据库模式
全部依赖于一个或多个数据块
直接与数据库通话的应用程序使得难以管理模式更改以及容易出错
针对微服务,我们需要两步走:
首先,将数据提供一个Owner
- 在客户端和他们需要的数据之间建立微服务和虚拟数据库
- 封装数据并仅通过虚拟DB公开需要的内容
- 在REST + JSON或OData上标准化通信
- 客户应用使用REST方式访问数据
第二步:将数据库进行拆分,因为数据是使用REST和JSON / OData使用虚拟数据库交换的,应用实际上不知道或关心数据的存储方式。