以大数据分析起家的 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 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论