嵌入式非关系 (nosql) 数据存储 [英] Embedded non-relational (nosql) data store

查看:18
本文介绍了嵌入式非关系 (nosql) 数据存储的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在考虑为我的 Windows 桌面应用程序使用/实现某种嵌入式键值(或文档)存储.我希望能够存储各种类型的数据(GPS 轨迹就是一个例子),当然还能够查询这些数据.数据量很大,无法同时全部加载到内存中.

I'm thinking about using/implementing some kind of an embedded key-value (or document) store for my Windows desktop application. I want to be able to store various types of data (GPS tracks would be one example) and of course be able to query this data. The amount of data would be such that it couldn't all be loaded into memory at the same time.

我正在考虑使用 sqlite 作为键值存储的存储引擎,例如 y-serial,但用 .NET 编写.我还阅读了 FriendFeed 使用 MySQL 存储无模式数据,这是关于如何将 RDBMS 用于非关系数据的一个很好的指南.sqlite 似乎是一个不错的选择,因为它的简单性、可移植性和库大小.

I'm thinking about using sqlite as a storage engine for a key-value store, something like y-serial, but written in .NET. I've also read about FriendFeed's usage of MySQL to store schema-less data, which is a good pointer on how to use RDBMS for non-relational data. sqlite seems to be a good option because of its simplicity, portability and library size.

我的问题是嵌入式非关系存储是否还有其他选项?它不需要是可分发的,也不需要支持事务,但它必须可以从 .NET 访问,并且下载量应该很小.

My question is whether there are any other options for an embedded non-relational store? It doesn't need to be distributable and it doesn't have to support transactions, but it does have to be accessible from .NET and it should have a small download size.

更新:我发现了一篇标题为 SQLite as a Key-Value Database 将 sqlite 与 Berkeley DB 进行比较,后者是一个嵌入式键值存储库.

UPDATE: I've found an article titled SQLite as a Key-Value Database which compares sqlite with Berkeley DB, which is an embedded key-value store library.

推荐答案

Windows 有一个内置的嵌入式非关系存储.它被称为 ESENT,被多个 Windows 应用程序使用,包括 Active Directory 和 Windows 桌面搜索.

Windows has a built-in embedded non-relational store. It is called ESENT and is used by several Windows applications, including the Active Directory and Windows Desktop Search.

http://blogs.msdn.com/windowssdk/archive/2008/10/23/esent-extensible-storage-engine-api-in-the-windows-sdk.aspx

如果您想要 .NET 访问,您可以使用 CodePlex 上的 ManagedEsent 层.

If you want .NET access you can use the ManagedEsent layer on CodePlex.

http://managedesent.codeplex.com/

该项目有一个 PersistentDictionary 类,该类实现了一个键值存储,该存储实现了 IDictionary 接口,但由数据库支持.

That project has a PersistentDictionary class that implements a key-value store that implements the IDictionary interface, but is backed by a database.

这篇关于嵌入式非关系 (nosql) 数据存储的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