「olap框架java」OLAP开发

博主:adminadmin 2023-01-24 03:06:13 265

今天给各位分享olap框架java的知识,其中也会对OLAP开发进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何建立oracle olap

Oracle OLAP 组件 重建 说明

一. Oracle OLAP 组件 说明

有关Oracle 的所有组件的说明,参考:

Oracle8i/9i/10g/11g 组件(Components) 说明http//blog.csdn.net/tianlesoftware/article/details/5937382联机分析处理OLAP(On-Line Analytical Processing), 也称DSS决策支持系统。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

OLAP是Oracle数据库企业版的一个多维分析引擎,采用oracle数据库来存储OLAP数据和元数据。

在OLAP中,语句的执行量不是考核标准,因为一条语句的执行时间可能会非常长,读取的数据也非常多。所以,在这样的系统中,考核的标准往往是磁盘子系统的吞吐量(带宽),如能达到多少MB/s的流量。

更多内容参考:

OracleOLAP 与 OLTP 介绍

http//blog.csdn.net/tianlesoftware/article/details/5794844在添加OLAP 组件的情况下,如果我们做32到64位的DB迁移,都会需要重建OLAP 组件,否则就会导致大量的无效对象的存在。 而这个重建工作又需要近40分钟,所以是个很耗时间的过程。

Oracle OLAP是Oracle企业版的一个可选件,由于将OLAP引擎完全集成进了Oracle数据库,所以,所有数据和元数据都是从Oracle数据库内部进行存储和管理的,以提供高度可伸缩性、强健的管理环境及工业级可用性和安全性。

1.1 OLAP 组件

可以使用如下SQL 查看OLAP组件的状态和版本信息:

SQL column comp_name format a35

SQL col version for a15

SQL set wrap off

--Oracle11g:

SQL select comp_name, version, statusfrom dba_registry where comp_name like '%OLAP%';COMP_NAME VERSION STATUS-------------------------------------------------- ----------------------OLAP Analytic Workspace 11.2.0.3.0 INVALIDOracle OLAP API 11.2.0.3.0 VALIDOLAP Catalog 11.2.0.3.0 VALID--Oracle 10g:

SYS@ wangou select comp_name, version,status from dba_registry where comp_name like '%OLAP%';COMP_NAME VERSION STATUS-------------------------------------------------- ----------------------OLAP Analytic Workspace 10.2.0.5.0 VALIDOracle OLAP API 10.2.0.5.0 VALIDOLAP Catalog 10.2.0.5.0 VALIDOracle OLAP主要包括以下组件:

(1)OLAP Analytic Engine

Oracle的OLAP分析引擎是一个基于多维模型的MOLAP引擎,运行在Oracle内核中,因此拥有良好的性能。

(2)Analytic Workspace

分析工作区中实际存储多维模型的数据。一个Analytic Workspace存储为一个关系表,分析工作区中的不同对象存储为表中的一行(LOB格式)。分析工作区甚至可以存储在分区表中,以提供更好的并发性能。

(3)OLAP DML

OLAP DML是Analytic Workspace的原始操作语言,包括关于Analytic Workspace的数据定义语言(DDL)和数据操作语言(DML)。对于Analytic Workspace的所有操作方式,比如GUI工具,java和SQL等方式,最终都要转化为Oracle DML语言。

(4)SQL Interface to OLAP

提供使用SQL操作AnalyticWorkspace的接口,该接口使用PL/SQL实现。

(5)Analytic Workspace Java API

提供使用Java操作AnalyticWorkspace的接口。在GUI工具Analytic Workspace Manager中使用的就是该接口。

(6)OLAP API

Oracle OLAP的一个Java编程接口,支持OracleBI Bean。

1.2 Oracle OLAP的两个客户端工具:

(1)Analytic Workspace Manager

这是Oracle提供的一个操作AnalyticWorkspace的一个图形工具。使用该工具可以快速的完成诸如定义数据的逻辑多维模型、创建多维数据到关系数据的映射、装载和聚合数据等任务。

(2)OLAP Worksheet

OLAP Worksheet提供了操作Analytic Workspace的一个交互式环境。有点类似于Oracle数据库的SQLPLUS工具。

1.3 Active Catalog View(活动目录视图)

Active CatalogView,活动目录视图,是Oracle为OLAP用户提供的一系列动态视图,用于提供分析工作区(Analytic Workspace)中的对象信息。Analytic workspace是用户session和Oracle OLAP引擎交互所必须的接口,也是dimension,cube的对象的容器。

在Oracle OLAP中,Analytic workspace的概念有点类似与数据库中的schema,也是一组相关对象的集合。但是Analytic workspace会使用一个名为aw$name的table来实际的存储analyticworkspace中的对象 (dimension,cube,level,attribute等)。有时候,我们可能需要将一个analytic workspace从一个系统迁移到另外一个系统,也可能需要将一个analytic workspace的内容迁移到另外一个analytic workspace中,利用Analytic Workspace Manager可以在图形界面下完成该任务,首先将一个aw导出为EIF文件,然后将EIF导入到另外一个aw即可。

OLAP 多维模型中的一些主要对象,如dimension(维度),measure(度量),cube(数据立方体),hierarchy(层 次),level(层),attribute(属性)等,都有对应的活动目录视图,根据视图的名字基本可以判断该视图中的内容,Oracle10g所有的 活动目录视图都以ALL_OLAP2_AW开头:

(1) ALL_OLAP2_AWS

(2) ALL_OLAP2_AW_ATTRIBUTES

(3) ALL_OLAP2_AW_CATALOGS

(4) ALL_OLAP2_AW_CATALOG_MEASURES

(5) ALL_OLAP2_AW_CUBES

(6) ALL_OLAP2_AW_CUBE_AGG_LVL

(7) ALL_OLAP2_AW_CUBE_AGG_MEAS

