数据库初创公司Citus Data在本周二实现了Hadoop数据上的快速SQL查询,这并不算什么大事,因为它们还有更大的目标。Citus Data已超越Postgres将其高速、分析数据库CitusDB扩展到Hadoop上,接着可能扩张到MongoDB以及其它你已经想到的数据库产品。GigaOM的记者Derrick Harris认为,它是所有人都需要的唯一分析型数据库,它能够数据的查询,无论存储任何环境之中——关系型数据库、Hadoop、MongoDB、 Amazon S3或者还有其他的地方。
大数据已经打开了企业数据分析以及选择性数据存储的视野。那么这两项的结合往往意味着需要学习新的语言,使用多工具处理,而且在分析平台上还可能需要牺牲一部分性能。
Citus Data公司的旗舰产品就是CitusDB,它通常建立在PostgreSQL之上,第一代的目的就是为关系型数据设计像谷歌Dremel这种规模和速度的数据库。由于其中的一项功能“foreign data wrappers”,所以它能够在多种数据类型(像CSV, log以及JSON files,而且这些数据类型在原生的Postgres上是并不匹配的)上运行SQL。所以当CitusDB除了Postgres之外,还官方支持Hadoop文件分布式系统(HDFS),这就意味着绝不仅限于这些。
Matt Ocko是数据收集的负责人,也是Citus Data早期的投资者之一,他认为数据库从技术来来讲应该支持任何使用ODBC驱动的数据源,甚至能够直接从存储的数据中直接查询日志文件。事实上,Citus正在致力对MongoDB的支持——这种能力现在已经在测试版上了。Ocko强调了CitusDB像“网”一样的能力,它能够连接各种数据源,而不需要用户进行独立的查询,然后再手动地连接数据。他举了一个例子,使用CitusDB跨Postgres和Hadoop做join查询。
另外一点就是,CitusDB不仅具有良好的灵活性而且很快。Ocko说到CitusDB已经超越甲骨文Exadata machine上引以为豪的一个TPC-H基准测试(数据直接存储在硬盘上)。上文中提及的运行在亚马逊EC2云上的Postgres-Hadoop查询仅仅在几秒钟之内就完成了。
Citus的联合创始人Umur Cubukcu告诉Derrick,CitusDB之所以如此之快是因为它的架构:取代将数据在网络中传输,它将焦点聚集到数据位置的计算,并且在资源间具有强大的负载平衡能力。比如,需要一个很慢节点上储存的资源去完成完成一个任务,取代一味的等待它会去其它的节点上寻求相同的资源。
以Hadoop举例,MapReduce把计算带给了数据,但是每一个Job需要对整个数据集进行扫描。这就是早期的Hadoop上的SQL查询工具Hive现在仍然很慢的原因。曾经在Cloudera工作的Citus的软件工程师Carl Steinbach表示,CitusDB比Hive查询数据类型的速度快3到20倍。在一个典型的互动环境中,短查询的实际的速度可能还会更快。但是他同时指出,这些并不是Hive真正的设计目的所在。
然而,CitusDB真正的竞争对手是SQL-On-Hadoop的项目,产品还有很多初创公司。下个月“Structure: Data”有一系列的话题为围绕于此展开,届时Aster Data,Platfora,Cloudera(Impala),Apache Drill,Drawn to Scale以及Hadapt都会展现各自的风采。
这些都是令人印象深刻的技术(至少在理论上,它们仍然处在发展阶段),Citus可能会不小心的忽视他们。但是除了可以查询多个数据源之外,Citus仍然还有自己独特的产品,这是其他的公司所不具备的。“当你在谈论一个企业级的数据库的时候”Steinbach表示,“那么谈论的内容绝对不仅仅是一个查询执行引擎。”