近日,Precog宣布了他们的大数据仓储和分析服务,该服务负责处理数据的抓取、变换分析和可视化等过程,以及服务运行所基于的基础架构。不过,这一服务也通过RESTful API预留了各种开放的访问点,支持开发者和数据科学家控制整个过程。

Precog可以从各种数据源抓取输入数据,其中包括SQL数据库、Amazon S3、Hadoop、MongoDB、客户端Web应用和后端服务器等。RESTful API支持开发者从外部源(如Twitter或Facebook)、CSV文件或移动设备抓取数据。抓取的数据保存到一个叫做PrecogDB的定制数据库中,而且我们还可以使用人群统计、态度、位置和其他信息使数据更为丰富。

之后,数据可以通过多种手段加以分析,比如通过一个API,或是利用客户库(JavaScript,PHP),或者使用Labcoat(一种支持使用Quirrel这种声明式查询语言进行数据分析的IDE)。开发者可以创建自己的数据抓取、强化和分析模块,甚至可以将这些模块拿到市场上销售。

Precog能够将整个过程运行在不同的云供应商之上——如Amazon EC2和SoftLayer——以便增加系统的弹性和正常运行时间。

在InfoQ进行的一次采访中,Precog的CEO和创始人John A. De Goes解释到:

“(系统的)架构与数据库分析有些相似,比如都包括面向列的存储;但是其区别在于,前者支持完全异构的、非规范化的数据,通过对Quirrel的支持,相对于使用RDBMS进行分析,使用这种类似于“面向大数据的R”的语言,你能够很方便地执行很多更为高级的计算。”

PrecogDB是该平台的核心,它是一种用Scala编写的、面向列的数据库,运行在JVM上,它也为数据捕获和分析进行了优化。据De Goes介绍,PrecogDB中可以保存“测量数据,如点击、购买、尺寸、Twitter数据,或是收集自其他各种活动的日志信息”。他还补充 道,“Precog尚不能存储大块的非结构化数据,尽管在生物信息学和其他一些领域的应用的确有这种需求。不过这一功能已经在我们的路线图上了。”

至于Quirrel——这种由Precog实现的统计查询语言,De Goes谈到:“Quirrel很多方面都与R编程语言比较相似。像R一样,Quirrel也是为高级的分析与统计而设计的。但与R不同的 是,Quirrel并非图灵完备的语言,它是纯声明式的,利用它更容易高效地在大规模集群的机器中分发Quirrel查询(这也使Quirrel比R更容 易学习)。”

PrecogDB有一些“用于常见的分析与统计计算的内置例程”,它还提供了一个“细粒度的、基于能力的安全模型,支持来自移动设备或Web的应用程序通过RESTAPI直接访问其功能”。