(8) ALL_OLAP2_AW_AGG_OP

(9) ALL_OLAP2_AW_CUBE_AGG_SPECS

(10) ALL_OLAP2_AW_CUBE_DIM_USES

(11) ALL_OLAP2_AW_CUBE_MEASURES

(12) ALL_OLAP2_AW_DIMENSIONS

(13) ALL_OLAP2_AW_DIM_HIER_LVL_ORD

(14) ALL_OLAP2_AW_DIM_LEVELS

(15) ALL_OLAP2_AW_PHYS_OBJ

(16) ALL_OLAP2_AW_PHYS_OBJ_PROP

除了活动目录视图,Oracle也提供了几个动态性能视图,用于展示OLAP对象的一些统计信息,这些DynamicPerformance View都以V$AW开头:

(1) v$aw_aggregate_op

(2) v$aw_allocate_op

(3) v$aw_calc

(4) v$aw_longops

(5) v$aw_olap

(6) v$aw_session_info

以上理论知识转自ningoo的blog:

http//二. 添加删除OLAP 组件

MOS: How To Remove Or To Reinstall TheOLAPOption To 10g And 11g [ID 332351.1]

这里提供了2种解决方法:

2.1 在ORACLE_HOME 级别重建

2.1.1 删除OLAP

备份DB和oraInventory,在关闭ORACLE_HOME上的所有Instance,使用Universal Installer (OUI) 移除ORACLE_HOME的OLAP 选项。在OUI 中选择升级已经存在的db,在selectoptions 选项可以控制是否启用OLAP。如下图:

在Unix 和Linux 平台上,也可以直接relink olap_off 的方式来删除,这样就避免使用OUI。

cd $ORACLE_HOME/rdbms/lib

make -f ins_rdbms.mk olap_off

make -f ins_rdbms.mk ioracle

非注册的OLAP将不在db 的banner 中限制,同时v$option 也会显示为FALSE.

2.1.2 重新安装OLAP

1)在OUI中添加OLAP 组件,参考上图。

2)添加完毕之后执行如下脚本,在db 级别进行添加。

sqlplus /nolog

SQL conn /as sysdba

SQL spool add_olap.log

SQL @?/olap/admin/olap.sql SYSAUX TEMP;

SQL @?/rdbms/admin/utlrp.sql

SQL spool off

2.2 在Database 级别重建

2.2.1 删除OLAP

--在dbserver 上开一个session,设定相关的变量,并用sys 用户执行如下脚本:

ORACLE_HOME=your_oracle_home

ORACLE_SID=your_db_sid

PATH=$ORACLE_HOME/bin:$PATH

sqlplus /nolog

SQL conn / as sysdba

---- Remove OLAP Catalog

SQL @?/olap/admin/catnoamd.sql

---- Remove OLAP API

SQL @?/olap/admin/olapidrp.plb

SQL @?/olap/admin/catnoxoq.sql

---- Deinstall APS - OLAP AW component

SQL @?/olap/admin/catnoaps.sql

SQL @?/olap/admin/cwm2drop.sql

---- Recompile invalids

SQL @?/rdbms/admin/utlrp.sql

catnoamd.sqlusedabove will drop the OLAPSYS schema (which is completely OLAP specific).

--catnoamd.sql 脚本用来drop OLAPSYS 用户。

cwm2drop.sqlneedsto be run only in 11g. In 10g, catnoamd.sql already calls it.

--cwm2drop.sql 只需要在11g中执行。在10g中,catnoamd.sql脚本中已经包含了该脚本,所以不用执行。

If you connectto the database in SQLPLUS, the banner still shows the OLAPoption,this happensbecause the Oracle executable is still aware of OLAP, it islinked with OLAP, andalso the OLAP files are still present in the ORACLE_HOME.

Once runningthedeinstall scripts, the utlrp.sql could report invalid objects with SYSandPUBLIC owners. If so, the following SQL can be used to report more detailsonthat:

--删除之后,可能导致一些无效的对象,可以使用如下SQL 来查看具体信息:

SQL select owner,object_name,object_type, status from dba_objects where status='INVALID';You could getsome invalid objects under SYS and PUBLIC owner, and they are the oldduplicate OLAPSYS objects copied under these schemas when Olap has beeninstalledpreviously.

Generally,the Olap objects are named with context like %OLAP%, %AWM%, or other Olap wordkeys intheir "object_name" field, however, if it needs a help torecognizethem, then please contact Oracle Support and create a ServiceRequest toget assistance for this question.

Notethat catnoadm.sql could fail from 10.1.0.5 to 11.1.0.7 release.

Due to the fact that it refers to three scripts which don't get shipped until 11.2this scriptwill fail.

Besides that it will error on 7 non-existing synonyms to drop.

Prior 11.2, execute thesethree drop synonym statements:

--在11.2 之前,需要执行如下脚本:

SQL drop public synonym OlapFactView;

SQL drop public synonym OlapDimView;

SQL drop public synonym DBMS_ODM;

If therearefurther invalid OLAP specific objects after the above removal steps,pleaseconsult Note1060023.1, Note565773.1If you do notwant to install OLAP into a newly created database, then in theDatabaseConfiguration Assistant (dbca), select a custom database template anduncheckOracle OLAP in the Database Components wizard step.

2.2.2 添加OLAP

Assuming that youcreated your database manually or via DBCA, add the OLAP option to anexistingEnterprise Edition Database.

--假设我们在ORACLE_HOME级别添加了OLAP。

Then openaterminal session on the database server machine, set ORACLE_HOME,ORACLE_SIDenvironment variables, and execute some script. as user SYS AS SYSDBA,detailsbelow:

--在dbserver 端用SYS 用户执行如下脚本,来创建olap。

ORACLE_HOME=your_oracle_home

ORACLE_SID=your_db_sid

PATH=$ORACLE_HOME/bin:$PATH

