b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

使用JOLAP进行复杂的分析查询

电脑杂谈  发布时间:2020-03-21 06:04:55  来源:网络整理

olap分析_olap技术_olap数据源

在Java平台上访问和处理维数据

Shashank Tiwari

Shashank Tiwari

发布于2007年7月5日

在过去的几年中,OLAP逐渐成为处理数据仓库和商业智能中使用的多维数据的流行方法. OLAP服务器和应用程序无处不在,并且已经开发了许多存储模型,查询机制和访问策略来满足复杂分析查询的业务需求. JDBC API已被用作在Java平台上访问和处理维度数据的代理机制,但是使用JDBC会损害维度模式本身的优势. 通常将JDBC与专用扩展一起使用来对此进行补偿. 但是,这意味着仅限于特定的实现.

本文的目的是向熟悉OLAP的Java开发人员介绍Java OLAP(JOLAP)API. 本文介绍了其核心组件和相关软件包,并提供了JOLAP查询和检索操作的示例. 本文还简要讨论了JOLAP与JDBC之间的相似之处,以及JOLAP与XMLA查询语言mdXML多维数据之间的关系. 从该部分下载JOLAP API规范.

JOLAP是一个健壮的API,它结合了许多重要的思想,但还不是一个标准. 由于各种原因,JSR 69的规范在2004年最终草案通过后就搁浅了. 目前,JOLAP主要用作其他工作的基础. 几年来,Mondrian包括了JOLAP API的部分实现,而Hyperion的XML for Analysis(XMLA)实现也使用了基于JOLAP规范的Java API. 无论JOLAP本身最终是否可以标准化,它将继续推动标准化方法供开发人员在Java环境中访问和操纵多维数据

olap分析_olap数据源_olap技术

Java Community Process JSR 69程序为OLAP服务和应用程序创建了一个简化且非常全面的统一API. JOLAP规范的目的是部署Java企业平台或与Java企业平台进行交互. 它充分利用了公共仓库元模型(CWM). CWM是OMG标准,以与供应商无关的方式定义逻辑OLAP结构. 它还利用元对象工具(MOF),XML元数据交换(XMI)和Java元数据接口(JSR40). (请参阅参考资料,以获得有关支持JOLAP的这些技术和其他技术的更多信息. )

JOLAP API在概念上分为4部分:

以下各节深入讨论了这些组件.

JOLAP和JDBC以类似的方式处理数据检索. 在JDBC中,您首先创建一个连接,然后使用该连接创建一个语句. 然后,它使用SQL查询填充该语句,调用执行该语句的方法,最后返回结果集. 在JOLAP中,您首先需要获得一个连接,然后创建并填充查询对象,然后调用getter方法填充光标. 与JDBC一样,JOLAP调用特定数据类型的getter方法. 但是,与JDBC不同,JOLAP可以在DimensionView上处理属性选择.

JOLAP模型是由相关子模型组成的UML模型. 包形成模型的逻辑分组. 从这个角度来看,JOLAP分为6组:

根据JOLAP API规范,可以使用API​​资源包中的类连接到启用JOLAP的服务,例如商业智能服务器和数据集市. 这些类提供了JCA CCI的InteractionSpec架构之外的功能.

Connection和ConnectionFactory是资源束中的两个主要的类定义. ConnectionFactory类用于获取连接. 创建连接时,可以传递或不传递参数. 对于容器管理的登录方案,您可以创建默认连接而无需传递参数. 对于组件管理的登录方案,必须使用参数创建连接,在这种情况下,可以使用ConnectionSpec创建连接.

olap数据源_olap分析_olap技术

Connection表示与已启用JOLAP的资源的活动连接olap数据源,并且包括简化OLAP样式的交互的帮助程序方法. 您可以使用Connection执行元数据查找和查询操作. 两组功能和定义如下:

Abortable,ResourceAdapterMetadata和ConnectionMetadata类也包含在资源包中:

JOLAP和XMLA都致力于在OLAP和商业智能的背景下标准化数据和元数据的管理和交换. XMLA是独立于编程语言的语言接口. 它为多维数据定义了一种称为mdXML的查询语言. mdXML到多维数据等效于SQL到关系数据. 尽管JOLAP和XMLA具有一些重叠的功能,但是它们可以一起使用,主要是因为XMLA被实现为Web服务,并且JOLAP支持Java Enterprise(具有SOAP功能的)Web服务体系结构. 不需要JOLAP来实现XMLA.

