RavenDB:基于Windows/.NET平台的NoSQL数据库

2018-01-29 18:16:29 浏览数 (1)

众所周知,NoSQL运动旨在成为大数据时代传统关系数据库管理系统的替代品。如今Microsoft对开源的态度有所转变,RavenDB就是很好的例子。Microsoft对RavenDB(NoSQL数据库)的认可令很多人感到惊讶。RavenDB可以轻易的替代关系数据库管理系统并兼容以往的.NET应用。

NoSQL的出现与发展是非常必要的,NoSQL系统的速度和高扩展性是其具备的优势,而这并不是传统关系数据库的强项。NoSQL为Amazon、Google等需要处理大数据的公司提供行之有效的解决方案。如键值存储鼻祖BigTable以及文档数据库CouchDB。

而相关的云存储解决方案提供了在传统关系数据库之外的选择,包括Windows Azure Table(键值类型)以及基于Hadoop的Amazon EC2。

将数据存储在行或列的固定模式是像SQL Server和Oracle等传统关系性数据库的基本特性。虽然许多人认为传统的关系数据库将逐渐消亡,但不同的情况需要不同的工具。随着大量不同类型数据持续增长,未来非结构化数据存储将成为关键技术。

RavenDB是针对Windows/.NET平台而设计的文档数据库。RavenDB的出现将.NET应用与非关系数据库连接到一起。数据以Shcema-less方式存储,并直接通过HTTP、RESTful API或更方便的.NET客户端API连接。.NET客户端API使用LINQ操作RavenDB数据库文档存储。

实战RavenDB

在安装RavenDB之前,你需要安装.NET Framework 4.0。RavenDB可在三种不同的模式下运行,包括作为Windows服务、IIS 应用程序以及嵌入.NET 应用程序。

最新版RavenDB包含以下组件:

●Client:基于.NET Framework 4.0轻量级客户端

●Client 3.5:基于.NET Framework 3.5轻量级客户端

●Silverlight:Silverlight 4.0客户端

●EmbeddedClient:EmbeddedClient(包含嵌入式模式下RavenDB所需的文件)

●Server:RavenDB服务器模式所需文件

●Web: 在IIS模式下RavenDB所需的文件

●Bundles: RavenDB扩展文件

●Samples:RavenDB样本应用

以下命令用于设置服务器端

  1. <Raven root directory>ServerRaven.Server.exe /install

安装成功后可通过http://localhost:8080/raven/studio.html访问。如图1。由于该接口使用Silverlight,可能会需要安装或升级Silverlight组件。

可以点击创建样本数据按钮填充样本数据存储以了解RavedDB是如何工作的。

图2显示打开RavenDB以及数据是如何存储进RavenDB的。这组数据创建了以下属性:AlbumArtUrl、Artist、Genre、Price、Title和Count Sold。

代码语言:js复制
{
"AlbumArtUrl": "/Content/Images/placeholder.gif",
"Artist": {
"Id": "artists/133",
"Name": "Stevie Ray Vaughan & Double Trouble"
},
"Genre": {
"Id": "genres/6",
"Name": "Blues"
},
"Price": 8.99,
"Title": "In Step",
"CountSold": 0
}

样式数据库具备一个特有的网址(http://localhost:8080/raven/studio.html#/edit?id=albums/614&database=Default),同时还可以通过URL访问其他的项目。

例如流派的信息可通过如下网址访问:http://localhost:8080/raven/studio.html#/edit?id=genres/6&database=Default,同时在Web页面还可编辑数据。

数据库的未来

NoSQL专家预测传统关系数据库将要消亡的想法是不理智的。不同的场景需要不同的应用。Google、Amazon、Microsoft等巨头背后的各种产品使未来数据库的发展具有光明的未来。而对于未来数据库的发展,您又是怎么认为的呢?(李智/编译)

原文链接:techrepublic.com

将 RavenDB 嵌入 ASP.NET MVC 3 应用程序中

RavenDB在传统C/S应用下的一点实践

RavenDB 2.5带来动态聚合和查询流

RavenDB自定义analyzer

RavenDB创始人谈.NET、NoSQL上的ACID以及该项目的未来特性

0 人点赞