微信号:infoqchina

介绍:有内容的技术社区媒体

【工具】FoundationDB SQL层:在NoSQL数据库中存储SQL数据

2014-09-18 20:01 InfoQ

FoundationDB已经正式发布“SQL层(SQL Layer)”,这是一个ANSI SQL引擎,运行在他们自己的键值存储上。它使FoundationDB成为一个关系型数据库,其后台是一个可扩展的、具有容错能力的、无共享的分布式NoSQL存储,而且支持跨多个数据元素的ACID事务。

FoundationDB的做法是将数据模型与存储分离。例如,数据存储并没有内建索引。上一层会提供相应的功能,它通过创建和存储两个键值对来实现索引,一个用于数据,一个用于索引。

通过API提供简便的存储访问,并将部分功能分配给上一层,这使开发人员可以在FoundationDB上创建各种层。SQL层是其中一种。社区还创建了若干其它的层,如Protocol Buffers for RubyFowl(一个面向Node.js的查询层)及其它。

通常组织在表中的SQL数据在FoundationDB中存储为“元组(tuple)”。数据通过有序键访问,它们也是元组。除数据索引外,这样一个元组包含数据所属的表及与其它表的关系信息。通过使用元组,在一次操作中,检索/存储范围数据成为可能。

SQL层用Java编写,并使用了源于Apache DerbyFoundationDB SQL Parser,它兼容多种ORM——HibernateEntity FrameworkActiveRecordDjangoSQLAlchemyDoctrine。该层在GitHub上提供,遵循GNU GPL许可协议。

FoundationDB支持多种开发语言——Java.NETCRubyNode.jsGoPHPPython——,并且可以部署到LinuxMac OSWindows、单机或它们组成的集群、本地或云上。除付费版本SilverGoldPlatinum之外,FoundationDB还提供了免费版本。该版本在生产环境中有使用限制,用户只能启动6个进程。


 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 野狗Meetup技术沙龙 | 6月18日中关村创业大街3W咖啡 你的脑海中运营是一条线,还是很多点? Python 并行分布式框架:Celery 为何越努力就越纠结?——《架构师成长之路》NO.7(超级大礼包) 手机淘宝地理围栏技术