sqlplus /nolog

SQL conn /as sysdba

SQL @?/olap/admin/olap.sql SYSAUX TEMP;

--这个脚本需要30+分钟

三. 验证无效对象和组件状态

SQL select count(*) from dba_invalid_objects;COUNT(*)

----------

67

如果有无效对象,使用如下脚本编译:

SQL @?/rdbms/admin/utlrp.sql

SQL col comp_id for a15

SQL col version for a15

SQL col comp_name for a30

SQL select comp_id,comp_name,version,status from dba_registry;COMP_ID COMP_NAME VERSION STATUS--------------------------------------------- --------------- -----------------EM Oracle Enterprise Manager 11.2.0.3.0 VALIDAMD OLAP Catalog 11.2.0.3.0 VALIDSDO Spatial 11.2.0.3.0 VALIDORDIM Oracle Multimedia 11.2.0.3.0 INVALIDXDB Oracle XML Database 11.2.0.3.0 INVALIDCONTEXT Oracle Text 11.2.0.3.0 VALIDODM Oracle Data Mining 11.2.0.3.0 VALIDEXF Oracle Expression Filter 11.2.0.3.0 VALIDRUL Oracle Rules Manager 11.2.0.3.0 VALIDOWM Oracle Workspace Manager 11.2.0.3.0 VALIDCATALOG Oracle Database Catalog Views 11.2.0.3.0 VALIDCOMP_ID COMP_NAME VERSION STATUS--------------------------------------------- --------------- -----------------CATPROC Oracle Database Packages and T11.2.0.3.0 INVALIDJAVAVM JServer JAVA Virtual Machine 11.2.0.3.0 VALIDXML Oracle XDK 11.2.0.3.0 VALIDCATJAVA Oracle Database Java Packages 11.2.0.3.0 VALIDAPS OLAP Analytic Workspace 11.2.0.3.0 INVALIDXOQ Oracle OLAP API 11.2.0.3.0 VALID17 rows selected.

如何用java访问cube,olap4j报错

在executeOlapQuery执行前, 先跟踪调试一下

Class.forName("org.olap4j.driver.xmla.XmlaOlap4jDriver");

