- 浏览: 3521185 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
wanglf1207:
EJB的确是个不错的产品,只是因为用起来有点门槛,招来太多人吐 ...
weblogic-ejb-jar.xml的元素解析 -
qwfys200:
总结的不错。
Spring Web Flow 2.0 入门 -
u011577913:
u011577913 写道也能给我发一份翻译文档? 邮件437 ...
Hazelcast 参考文档-4 -
u011577913:
也能给我发一份翻译文档?
Hazelcast 参考文档-4 -
songzj001:
DbUnit入门实战
Shashank Tiwari 在本文中对 JOLAP 进行了简要介绍,它是一种标准规范,支持在 Java™ 企业平台上创建和操纵 On Line Analytical Processing (OLAP) 数据和元数据。<!-- START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --> <!-- END RESERVED FOR FUTURE USE INCLUDE FILES-->
在过去几 年,OLAP 逐渐成为处理数据仓库和商业智能使用的多维数据的流行方法。OLAP 服务器和应用程序随处可见,并且很多存储模式、查询机制和访问策略也已经被开发出来,以满足复杂分析查询的业务需求。JDBC API 一直被用作在 Java 平台上访问和操纵维度数据的一种代理机制,但是,使用 JDBC 会折损维度模式本身的优点。通常的做法是将 JDBC 与一个专用扩展结合使用,以弥补这一点。然而,这意味着只能局限于特定的实现。
本文的目的是向熟悉 OLAP 的 Java 开发人员介绍 Java OLAP (JOLAP) API。本文描述了它的核心组件和相关的包,并提供 JOLAP 查询和检索操作的一个例子。本文还简要地讨论 JOLAP 与 JDBC 之间的相似之处,以及 JOLAP 与用于多维数据的 XMLA 查询语言 mdXML 之间的关系。请从 参考资料 小节下载 JOLAP API 规范。
![]() |
|
Java Community Process JSR 69 计划为 OLAP 服务和应用程序创建了一种简化的同时又非常全面的统一 API。JOLAP 规范的目的是部署在 Java 企业平台中或者与之进行交互,它充分利用 Common Warehouse Metamodel (CWM),CWM 是以独立于供应商的方式定义逻辑 OLAP 结构的一个 OMG 标准。它还利用 Meta Object Facility (MOF)、XML Metadata Interchange (XMI) 和 Java Metadata Interface (JSR 40)。(请参阅 参考资料 ,以了解关于支持 JOLAP 的这些技术和其它技术的更多信息。)
JOLAP API 从概念上分为 4 个部分:
-
元数据接口和 XML
:JOLAP 元数据接口是 CWM 的一个子集,包括针对特定于 JOLAP 需求的扩展。
JSR 40,即 Java Metadata Interface,简化了 OMG MOF 的 Java 语言映射,并被用于根据模型生成 JOLAP 接口。
-
Reflective 服务
:JMI Reflective 服务使 JOLAP 可以进行自身检查并发现可用的元数据。当实现模型驱动的架构时,这些功能是最密切相关的。
-
查询接口
:查询接口由两个模型组成。JOLAP 的查询模型处理 OLAP 查询管理,它的源模型方便了特定于供应商的 OLAP 原语扩展的实现。按照规范的定义,源模型是 JOLAP 的一个可选功能。
- 游标接口 :JOLAP 的游标接口定义用于管理 OLAP 查询返回的多维结果集的功能。
下面的小节将深入讨论这些组件。
![]() |
|
JOLAP 模型是由一些相关子模型组成的一个 UML 模型。而包组成了模型的逻辑分组,从这一角度来讲,JOLAP 分为 6 个组:
-
核心元数据
由 CWM 元数据定义改编而来,后者以独立于供应商的方式定义 OLAP 元数据。
-
资源模型
定义连接和连接工厂,它们是基于 Java Connector
Architecture Common Client Interface (JCA CCI) 的原则。资源模型不同于标准的 JCA 实现,因为它包括了 OLAP 风格的交互。
-
查询模型
定义维度选择、边界、立方体视图以及维度数据的聚合与操纵等概念。模型还包含了不对称和事务型特性。
-
游标模型
定义如何查看查询返回的维度结果集。
- 源模型和服务器端元数据模型 被定义为可选包。源模型提供对原语查询操作的支持;服务器端元数据模型定义面向部署的类使用的其他元数据。
![]() ![]() |
![]()
|
根据 JOLAP API 规范,可以使用该 API resource 包中的类连接到支持 JOLAP 的服务,例如商业智能服务器和数据集市。这些类提供了 JCA CCI 的 InteractionSpec 架构以外的功能。
Connection
和 ConnectionFactory
是资源包中两个主要的类定义。ConnectionFactory
类用于获得一个 Connection
。创建连接时,可以传递参数,也可以不传递参数。对于容器管理的登录场景,可以创建一个不需传递参数的默认连接。对于组件管理的登录场景,则必需使用参数来创建连接,这种情况下可使用 ConnectionSpec
创建连接。
Connection
表示到支持 JOLAP 的资源的一个活动连接,它包括的帮助器方法可以简化 OLAP 风格的交互。可以使用 Connection
执行元数据查找和查询操作。下面给出了两组功能以及定义:
-
查询模式和相关对象
:获得可用模式,设置默认模式,获得默认模式,以及访问与某个模式相关的维和立方体。
-
创建查询对象
:创建
CubeView
、EdgeView
和DimensionView
对象。
Abortable
、ResourceAdapterMetadata
和 ConnectionMetadata
类也被包括在资源包中:
-
Abortable
只有一个方法
abort()
,该方法可用于取消一个长时间运行的操作。这种中断机制不是强制性的,不是所有的 JOLAP 提供程序都支持。
-
ResourceAdapterMetadata
提供用于获得与适配器名称、适配器供应商、适配器版本、规范名称、规范供应商、遵从性级别以及规范版本相关的数据的 getter 方法。JOLAP 规范定义了两种遵从性级别,它们的差别在于一个具有最基础的核心功能,另一个是具有可选功能的核心功能。
- ConnectionMetadata 定义用于获得 EIS 产品名称、EIS 供应商和 EIS 用户名的 getter 方法。
![]() |
|
JOLAP 的核心元数据模型基于 OMG Common Warehouse Metamodel。 CWM 清楚地区分客户端元数据与服务器端元数据,客户机需要前者来查询 OLAP 资源,而 OLAP 服务器需要后者来处理客户机请求。JOLAP 规范采纳相同的区分方法,也提供了客户端元数据和服务器端元数据,客户机端元数据形成 OLAP 元数据的核心,而服务器端元数据为那些欲将实现建立在 CWM 模型基础上或者以 CWM 和 XMI 格式交换数据提供便利。现在,让我们将目光投向客户端元数据,这种元数据用一些附加扩展映射 CWM 客户端模型。本文在后面将简要地讨论服务器端元数据。
Schema
、 Dimension
、
和 Cube
是三个最重要的元数据定义:
-
Schema
是 OLAP 模型的逻辑表示。它还被用作模型中所有元素的容器。
-
Dimension
是多维结构的一个纵坐标。它表示具有相同意义的一组惟一的成员或值。
-
Cube
是具有若干相同维的一组度量。一个立方体的每个数据点或单元是它的维成员的笛卡尔乘积。
核心元数据包中的其它类方便了维、立方体和模式之间的相互关联;帮助它们以结构化的方式组织起来;或者提供操纵这些对象所使用的 Member
等元素的机制。
可以使用各种帮助器类,以分层的方式组织维。LevelBasedHierarchy
用于仅根据级别或者同时根据级别和链接节点定义层次。ValueBasedHierarchy
用于根据拓扑结构定义层次。基于值的层次不考虑级别,因而可用于仅根据链接节点创建层次。
HierarchyLevelAssociation
用于建模 Dimension
的不同级别与它的 LevelBasedHierarchy
之间的交点。CubeDimensionAssociation
用于将一个立方体与它的维度相关联。
Member
、MemberValue
、MemberList
、CurrentMember
、MemberQuatifierType
和 MemberObjectFactories
用于存储、操纵、访问和创建存储在特定维中的惟一值的实例。其中像 Member
和 MemberValue
等既可以作为数据,又可以作为元数据,具有双重继承。
这些客户端元模型元素是从 CWM 元模型继承的。
![]() ![]() |
![]()
|
JOLAP 规范非常全面,它涵盖了查询模型、查询需求、格式良好性和查询事务模型。本文只对 JOLAP 查询模型作一个高度概括。请参阅 参考资料 ,了解完整的规范细节。
JOLAP 的查询需求和模型简化三种常见 OLAP 查询的创建和执行,即多维查询、边界查询和数据查询。
-
维度查询
是对单维度成员操作的成员选择。维度查询在 OLAP 的
Dimension
、Hierarchy
、HierarchyLevelAssociations
和Level
属性级别上进行查询、过滤和排序。
-
边界查询
由一组单维度或多维度查询组成,从总体上描述结果集的坐标系统。
- 数据查询 表示立方体中的数据选择。
DimensionView
、EdgeView
和 CubeView
是 JOLAP 查询模型中最重要的三个定义。可以组合这些表示维、边界和数据查询的基本查询类型,以建模更复杂的情况。
查询模型中其他重要的子模型与过滤和排序、计算成员、派生属性以及不对称选择有关。
可以根据简单或复杂的过滤器选择维度成员的子集。基于过滤器的中间选择具有相关的
setAction
操作。Initial
将选择的集合看作成员的初始集合。Append
将成员添加到列表的尾端。
Prepend
将成员添加到列表的开头。
Insert
和 Difference
根据 dimensionInsetOffset
属性添加成员,或者添加前一个集合中存在而当前集合中不存在的成员。另外,DataBasedMemberFilter
可用于根据数据表示的条件过滤维度成员。
JOLAP 包括三种类型的排序定义:基于成员属性的排序、基于成员层次的排序以及基于立方体数据值的排序。
计算成员是派生成员,它不在某一个维度上,而是从已有数据派生而来。聚合、组合之类操作的操作符可以是以成员、属性或常量作为输入的操作符。类似地,派生属性是临时的用户定义属性,是根据其他值得到的。
清单 1 显示了一个简单的调用,可以连接到 JOLAP 资源、查询该资源并检索数据:
.... env.put( Context.INITIAL_CONTEXT_FACTORY, "com.company.javax.olap.resource.ConnectionFactoryImpl" ); .... // Get the ConnectionFactory from JNDI javax.olap.resource.ConnectionFactory connFactory = (javax.olap.resource.ConnectionFactory)initCtx.lookup("MyJOLAPServer" ); // Create a connection spec javax.olap.resource.ConnectionSpec connSpec = (javax.olap.resource.ConnectionSpec)connFactory.createConnectionSpec(); connSpec.setName( "some userId" ); connSpec.setPassword( "some password" ); // Connect to the JOLAP resource javax.olap.resource.Connection conn = (javax.olap.resource.Connection)connFactory.getConnection(connSpec); // Get list of Dimensions // and do something .... List dimensionList = conn.getDimensions() Iterator dimensionIter = dimensionList.iterator(); while ( dimensionIter.hasNext() ) { javax.olap.metadata.Dimension myDimension = (javax.olap.metadata.Dimension)dimensionIter.next(); .... .... } // Close the JOLAP connection conn.close(); } .... |
![]() ![]() |
![]()
|
游标模型 API 与 JDBC ResultSet
API 非常类似。游标模型天生就具备专用于维度结构的概念,而在关系场景中意义不大。实际上,维游标类似于 SQL 结果集,只是多了一些附加功能。RowDataAccessor
和 RowDataNavigation
接口定义 CubeCursor
、DimensionCursor
和 EdgeCursor
类的大部分功能。
游标模型提供导航和管理 JOLAP 查询返回的结果集所需的类,例如清单 1 展示的类。它能提供对 OLAP 非常关键的多维透视图。 游标模型考虑了不对称和大型结果集的情况。对于大型结果集,考虑使用增量结果集访问。
![]() ![]() |
![]()
|
如前所述,服务器端元模型表示 CWM OLAP 元模型的面向部署部分。某些客户端定义也与部署相关。
Cube
、Schema
、HierarchyLevelAssociation
和 ValueBasedHierarchy
之类的客户端定义都被用于部署的服务器端类子类化。服务器端子类还引用与客户端类无关的实体。例如,服务器端子类 Schema
与 DeploymentGroup
之间存在关联,后者并不在客户端。
所有服务器端元模型定义都在 javax.olap.serversidemetadata
包中。
源
模型是基于源对象 MetadataObject
的低级模型,具有根据 type
、inputs
和 outputs
定义的特定结构。输入和输出本身可以作为源。源元素是具有标识符(一个惟一值)的一条记录和一组输出记录。当元素表示关系表中的一行或多维立方体中的一个单元时,源元素的定义就变得更加复杂。
源模型中还包括一组健壮的方法和模板。
join
方法可能是所有可用方法中最为重要的。模板是高级模型与低级模型之间的桥梁,当模板本身管理源时,可以修改立方体、边界和维度选择等高级对象。模板是有状态的,可以在任何时候修改。因此,当使用原语方法创建源时,源可以是动态的,而不是静态的。
![]() ![]() |
![]()
|
本文介绍了 JOLAP API 规范,并描述了它的核心组件。本文还介绍了它的相关包,并演示了一个简单的 JOLAP 查询和检索操作。请参阅 参考资料 ,了解关于 JOLAP API 和文中讨论的其它技术的更多信息。
学习
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文
。
-
JSR 69: Java OLAP Interface (JOLAP)
:访问 JCP 主页,查看 JOLAP API 规范的最终草案和该计划的相关信息。
-
The Data Warehousing, CWM, and MOF
Resource Page
:这里有很多与 Common Warehouse Metamodel 和 Meta-Object Facility 相关的文档。
-
OMG's MetaObject Facility 主页
:了解关于 MOF 规范及其使用的更多信息。
-
JMI 主页
:了解关于 Java Metadata Interface 和 JMI Reflective Services 的更多信息。
-
XMLA 主页
:了解关于 XML for Analysis 标准的更多信息。
-
developerWorks Java 技术专区
:这里有数百篇关于 Java 编程方方面面的文章。
获得产品和技术
-
下载 JOLAP API
:Java 平台上处理维度数据的最终草案。
讨论
- 通过参与 developerWorks blogs 加入 developerWorks 社区 。
![]() |
||
|
![]() |
Shashank Tiwari 是 Saven Technologies 公司的首席架构师。多年以来,他参与了使用多种技术的高性能分布式应用程序的设计和开发。他的工作还包括为公司提供构建健壮测试、数据密集、可伸缩软件应 用程序方面的咨询。他定期为技术杂志撰写文章,出席研讨会,并指导其他开发人员和架构师。 |
发表评论
-
说明SOA监管(SOA Governance)实例(收录备查)
2012-12-19 11:35 1773SOA 已经不是单纯技术问 ... -
Injecting Spring Beans into Java Servlets
2012-11-01 10:21 1966If you are working in a Java ... -
用 HttpServletResponseWrapper 实现 Etag 过滤器
2012-07-09 16:58 3795原文出处:http://blog.chenlb.com/200 ... -
Eclipse Indigo - Cannot install Android ADT Plugin
2012-02-29 01:17 3911When I try to install the And ... -
Eclipse Indigo - Cannot install Android ADT Plugin
2012-02-29 01:13 2028When I try to install the And ... -
[转]mybatis下的分页,支持所有的数据库
2011-07-21 13:21 14867大 家都知道,mybatis的自带分页方法只是逻 ... -
Java framework for text- & console-based forms?
2011-07-21 01:06 1743charva jcurses JNA , ... -
JNA(Java Native Access)学习入门
2011-07-21 01:04 22723Java Native Access 项目 在 ... -
使用IntrospectorCleanupListener 解决quartz引起的内存泄漏
2011-04-20 11:59 13416"在服务器运行过程中,Spring不停的运行的计划任 ... -
DBCP代码研读以及就数据库连接失效的解决
2011-03-31 11:03 3789问题 网上很多评论说DBCP有很多BUG,但是都没有指明是什 ... -
ContextLoaderListener
2010-12-06 15:58 8486(1) org.springframework.web.c ... -
Servlet3.0新功能: 异步处理
2010-12-06 15:22 3220J2EE 6和Glassfish 3V正式发 ... -
Servlet3.0引入的新特性
2010-12-06 15:20 3077Servlet3.0规范的新特性主要是为了3个目的: ... -
100個節點上運行群集亞馬遜EC2上Hazelcast
2010-12-03 23:59 3340本文的目的,適是给妳湮示的細節集群的100個節點。此湮示記錄, ... -
Spring Properties Reloaded
2010-12-02 14:54 4404Spring Properties Reloaded Som ... -
为spring2.5中的jpetstore增加perf4j监控
2010-09-02 13:51 2682perf4j是一款类似于log4j的性能检测工具. 它 ... -
语义网的学习资源大汇集(备忘)
2010-06-23 22:48 1796网上资源 http:/ ... -
HTML5 Canvas for Internet Explorer
2010-06-04 21:16 1874Canvascape http://www.benjoff ... -
大型网站架构演变和知识体系
2010-06-01 23:47 2013架构演变第一步:物 ... -
Ejb Con Spring
2010-05-20 17:46 2235Contenido [ocultar] 1 ...
相关推荐
Mondrian实现了MDX(多维表达式)语言,这是一种专门用于OLAP操作的语言,可以处理复杂的查询和分析任务。它还支持XML解析和JOLAP(Java OLAP)规范,允许与各种数据源进行交互,包括SQL数据库。 Mondrian的工作...
总结,Mondrian 作为一个强大的 OLAP 服务器,通过其精心设计的架构和源码实现,能够高效地处理复杂的多维数据查询,支持多种数据库平台,并且提供了灵活的接口供开发者使用。其源码分析对于理解 OLAP 服务的工作...
- **自定义MDX查询接口**: Mondrian实现了自己的MDX查询接口,以便更灵活地支持各种查询需求。 - **使用XML作为数据交换格式**: 为了确保跨平台兼容性和灵活性,Mondrian使用XML格式进行数据交换。 - **支持SOAP查询...
### MDX详解与Mondrian应用 #### 一、引言 ...通过Mondrian这样的OLAP服务器,用户可以轻松地实现对大量复杂数据的有效管理和分析。对于那些需要深入进行数据分析的企业来说,学习和掌握MDX是非常必要的。
内容概要:本文详细介绍了如何利用Matlab构建、优化和应用决策分类树。首先,讲解了数据准备阶段,将数据与程序分离,确保灵活性。接着,通过具体实例展示了如何使用Matlab内置函数如fitctree快速构建决策树模型,并通过可视化工具直观呈现决策树结构。针对可能出现的过拟合问题,提出了基于成本复杂度的剪枝方法,以提高模型的泛化能力。此外,还分享了一些实用技巧,如处理连续特征、保存模型、并行计算等,帮助用户更好地理解和应用决策树。 适合人群:具有一定编程基础的数据分析师、机器学习爱好者及科研工作者。 使用场景及目标:适用于需要进行数据分类任务的场景,特别是当需要解释性强的模型时。主要目标是教会读者如何在Matlab环境中高效地构建和优化决策分类树,从而应用于实际项目中。 其他说明:文中不仅提供了完整的代码示例,还强调了代码模块化的重要性,便于后续维护和扩展。同时,对于初学者来说,建议从简单的鸢尾花数据集开始练习,逐步掌握决策树的各项技能。
《营销调研》第7章-探索性调研数据采集.pptx
Assignment1_search_final(1).ipynb
美团优惠券小程序带举牌小人带菜谱+流量主模式,挺多外卖小程序的,但是都没有搭建教程 搭建: 1、下载源码,去微信公众平台注册自己的账号 2、解压到桌面 3、打开微信开发者工具添加小程序-把解压的源码添加进去-appid改成自己小程序的 4、在pages/index/index.js文件搜流量主广告改成自己的广告ID 5、到微信公众平台登陆自己的小程序-开发管理-开发设置-服务器域名修改成
《计算机录入技术》第十八章-常用外文输入法.pptx
基于Andorid的跨屏拖动应用设计实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
《网站建设与维护》项目4-在线购物商城用户管理功能.pptx
区块链_房屋转租系统_去中心化存储_数据防篡改_智能合约_S_1744435730
《计算机应用基础实训指导》实训五-Word-2010的文字编辑操作.pptx
《移动通信(第4版)》第5章-组网技术.ppt
ABB机器人基础.pdf
《综合布线施工技术》第9章-综合布线实训指导.ppt
很不错的一套站群系统源码,后台配置采集节点,输入目标站地址即可全自动智能转换自动全站采集!支持 https、支持 POST 获取、支持搜索、支持 cookie、支持代理、支持破解防盗链、支持破解防采集 全自动分析,内外链接自动转换、图片地址、css、js,自动分析 CSS 内的图片使得页面风格不丢失: 广告标签,方便在规则里直接替换广告代码 支持自定义标签,标签可自定义内容、自由截取、内容正则截取。可以放在模板里,也可以在规则里替换 支持自定义模板,可使用标签 diy 个性模板,真正做到内容上移花接木 调试模式,可观察采集性能,便于发现和解决各种错误 多条采集规则一键切换,支持导入导出 内置强大替换和过滤功能,标签过滤、站内外过滤、字符串替换、等等 IP 屏蔽功能,屏蔽想要屏蔽 IP 地址让它无法访问 ****高级功能*****· url 过滤功能,可过滤屏蔽不采集指定链接· 伪原创,近义词替换有利于 seo· 伪静态,url 伪静态化,有利于 seo· 自动缓存自动更新,可设置缓存时间达到自动更新,css 缓存· 支持演示有阿三源码简繁体互转· 代理 IP、伪造 IP、随机 IP、伪造 user-agent、伪造 referer 来路、自定义 cookie,以便应对防采集措施· url 地址加密转换,个性化 url,让你的 url 地址与众不同· 关键词内链功能· 还有更多功能等你发现…… 程序使用非常简单,仅需在后台输入一个域名即可建站,不限子域名,站群利器,无授权,无绑定限制,使用后台功能可对页面进行自定义修改,在程序后台开启生 成功能,只要访问页面就会生成一个本地文件。当用户再次访问的时候就直接访问网站本地的页面,所以目标站点无法访问了也没关系,我们的站点依然可以访问, 支持伪静态、伪原创、生成静态文件、自定义替换、广告管理、友情链接管理、自动下载 CSS 内的图。
【自然语言处理】文本分类方法综述:从基础模型到深度学习的情感分析系统设计
基于Andorid的下拉浏览应用设计实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
内容概要:本文详细介绍了一个原创的P2插电式混合动力系统Simulink模型,该模型基于逻辑门限值控制策略,涵盖了多个关键模块如工况输入、驾驶员模型、发动机模型、电机模型、制动能量回收模型、转矩分配模型、运行模式切换模型、档位切换模型以及纵向动力学模型。模型支持多种标准工况(WLTC、UDDS、EUDC、NEDC)和自定义工况,并展示了丰富的仿真结果,包括发动机和电机转矩变化、工作模式切换、档位变化、电池SOC变化、燃油消耗量、速度跟随和最大爬坡度等。此外,文章还深入探讨了逻辑门限值控制策略的具体实现及其效果,提供了详细的代码示例和技术细节。 适合人群:汽车工程专业学生、研究人员、混动汽车开发者及爱好者。 使用场景及目标:①用于教学和科研,帮助理解和掌握P2混动系统的原理和控制策略;②作为开发工具,辅助设计和优化混动汽车控制系统;③提供仿真平台,评估不同工况下的混动系统性能。 其他说明:文中不仅介绍了模型的整体架构和各模块的功能,还分享了许多实用的调试技巧和优化方法,使读者能够更好地理解和应用该模型。