JOLAP的核心元数据模型基于OMG Common Warehouse元模型. CWM清楚地区分了客户端元数据和服务器端元数据. 客户端需要前者来查询OLAP资源,而OLAP服务器需要后者来处理客户端请求. JOLAP规范采用相同的区分方法,并且还提供客户端元数据和服务器端元数据. 客户端元数据构成了OLAP元数据的核心,而服务器端元数据则是那些希望基于CWM模型构建其实现或希望以CWM和XMI格式进行数据交换的服务器. 现在,让我们看一下客户端元数据,它映射了CWM客户端模型和一些其他扩展. 本文稍后将简要讨论服务器端元数据.

模式,维度和多维数据集是三个最重要的元数据定义:

核心元数据包中的其他类促进了维度,多维数据集和架构之间的互连;帮助他们有条理地组织起来;或提供机制来操纵这些对象使用的诸如Member之类的元素.

您可以使用各种帮助程序类以分层方式组织维度. LevelBasedHierarchy用于仅基于级别或基于级别和链接节点来定义层次结构. ValueBasedHierarchy用于基于拓扑定义层次结构. 基于值的层次结构不考虑级别,只能用于基于链接节点创建层次结构.

olap技术_olap数据源_olap分析

HierarchyLevelAssociation用于对维度的不同级别与其LevelBasedHierarchy之间的交集建模. CubeDimensionAssociation用于将多维数据集与其维度相关联.

Member,MemberValue,MemberList,CurrentMember,MemberQuatifierType和MemberObjectFactories用于存储,操纵,访问和创建存储在特定维度中的唯一值的实例. 其中,Member和MemberValue可以用作数据和元数据,具有双重继承.

这些客户端元模型元素是从CWM元模型继承的.

JOLAP规范非常全面,涵盖了查询模型,查询需求,格式正确和查询事务模型. 本文仅概述JOLAP查询模型. 请参阅以获取完整的规格详细信息.

JOLAP的查询要求和模型简化了三种常见的OLAP查询的创建和执行,即多维查询,边界查询和数据查询.

DimensionView,EdgeView和CubeView是JOLAP查询模型中的三个最重要的定义. 您可以组合这些代表维度,边界和数据查询的基本查询类型,以对更复杂的情况建模.

查询模型中的其他重要子模型与筛选和排序,计算成员,派生属性和不对称选择有关.

olap分析_olap数据源_olap技术

您可以基于简单或复杂过滤器选择维成员的子集. 基于过滤器的中间选择具有关联的setAction操作. Initial将所选集合视为成员的初始集合. Append将成员添加到列表的末尾. 前缀将成员添加到列表的开头. 插入和差异添加成员基于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至关重要的多维视角. 游标模型考虑不对称和较大的结果集. 对于大型结果集,请考虑使用增量结果集访问.

如前所述olap数据源,服务器端元模型代表CWM OLAP元模型的面向部署的部分. 一些客户端定义也与部署有关. 客户端定义(例如Cube,Schema,HierarchyLevelAssociation和ValueBasedHierarchy)都是服务器端类的子类,以进行部署. 服务器终端类还引用与客户端类无关的实体. 例如,服务器终端类Schema与DeploymentGroup之间存在关联,该关联不在客户端上. 所有服务器端元模型定义都在javax.olap.serversidemetadata包中.

源模型是基于源对象MetadataObject的低级模型,具有根据类型,输入和输出定义的特定结构. 输入和输出本身可以用作源. 源元素是带有标识符(唯一值)的记录和一组输出记录. 当一个元素表示关系表中的一行或多维多维数据集中的单元格时,源元素的定义会变得更加复杂.

源模型还包括一组可靠的方法和模板. join方法可能是所有可用方法中最重要的方法. 模板是高级模型和低级模型之间的桥梁. 模板本身管理源时,您可以修改高级对象,例如多维数据集,边界和尺寸选择. 模板是有状态的,可以随时修改. 因此,使用原始方法创建源时,源可以是动态的,而不是静态的.

本文介绍JOLAP API规范并描述其核心组件. 本文还介绍了它的相关软件包,并演示了一个简单的JOLAP查询和检索操作. 有关本文讨论的JOLAP API和其他技术的更多信息,请参见.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-146839-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...