OlapConnection con = (OlapConnection)DriverManager.getConnection("jdbc:xmla:Server=. ... 6quot;);

检查一下这个con对象是否有值,是否成功的创建了连接。

没问题的话,把你的MDX语句在SSMS里先执行一下,没问题再拷贝到executeOlapQuery()方法里执行

java开源的olap引擎——mondrian

Mondrian,是Pentaho的一部分,为一个用Java开发的OLAP服务器,实现了MDX语言、XML解析和JOLAP规范,可以不写SQL就能分析存储于SQL 数据库的庞大数据集,可以封装JDBC数据源并把数据以多维的方式展现出来。

Pentaho,是一个以工作流为核心的、强调面向解决方案而非工具组件的BI套件,整合了多个开源项目,目标是和商业BI相抗衡。

祥见

既然是OLAP服务器,我想你应该从OLAP服务器的实现原理看起,这样才能领会更多的东西。从Mondrian的介绍来看,应该是JOLAP规范的实现部分吧。

java工程师和大数据工程师谁更好找工作?

【导语】从目前的社会形式来看,Java的工作岗位比较多一些,就业人群也比较大,大数据作为新兴职业,虽然需求量也是很大的,但是就业门槛比较高,对于专业技能的要求也是比较高的,当然工资也会比较高,那么java工程师和大数据工程师谁更好找工作?

java和大数据就业前景

Java和大数据专业技术,学成之后都是很值钱很吃香的。

1、java

Java技术已列为当今世界信息技术三大关键之一,跟着大量java人才的产出,也造成了这个商场的饱和状态。越来越多的java程序员开始转行、也陆陆续续不断有新的成员进来。一句话:商场有、看才能。

2、大数据

大数据尽管并不是近年来才有的概念,但从2015、2016年才开始兴起,在2017年彻底点爆。跟着互联网、物联网、人工智能的不断进步及传统行业信息化的提高,全行业对大数据需求急剧增加,造成了百万+的人才缺口,发展前景一片光明。

Java能够转大数据吗

Java是能够转大数据的。

1、java是大数据的根底,转型大数据相对会简单一点。

2、转型也是有一定的限制的,比方:年纪最好在20-32岁之间;大专以上学历。其次便是,大数据范畴需求学习的东西许多,像hadoop、spark等都要学习,要做好努力学习的准备。

3、据相关数据统计未来3-5年内,大数据范畴内的人才缺口将到达300左右。而且,跟着大数据在云核算、人工智能,以及各个范畴当中的应用,必将创造出更多的工作岗位。

4、现在学习大数据有几种方法:大学教育、企业教培、培训组织和自学。现在从java转型大数据范畴的人并不少,当想要真正的完结转型,还要付出足够多的努力。

关于java工程师和大数据工程师谁更好找工作?就给大家介绍到这里了,其实就目前来看,Java是现在后端开发用得最多的编程语言,短时间没有其它语言可以替代,就业前景毋庸置疑,但是社会在不断进步,大数据未来的发展前景不可限量,希望大家能够合理选择。

大数据专业主要学习什么语言?

大数据专业需要学习哪些技术:

一、编程语言

想要学习大数据技术,首先要掌握一门基础编程语言。Java编程语言的使用率最广泛,因此就业机会会更多一些,而Python编程语言正在高速推广应用中,同时学习Python的就业方向会更多一些。

二、Linux

学习大数据一定要掌握一定的Linux技术知识,不要求技术水平达到就业的层次,但是一定要掌握Linux系统的基本操作。能够处理在实际工作中遇到的相关问题。

三、SQL

大数据的特点就是数据量非常大,因此大数据的核心之一就是数据仓储相关工作。因此大数据工作对于数据库要求是非常的高。甚至很多公司单独设置数据库开发工程师。

四、Hadoop

Hadoop是分布式系统的基础框架,以一种可靠、高效、可伸缩的方式进行数据处理。具有高可靠性、高扩展性、高效性、高容错性、低成本等优点,从事大数据相关工作Hadoop是必学的知识点。

五、Spark

Spark是专门为大规模数据处理而设计的快速通用的计算引擎。可以用它来完成各种各样的运算,包括SQL查询、文本处理、机器学习等等。

六、机器学习

机器学习是目前人工智能领域的核心技术,在大数据专业中也有非常广泛的引用。在算法和自动化的发展过程中,机器学习扮演着非常重要的角色。可以大大拓展自己的就业方向。

互联网行业里大数据和云智能是当下最重要板块,企业借助大数据技术不仅能避免企业发展时会面临的各种风险,更能解决发展过程中所遇到的种种难题。近些年来大数据的公司越来越多,但是大数据人才需求还存在着很大缺口,为了响应市场需求未来我国还会需要更多的大数据人才。百度、阿里、京东等互联网高企依仗自身的强大技术和数据优势,均已将大数据作为企业的重要战略部署。

大数据专业未来就业方向解析:

一、ETL研发

企业数据种类与来源的不断增加,对数据进行整合与处理变得越来越困难,企业迫切需要一种有数据整合能力的人才。ETL开发者这是在此需求基础下而诞生的一个职业岗位。ETL人才在大数据时代炙手可热的原因之一是:在企业大数据应用的早期阶段,Hadoop只是穷人的ETL.

二、Hadoop开发

随着数据规模不断增大,传统BI的数据处理成本过高企业负担加重。而Hadoop廉价的数据处理能力被重新挖掘,企业需求持续增长。并成为大数据人才必须掌握的一种技术。

三、可视化工具开发

可视化开发就是在可视化工具提供的图形用户界面上,通过操作界面元素,有可视化开发工具自动生成相关应用软件,轻松跨越多个资源和层次连接所有数据。过去,数据可视化属于商业智能开发者类别,但是随着Hadoop的崛起,数据可视化已经成了一项独立的专业技能和岗位。

四、信息架构开发

大数据重新激发了主数据管理的热潮。充分开发利用企业数据并支持决策需要非常专业的技能。信息架构师必须了解如何定义和存档关键元素,确保以最有效的方式进行数据管理和利用。信息架构师的关键技能包括主数据管理、业务知识和数据建模等。

五、数据仓库研究

为方便企业决策,出于分析性报告和决策支持的目的而创建的数据仓库研究岗位是一种所有类型数据的战略集合。为企业提供业务智能服务,指导业务流程改进和监视时间、成本、质量和控制。

六、OLAP开发

OLAP在线联机分析开发者,负责将数据从关系型或非关系型数据源中抽取出来建立模型,然后创建数据访问的用户界面,提供高性能的预定义查询功能。

七、数据科学研究

数据科学家是一个全新的工种,能够将企业的数据和技术转化为企业的商业价值。随着数据学的进展,越来越多的实际工作将会直接针对数据进行,这将使人类认识数据,从而认识自然和行为。

八、数据预测分析

营销部门经常使用预测分析预测用户行为或锁定目标用户。预测分析开发者有些场景看上有些类似数据科学家,即在企业历史数据的基础上通过假设来测试阈值并预测未来的表现。

九、企业数据管理

企业要提高数据质量必须考虑进行数据管理,并需要为此设立数据管家职位,这一职位的人员需要能够利用各种技术工具汇集企业周围的大量数据,并将数据清洗和规范化,将数据导入数据仓库中,成为一个可用的版本。

十、数据安全研究

数据安全这一职位,主要负责企业内部大型服务器、存储、数据安全管理工作,并对网络、信息安全项目进行规划、设计和实施。

大数据的特点就是能够灵活、快速、高效的响应各种市场需求。大数据的受众领域非常广泛,不仅改善着人们的社会活动和生活方式,运用好大数据技术还能为企业带了更多的商机和商业价值。大数据不仅与IT行业关系密切,众多行业都已经开始了大数据运营的布局,例如金融、医疗、政府等。撼地大数据就是以大数据技术为基础研发出了属于自己的大数据数智招商系统,为产业招商打造了一个精准招商服务云平台,极大的改善了现阶段产业园招商难的窘境。

GitHub上面有哪些经典的java框架源码

Bazel:来自Google的构建工具,可以快速、可靠地构建代码。官网

Gradle:使用Groovy(非XML)进行增量构建,可以很好地与Maven依赖管理配合工作。官网

Buck:Facebook构建工具。官网

字节码操作

编程方式操作字节码的开发库。

ASM:通用底层字节码操作和分析开发库。官网

Byte Buddy:使用流式API进一步简化字节码生成。官网

Byteman:在运行时通过DSL(规则)操作字节码进行测试和故障排除。官网

Javassist:一个简化字节码编辑尝试。官网

集群管理

在集群内动态管理应用程序的框架。

Apache Aurora:Apache Aurora是一个Mesos框架,用于长时间运行服务和定时任务(cron job)。官网

Singularity:Singularity是一个Mesos框架,方便部署和操作。它支持Web Service、后台运行、调度作业和一次性任务。官网

代码分析

测量代码指标和质量工具。

Checkstyle:代码编写规范和标准静态分析工具。官网

Error Prone:将常见编程错误作为运行时错误报告。官网

FindBugs:通过字节码静态分析查找隐藏bug。官网

jQAssistant:使用基于Neo4J查询语言进行代码静态分析。官网

PMD:对源代码分析查找不良的编程习惯。官网

SonarQube:通过插件集成其它分析组件,对过去一段时间内的数据进行统计。官网

编译器生成工具

用来创建解析器、解释器或编译器的框架。

ANTLR:复杂的全功能自顶向下解析框架。官网

JavaCC:JavaCC是更加专门的轻量级工具,易于上手且支持语法超前预测。官网

外部配置工具

支持外部配置的开发库。

config:针对JVM语言的配置库。官网

owner:减少冗余配置属性。官网

约束满足问题求解程序

帮助解决约束满足问题的开发库。

Choco:可直接使用的约束满足问题求解程序,使用了约束规划技术。官网

JaCoP:为FlatZinc语言提供了一个接口,可以执行MiniZinc模型。官网

OptaPlanner:企业规划与资源调度优化求解程序。官网

Sat4J:逻辑代数与优化问题最先进的求解程序。官网

持续集成

Bamboo:Atlassian解决方案,可以很好地集成Atlassian的其他产品。可以选择开源许可,也可以购买商业版。官网

CircleCI:提供托管服务,可以免费试用。官网

Codeship:提供托管服务,提供有限的免费模式。官网

fabric8:容器集成平台。官网

Go:ThoughtWork开源解决方案。官网

Jenkins:支持基于服务器的部署服务。官网

TeamCity:JetBrain的持续集成解决方案,有免费版。官网

Travis:通常用作开源项目的托管服务。官网

Buildkite: 持续集成工具,用简单的脚本就能设置pipeline,而且能快速构建,可以免费试用。官网

CSV解析

简化CSV数据读写的框架与开发库

uniVocity-parsers:速度最快功能最全的CSV开发库之一,同时支持TSV与固定宽度记录的读写。官网

数据库

简化数据库交互的相关工具。

Apache Phoenix:HBase针对低延时应用程序的高性能关系数据库层。官网

Crate:实现了数据同步、分片、缩放、复制的分布式数据存储。除此之外还可以使用基于SQL的语法跨集群查询。官网

Flyway:简单的数据库迁移工具。官网

H2:小型SQL数据库,以可以作为内存数据库使用著称。官网

HikariCP:高性能JDBC连接工具。官网

JDBI:便捷的JDBC抽象。官网

Protobuf:Google数据交换格式。官网

SBE:简单二进制编码,是最快速的消息格式之一。官网

Wire:整洁轻量级协议缓存。官网

帮实现依赖翻转范式的开发库。 官网

Apache DeltaSpike:CDI扩展框架。官网

Dagger2:编译时注入框架,不需要使用反射。官网

Guice:可以匹敌Dagger的轻量级注入框架。官网

HK2:轻量级动态依赖注入框架。官网

开发流程增强工具

从最基本的层面增强开发流程。

ADT4J:针对代数数据类型的JSR-269代码生成器。官网

AspectJ:面向切面编程(AOP)的无缝扩展。官网

Auto:源代码生成器集合。官网

DCEVM:通过修改JVM在运行时支持对已加载的类进行无限次重定义。官网

HotswapAgent:支持无限次重定义运行时类与资源。官网

Immutables:类似Scala的条件类。官网

JHipster:基于Spring Boot与AngularJS应用程序的Yeoman源代码生成器。官网

JRebel:无需重新部署,可以即时重新加载代码与配置的商业软件。官网

Lombok:减少冗余的代码生成器。官网

Spring Loaded:类重载代理。官网

vert.x:多语言事件驱动应用框架。官网

分布式应用

用来编写分布式容错应用的开发库和框架。

Akka:用来编写分布式容错并发事件驱动应用程序的工具和运行时。官网

Apache Storm:实时计算系统。官网

Apache ZooKeeper:针对大型分布式系统的协调服务,支持分布式配置、同步和名称注册。官网

Hazelcast:高可扩展内存数据网格。官网

Hystrix:提供延迟和容错。官网

JGroups:提供可靠的消息传递和集群创建的工具。官网

Orbit:支持虚拟角色(Actor),在传统角色的基础上增加了另外一层抽象。官网

Quasar:为JVM提供轻量级线程和角色。官网

分布式数据库

对应用程序而言,在分布式系统中的数据库看起来就像是只有一个数据源。

Apache Cassandra:列式数据库,可用性高且没有单点故障。官网

Apache HBase:针对大数据的Hadoop数据库。官网

Druid:实时和历史OLAP数据存储,在聚集查询和近似查询方面表现不俗。官网

Infinispan:针对缓存的高并发键值对数据存储。官网

发布

以本机格式发布应用程序的工具。

Bintray:发布二进制文件版本控制工具。可以于Maven或Gradle一起配合使用。提供开源免费版本和几种商业收费版本。官网

Central Repository:最大的二进制组件仓库,面向开源社区提供免费服务。Apache Maven默认使用Central 官网Repository,也可以在所有其他构建工具中使用。

IzPack:为跨平台部署建立创作工具(Authoring Tool)。官网

JitPack:打包GitHub仓库的便捷工具。可根据需要构建Maven、Gradle项目,发布可立即使用的组件。官网

Launch4j:将JAR包装为轻量级本机Windows可执行程序。官网

Nexus:支持代理和缓存功能的二进制管理工具。官网

packr:将JAR、资源和JVM打包成Windows、Linux和Mac OS X本地发布文件。官网

文档处理工具

处理Office文档的开发库。

Apache POI:支持OOXML规范(XLSX、DOCX、PPTX)以及OLE2规范(XLS、DOC、PPT)。官网

documents4j:使用第三方转换器进行文档格式转换,转成类似MS Word这样的格式。官网

jOpenDocument:处理OpenDocument格式(由Sun公司提出基于XML的文档格式)。官网

函数式编程

函数式编程支持库。

Cyclops:支持一元(Monad)操作和流操作工具类、comprehension(List语法)、模式匹配、trampoline等特性。官网

Fugue:Guava的函数式编程扩展。官网

Functional Java:实现了多种基础和高级编程抽象,用来辅助面向组合开发(composition-oriented development)。官网

Javaslang:一个函数式组件库,提供持久化数据类型和函数式控制结构。官网

jOOλ:旨在填补Java 8 lambda差距的扩展,提供了众多缺失的类型和一组丰富的顺序流API。官网

游戏开发

游戏开发框架。

jMonkeyEngine:现代3D游戏开发引擎。官网

libGDX:全面的跨平台高级框架。官网

LWJGL:对OpenGL/CL/AL等技术进行抽象的健壮框架。官网

GUI

现代图形化用户界面开发库。

JavaFX:Swing的后继者。官网

Scene Builder:开发JavaFX应用的可视化布局工具。官网

高性能计算

涵盖了从集合到特定开发库的高性能计算相关工具。

Agrona:高性能应用中常见的数据结构和工具方法。官网

Disruptor:线程间消息传递开发库。官网

fastutil:快速紧凑的特定类型集合(Collection)。官网

GS Collections:受Smalltalk启发的集合框架。官网

HPPC:基础类型集合。官网

Javolution:实时和嵌入式系统的开发库。官网

JCTools:JDK中缺失的并发工具。官网

Koloboke:Hash set和hash map。官网

Trove:基础类型集合。官网

High-scale-bli:Cliff Click 个人开发的高性能并发库官网

IDE

简化开发的集成开发环境。

Eclipse:老牌开源项目,支持多种插件和编程语言。官网

IntelliJ IDEA:支持众多JVM语言,是安卓开发者好的选择。商业版主要针对企业客户。官网

NetBeans:为多种技术提供集成化支持,包括Java SE、Java EE、数据库访问、HTML5

Imgscalr:纯Java 2D实现,简单、高效、支持硬件加速的图像缩放开发库。官网

Picasso:安卓图片下载和图片缓存开发库。官网

Thumbnailator:Thumbnailator是一个高质量Java缩略图开发库。官网

ZXing:支持多种格式的一维、二维条形码图片处理开发库。官网

im4java: 基于ImageMagick或GraphicsMagick命令行的图片处理开发库,基本上ImageMagick能够支持的图片格式和处理方式都能够处理。官网

Apache Batik:在Java应用中程序以SVG格式显示、生成及处理图像的工具集,包括SVG解析器、SVG生成器、SVG DOM等模块,可以集成使用也可以单独使用,还可以扩展自定义的SVG标签。官网

JSON

简化JSON处理的开发库。

Genson:强大且易于使用的Java到JSON转换开发库。官网

Gson:谷歌官方推出的JSON处理库,支持在对象与JSON之间双向序列化,性能良好且可以实时调用。官网

Jackson:与GSON类似,在频繁使用时性能更佳。官网

LoganSquare:基于Jackson流式API,提供对JSON解析和序列化。比GSON与Jackson组合方式效果更好。官网

Fastjson:一个Java语言编写的高性能功能完善的JSON库。官网

Kyro:快速、高效、自动化的Java对象序列化和克隆库。官网

JVM与JDK

目前的JVM和JDK实现。

JDK 9:JDK 9的早期访问版本。官网

OpenJDK:JDK开源实现。官网

基于JVM的语言

除Java外,可以用来编写JVM应用程序的编程语言。

Scala:融合了面向对象和函数式编程思想的静态类型编程语言。官网

Groovy:类型可选(Optionally typed)的动态语言,支持静态类型和静态编译。目前是一个Apache孵化器项目。官网

Clojure:可看做现代版Lisp的动态类型语言。官网

Ceylon:RedHat开发的面向对象静态类型编程语言。官网

Kotlin:JetBrain针对JVM、安卓和浏览器提供的静态类型编程语言。官网

Xtend:一种静态编程语言,能够将其代码转换为简洁高效的Java代码,并基于JVM运行。官网

日志

记录应用程序行为日志的开发库。

Apache Log4j 2:使用强大的插件和配置架构进行完全重写。官网

kibana:分析及可视化日志文件。官网

Logback:强健的日期开发库,通过Groovy提供很多有趣的选项。官网

logstash:日志文件管理工具。官网

Metrics:通过JMX或HTTP发布参数,并且支持存储到数据库。官网

SLF4J:日志抽象层,需要与具体的实现配合使用。官网

机器学习

提供具体统计算法的工具。其算法可从数据中学习。

Apache Flink:快速、可靠的大规模数据处理引擎。官网

Apache Hadoop:在商用硬件集群上用来进行大规模数据存储的开源软件框架。官网

Apache Mahout:专注协同过滤、聚类和分类的可扩展算法。官网

Apache Spark:开源数据分析集群计算框架。官网

DeepDive:从非结构化数据建立结构化信息并集成到已有数据库的工具。官网

Deeplearning4j:分布式多线程深度学习开发库。官网

H2O:用作大数据统计的分析引擎。官网

Weka:用作数据挖掘的算法集合,包括从预处理到可视化的各个层次。官网

QuickML:高效机器学习库。官网、GitHub

消息传递

在客户端之间进行消息传递,确保协议独立性的工具。

Aeron:高效可扩展的单播、多播消息传递工具。官网

Apache ActiveMQ:实现JMS的开源消息代理(broker),可将同步通讯转为异步通讯。官网

Apache Camel:通过企业级整合模式(Enterprise Integration Pattern EIP)将不同的消息传输API整合在一起。官网

Apache Kafka:高吞吐量分布式消息系统。官网

Hermes:快速、可靠的消息代理(Broker),基于Kafka构建。官网

JBoss HornetQ:清晰、准确、模块化,可以方便嵌入的消息工具。官网

JeroMQ:ZeroMQ的纯Java实现。官网

Smack:跨平台XMPP客户端函数库。官网

Openfire:是开源的、基于XMPP、采用Java编程语言开发的实时协作服务器。 Openfire安装和使用都非常简单,并可利用Web界面进行管理。 官网GitHub

Spark:是一个开源,跨平台IM客户端。它的特性支持集组聊天,电话集成和强大安全性能。如果企业内部部署IM使用Openfire+Spark是最佳的组合。 官网 GitHub

Tigase: 是一个轻量级的可伸缩的 Jabber/XMPP 服务器。无需其他第三方库支持,可以处理非常高的复杂和大量的用户数,可以根据需要进行水平扩展。 官网

杂项

未分类其它资源。

Design Patterns:实现并解释了最常见的设计模式。官网

Jimfs:内存文件系统。官网

Lanterna:类似curses的简单console文本GUI函数库。官网

LightAdmin:可插入式CRUD UI函数库,可用来快速应用开发。官网

OpenRefine:用来处理混乱数据的工具,包括清理、转换、使用Web Service进行扩展并将其关联到数据库。官网

RoboVM:Java编写原生iOS应用。官网

Quartz:强大的任务调度库.官网

应用监控工具

监控生产环境中应用程序的工具。

AppDynamics:性能监测商业工具。官网

JavaMelody:性能监测和分析工具。官网

Kamon:Kamon用来监测在JVM上运行的应用程序。官网

New Relic:性能监测商业工具。官网

SPM:支持对JVM应用程序进行分布式事务追踪的性能监测商业工具。官网

Takipi:产品运行时错误监测及调试商业工具。官网

原生开发库

用来进行特定平台开发的原生开发库。

JNA:不使用JNI就可以使用原生开发库。此外,还为常见系统函数提供了接口。官网

自然语言处理

用来专门处理文本的函数库。

Apache OpenNLP:处理类似分词等常见任务的工具。官网

CoreNLP:斯坦佛CoreNLP提供了一组基础工具,可以处理类似标签、实体名识别和情感分析这样的任务。官网

LingPipe:一组可以处理各种任务的工具集,支持POS标签、情感分析等。官网

Mallet:统计学自然语言处理、文档分类、聚类、主题建模等。官网

网络

网络编程函数库。

Async Http Client:异步HTTP和WebSocket客户端函数库。官网

Grizzly:NIO框架,在Glassfish中作为网络层使用。官网

Netty:构建高性能网络应用程序开发框架。官网

OkHttp:一个Android和Java应用的HTTP+SPDY客户端。官网

Undertow:基于NIO实现了阻塞和非阻塞API的Web服务器,在WildFly中作为网络层使用。官网

ORM

处理对象持久化的API。

Ebean:支持快速数据访问和编码的ORM框架。官网

EclipseLink:支持许多持久化标准,JPA、JAXB、JCA和SDO。官网

Hibernate:广泛使用、强健的持久化框架。Hibernate的技术社区非常活跃。官网

MyBatis:带有存储过程或者SQL语句的耦合对象(Couples object)。官网

OrmLite:轻量级开发包,免除了其它ORM产品中的复杂性和开销。官网

Nutz:另一个SSH。官网,Github

JFinal:JAVA WEB + ORM框架。官网,Github

PDF

用来帮助创建PDF文件的资源。

Apache FOP:从XSL-FO创建PDF。官网

Apache PDFBox:用来创建和操作PDF的工具集。官网

DynamicReports:JasperReports的精简版。官网

flyingsaucer:XML/XHTML和CSS 2.1渲染器。官网

iText:一个易于使用的PDF函数库,用来编程创建PDF文件。注意,用于商业用途时需要许可证。官网

JasperReports:一个复杂的报表引擎。官网

性能分析

性能分析、性能剖析及基准测试工具。

jHiccup:提供平台中JVM暂停的日志和记录。官网

JMH:JVM基准测试工具。官网

JProfiler:商业分析器。官网

LatencyUtils:测量和报告延迟的工具。官网

VisualVM:对运行中的应用程序信息提供了可视化界面。官网

YourKit Java Profiler:商业分析器。官网

响应式开发库

用来开发响应式应用程序的开发库。

Reactive Streams:异步流处理标准,支持非阻塞式反向压力(backpressure)。官网

Reactor:构建响应式快速数据(fast-data)应用程序的开发库。官网

RxJava:通过JVM可观察序列(observable sequence)构建异步和基于事件的程序。官网

REST框架

用来创建RESTful 服务的框架。

Dropwizard:偏向于自己使用的Web框架。用来构建Web应用程序,使用了Jetty、Jackson、Jersey和Metrics。官网

Feign:受Retrofit、JAXRS-2.0和WebSocket启发的HTTP客户端连接器(binder)。官网

Jersey:JAX-RS参考实现。官网

RESTEasy:经过JAX-RS规范完全认证的可移植实现。官网

RestExpress:一个Java类型安全的REST客户端。官网

RestX:基于注解处理和编译时源码生成的框架。官网

Retrofit:类型安全的REST客户端。官网

Spark:受到Sinatra启发的Java REST框架。官网

Swagger:Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful Web Service。官网

Blade:国人开发的一个轻量级的MVC框架. 它拥有简洁的代码,优雅的设计。官网

科学计算与分析

用于科学计算和分析的函数库。

DataMelt:用于科学计算、数据分析及数据可视化的开发环境。官网

JGraphT:支持数学图论对象和算法的图形库。官网

JScience:用来进行科学测量和单位的一组类。官网

搜索引擎

文档索引引擎,用于搜索和分析。

Apache Solr:一个完全的企业搜索引擎。为高吞吐量通信进行了优化。官网

Elasticsearch:一个分布式、支持多租户(multitenant)全文本搜索引擎。提供了RESTful Web接口和无schema的JSON文档。官网

Apache Lucene:是一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。官网

安全

用于处理安全、认证、授权或会话管理的函数库。

Apache Shiro:执行认证、授权、加密和会话管理。官网

Bouncy Castle,涵盖了从基础的帮助函数到PGP/SMIME操作。官网:多途加密开发库。支持JCA提供者(JCA provider)

Cryptomator:在云上进行客户端跨平台透明加密。官网

Keycloak:为浏览器应用和RESTful Web Service集成SSO和IDM。目前还处于beta版本,但是看起来非常有前途。官网

PicketLink:PicketLink是一个针对Java应用进行安全和身份认证管理的大型项目(Umbrella Project)。官网

序列化

用来高效处理序列化的函数库。

FlatBuffers:高效利用内存的序列化函数库,无需解包和解析即可高效访问序列化数据。官网

Kryo:快速、高效的对象图形序列化框架。官网

FST:提供兼容JDK的高性能对象图形序列化。官网

MessagePack:一种高效的二进制序列化格式。官网

应用服务器

用来部署应用程序的服务器。

Apache Tomcat:针对Servlet和JSP的应用服务器,健壮性好且适用性强。官网

Apache TomEE:Tomcat加Java EE。官网

Jetty:轻量级、小巧的应用服务器,通常会嵌入到项目中。官网

WebSphere Liberty:轻量级、模块化应用服务器,由IBM开发。官网

WildFly:之前被称作JBoss,由Red Hat开发。支持很多Java EE功能。官网

模板引擎

在模板中替换表达式的工具。

Apache Velocity:提供HTML页面模板、email模板和通用开源代码生成器模板。官网

FreeMarker:通用模板引擎,不需要任何重量级或自己使用的依赖关系。官网

Handlebars.java:使用Java编写的模板引擎,逻辑简单,支持语义扩展(semantic Mustache)。官网

Thymeleaf:旨在替换JSP,支持XML文件的工具。官网

测试

测试内容从对象到接口,涵盖性能测试和基准测试工具。

Apache JMeter:功能性测试和性能评测。官网

Arquillian:集成测试和功能行测试平台,集成Java EE容器。官网

AssertJ:支持流式断言提高测试的可读性。官网

Awaitility:用来同步异步操作的DSL。官网

Cucumber:BDD测试框架。官网

Gatling:设计为易于使用、可维护的和高性能负载测试工具。官网

Hamcrest:可用来灵活创建意图(intent)表达式的匹配器。官网

JMockit:用来模拟静态、final方法等。官网

JUnit:通用测试框架。官网

Mockito:在自动化单元测试中创建测试对象,为TDD或BDD提供支持。官网

PowerMock: 支持模拟静态方法、构造函数、final类和方法、私有方法以及移除静态初始化器的模拟工具。官网

REST Assured:为REST/HTTP服务提供方便测试的Java DSL。官网

Selenide:为Selenium提供精准的周边API,用来编写稳定且可读的UI测试。官网

Selenium:为Web应用程序提供可移植软件测试框架。官网

Spock:JUnit-compatible framework featuring an expressive Groovy-derived specification language.官网兼容JUnit框架,支持衍生的Groovy范的语言。

TestNG:测试框架。官网

Truth:Google的断言和命题(proposition)框架。官网

Unitils:模块化测试函数库,支持单元测试和集成测试。官网

WireMock:Web Service测试桩(Stub)和模拟函数。官网

通用工具库

通用工具类函数库。

Apache Commons:提供各种用途的函数,比如配置、验证、集合、文件上传或XML处理等。官网

args4j:命令行参数解析器。官网

CRaSH:为运行进行提供CLI。官网

Gephi:可视化跨平台网络图形化操作程序。官网

Guava:集合、缓存、支持基本类型、并发函数库、通用注解、字符串处理、I/O等。官网

JADE:构建、调试多租户系统的框架和环境。官网

javatuples:正如名字表示的那样,提供tuple支持。尽管目前tuple的概念还有留有争议。官网

JCommander:命令行参数解析器。官网

Protégé:提供存在论(ontology)编辑器以及构建知识系统的框架。官网

网络爬虫

用于分析网站内容的函数库。

Apache Nutch:可用于生产环境的高度可扩展、可伸缩的网络爬虫。官网

Crawler4j:简单的轻量级网络爬虫。官网

JSoup:刮取、解析、操作和清理HTML。官网

Web框架

用于处理Web应用程序不同层次间通讯的框架。

Apache Tapestry:基于组件的框架,使用Java创建动态、强健的、高度可扩展的Web应用程序。官网

Apache Wicket:基于组件的Web应用框架,与Tapestry类似带有状态显示GUI。官网

Google Web Toolkit:一组Web开发工具集,包含在客户端将Java代码转为JavaScript的编译器、XML解析器、RCP 官网API、JUnit集成、国际化支持和GUI控件。

Grails:Groovy框架,旨在提供一个高效开发环境,使用约定而非配置、没有XML并支持混入(mixin)。官网

Ninja:Java全栈Web开发框架。非常稳固、快速和高效。官网

Pippo:小型、高度模块化的类Sinatra框架。官网

Play:使用约定而非配置,支持代码热加载并在浏览器中显示错误。官网

PrimeFaces:JSF框架,提供免费和带支持的商业版本。包括若干前端组件。官网

Ratpack:一组Java开发函数库,用于构建快速、高效、可扩展且测试完备的HTTP应用程序。官网

Spring Boot:微框架,简化了Spring新程序的开发过程。官网

Spring:旨在简化Java EE的开发过程,提供依赖注入相关组件并支持面向切面编程。官网

Vaadin:基于GWT构建的事件驱动框架。使用服务端架构,客户端使用Ajax。官网

Blade:国人开发的一个轻量级的MVC框架. 它拥有简洁的代码,优雅的设计。官网

业务流程管理套件

流程驱动的软件系统构建。

jBPM:非常灵活的业务流程管理框架,致力于构建开发与业务分析人员之间的桥梁。官网

Activity:轻量级工作流和业务流程管理框架。官网 github

资源

社区

关于olap框架java和OLAP开发的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。