MariaDB 的 Cassandra 存储引擎

  • Jonathan Allen
  • 赵震一

2012 年 11 月 22 日

话题:MySQL语言 & 开发

MariaDB 已经宣布了 Cassandra 存储引擎的一个预览版本。该插件允许 MariaDB 通过标准 SQL 语法使用 Cassandra 集群。

MariaDB 并不是第一款为 Cassandra 提供 SQL 支持的产品。例如,Simba 提供了一个Cassandra ODBC 驱动,可用于大多数的 ODBC 兼容工具。理论上甚至可以创建一个 Cassandra 链接服务器来执行来自 SQL 服务器的查询。

使用MariaDB 的 Cassandra 存储引擎在 Cassandra 上执行查询时需要创建一个映射表。该虚表需要使用与实际 Cassandra 列族相同的静态列名和类型。而动态列在 MariaDB 中将以 blob 类型的单列形式存在。

当使用 Cassandra 列族时,SQL 的 insert 命令具有“插入或更新”的语义。尽管性能特性与你原来所习惯的可能会有所不同,但查询、更新和删除的工作方式还是一样的。(可以参考Cassandra 文档来了解其使用模式与关系数据库的不同之处。)

Cassandra 宣称自己是一个“具有高可伸缩性、最终一致性,分布式的结构化键值存储”。作为一个键值存储,应尽可能少的用于即席查询(ad hock queries)。根据 MariaDB 文档:

Cassandra 存储引擎并不适合于运行那些需要计算 Cassandra 集群中大量数据的分析类查询。这种任务交由基于 Hadoop 的工具,如 Apache Pig 或 Apache Hive 来处理更为合适。Cassandra 存储引擎更像是 SQL 环境通向 NoSQL 的一个“窗口”。

MariaDB 是 MySQL 数据库的一个分支。该项目的产生源于 MySQL 创始人 Michael Widenius 和 Sun Microsystems 公司在 MySQL 5.1 的质量与项目大方向上的分歧。具体时间可能存在争议,但大家都认为 Oracle 对 Sun 的收购是创建 MariaDB 的最终推动力。

查看英文原文Cassandra Storage Engine for MariaDB


感谢臧秀涛对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

MySQL语言 & 开发