以大数据分析起家的QuantCell Reaearch最近发布了首个他们称作“大数据”表格的公开beta测试版本。
乍一看,人们可能会认为QuantCell是其他电子表格应用的Java Swing版本。但实际上它是早在1970年底就出现的商用电子表格软件VisiCalc发展而来的最新版本,目前这一市场由Microsoft Excel占领,当然,Excel无疑是最广泛使用的计算机程序之一。
之前的电子表格受到行、列以及由程序员掌控的函数等方面限制,QuantCell之所以得到扩展,得益于其对Java和JVM语言的掌握。最近,QuantCell又发现了自己在大数据方面的用武之地,它提供的模版可将Map和Reduce公式输入到电子表格中。
大部分QuantCell基本表格不但能接收传统电子表格的函数,也能接受Java(或者Scala或Jython、R)对象的实例。
下面是一个Java伪代码示例:
a1 <- new String("MM-dd-yyyy") // Store format mask a2 <- new SimpleDateFormat(a1) // Store formatter a3 <- new Date() // Store the date a4 <- a2.format(a3) // Store the formatted string representation of the date.
所以,a4单元格能正确地引用a3和a2,并能间接地引用a1。
图1是上述例子的实际截图。(注意,Java构造器语法中没有使用“new”操作符。同时,在公式区域中,a4单元格的公式中,(*)运算符引用的参数代表的是当前单元格。
InfoQ为此采访了QuantCell的联合创始人Kris Thorleifsson和Agust Egilsson。
InfoQ:你们将QuantCell称作“大数据电子表格”。能否解析下在大数据分析方面QquantCell所起的作用?
QuantCell: QuantCell支持大数据框架、Apache Hadoop的安装及实时大数据分析。它允许用户构建MapReduce算法,使用Hive和其他JDBC兼容的系统和数据库进行分析,使用相关的SQL或NoSQL语法创建实时查询,而这些都能从电子表格界面中实现的。另外,QuantCell允许用户将分析提交到Hadoop服务器或其他大数据系统,并能查看其处理过程。QuantCell提供部署路径能自动化大部分大数据部署任务。它自动交付算法和用来创建大数据任务和分析的框架。QuantCell通过代码助手和向导辅助创建分析。
InfoQ:你们的目标用户群体是哪些?
QuantCell: QuantCell的目标用户群是那些领域专家,如数据科学家、金融工程师和研究人员、以及分析结果的消费者(如决策者和管理者)。QuantCell对开发者来说也是非常有用的,因为它能让开发者通过通过基于表达式的方法快速实现原型,而无需过多考虑界面设计,所以能快速将方案投入生产环境。
InfoQ: QuantCell如何帮助终端用户,他们并非熟练的程序员?
QuantCell: 我们努力提高见效周期以帮助终端用户应对挑战。首先,通过扩展QuantCell电子表格来支持功能强大的编程语言,如R、SQL、Scala、Jython和Java代码片段。此外,我们为领域专家、数据科学家和非开发人员至少降低了四个方面的障碍:
- QuantCell简化了数据的访问和计算周期
- 简化了代码,有时候不需要编码
- 自动向生产环境部署解决方案
- 自动访问外部资源并实现算法及方法
当然,减低上述的障碍并不容易,我们将继续在QuantCell上改善我们的方法。
InfoQ:你们提到数据科学家。请谈谈如何支持这类用户?
QuantCell: 除了简化大数据分析和减少大数据项目的成效周期之外,我们倾听用户,并努力确保QuantCell能支持并方便用户得到最常用的大数据环境。部署功能是QuantCell与生俱来的,我们提供特定于各种大数据环境部署路径。因为部署是复杂的,并且与特定的环境相关,所以这是我们主要的努力方向。与此同时,对于数据科学家来说,能够轻松地将大数据解决方案部署到不同的生产环境中是很有价值的,比如,从原型到生产环境迁移时,无需重写代码。
InfoQ:目前QuantCell有什么可用的分析类库和工具?
QuantCell: 所有根据Apache Maven/Ivy标准赋值的元数据的Java类库都可直接在QuantCell上使用——通常只需一两次点击。这是很重要的,因为它意味着QuantCell能使用户根据需要直观地访问成千上万的类库和工具,差不多数以亿计的算法,都可直接在电子表格中的界面上获得。例如,Maven主搜索目录中的算法、用户自己的类库、开源的Cloudera的Hadoop发行版、财务和风险分析方面的OpenGamma平台、机器学习方面的Weka、生命科学中的BioJava、彭博的开放市场数据、亚马逊的Web服务等等。此外,它们还提供了各类可视化工具,以展示各自的数据处理特性,所以它们不仅增强QuantCel的功能,还提供了可视化查看数据及结果的功能。
InfoQ:在QuantCell中怎么处理大数据集的?
QuantCell: QuantCell用户可以连接到大多数数据源,无论是公共数据提供者,还是使用JDBC SQL或NoSQL的私有数据库,也可以连接到我们上文中提到的Hadoop节点。大数据集通常集中管理,过于庞大而难于迁移,所以在单元格中用对象来表示它们是理想的,这也是QuantCell所采用的方法。用户只需引用包含数据对象的单元格,并在某些分析或模型中引用它们。
InfoQ:在高性能环境中QuantCell的表现如何?
QuantCell: QuantCell模型的性能继承于Java平台。因此,在本地JVM中运行时,其速度和其他Java代码是一样的。特别地,该模型得益于实时(JIT)编译模型和其他JVM平台的优化方法。因此,QuantCell能给电子表格用户带来更多Java计算平台的特性,如即时编译、垃圾收集和并发等。对于计算密集型任务,QuantCell的模型利用了私有云和公共云、Hadoop、Amazon Web服务和其他HPC系统
InfoQ:能否介绍后续计划?
QuantCell: 我们将改进对R、Jython和Scala的支持。我们也正在努力提高代码建议功能,并基于机器学习算法改善公式完成方法。同时我们正在尝试增加我们支持的部署路径,以上只是一部分。
关于两位创始人的一点历史:Agust Egilsson是一位架构师、首席开发人员和技术推广者,从加州大学伯克利分校获得数学博士学位,有着投资银行家的学术和实战背景。Thorleifsson来自Sun公司,目前负责产品管理和营销。
Egilsson在2006年和2007年期间构建了该系统的早期原型,并在其工作中使用这些系统构建了基于Java的交易策略和风险分析系统。
在2010和2011年使用JavaFX重新编写了QuantCell的客户端之后,他们发布了早期的测试版本以获得用户的反馈,此后他们持续改进产品,直到日前刚发布的首个公开beta版。
读者可以从去年Java杂志的推荐文章和JavaOne 2012上QuantCell的演讲中了解更多相关知识。还可以从下载页面中下载Windows版本。稍候将发布Mac的版本。
查看英文原文:QuantCell Research Announces First Public Beta of their Java-Aware Big-Data Spreadsheet
感谢马国耀对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。