Which NoSQL database for what purpose [large ro data]
Is there comparation which NoSQL is designed for what purpose?
I'm especially interested in querying large amount of data practically read-only.
Edit: I mean comparation between NoSQL databases not about comparation with SQL databases.
Soft NoSQL Systems: [not the original intention of "NoSQL" but mostly worth a look for great non relational solutions] Object Databases
db4o: API: Java, C#, .Net Langs, Protocol: language, Query Method: QBE (by Example), Soda, Native Queries, LINQ (.NET), Replication: db4o2db4o & dRS to relationals, Written in: Java, Cuncurrency: ACID serialized, Misc: embedded lib, Links: DZone Refcard #53 », Book »,
Versant: Languages/Protocol: Java, C#, C++, Python. Schema: language class model (easy changable). Modes: always consistent and eventually consistent Replication: synchronous fault tolerant and peer to peer asynchronous. Concurrency: optimistic and object based locks. Scaling: can add physical nodes on fly for scale out/in and migrate objects between nodes without impact to application code. Misc: MapReduce via parallel SQL like query across logical database groupings.
Objectivity: Languages: Java, C#, C++, Python, Smalltalk, SQL access through ODBC. Schema: native language class model, direct support for references, interoperable across all language bindings. 64 bit unique object ID (OID) supports multi exa-byte. Platforms: 32 and 64 bit Windows, Linux, Mac OSX, *Unix. Modes: always consistent (ACID). Concurrency: locks at cluster of objects (container) level. Scaling: unique distributed architecture, dynamic addition/removal of clients & servers, cloud environment ready. Replication: synchronous with quorum fault tolerant across peer to peer partitions.
[Gemstone, Progress ]
Perst: API: Java,Java ME,C#,Mono. Query method: OO via Perst collections, QBE, Native Queries, LINQ, native full-text search, JSQL Replication: Async+sync (master-slave) Written in: Java, C#. Caching: Object cache (LRU, weak, strong), page pool, in-memory database Concurrency: Pessimistic+optimistic (MVCC) + async or sync (ACID) Index types: Many tree models + Time Series. Misc.: Embedded lib., encryption, automatic recovery, native full text search, on-line or off-line backup.
ZODB: API: Python, Protocol: Internal, ZEO, Query Method: Direct object access, zope.catalog, gocept.objectquery, Replication: ZEO, ZEORAID, RelStorage Written in: Python, C Concurrency: MVCC, License: Zope Public License (OSI approved) Misc:Used in production since 1998
NEO: API: Python - ZODB "Storage" interface, Protocol: native, Query Method: transactional key-value, Replication: native, Written in: Python, Concurrency: MVCC at ZODB level, License: GPL "v2 or later", Misc: Load balancing, fault tolerant, hot-extensible.
StupidDB », KiokuDB » (Perl solution),
I found this nice list of NoSQL's at:
http://nosql-database.org/
If you notice a little past midway down the page they have a nice list of noSQL's and appear to go into detail about each.
I think that you greatly underestimate the power of RDBMS. Why use noSQL?
I've worked on ~10tb databases.. and that was 8 years ago, on ancient hardware compared to today.
Do you really have more than 10tb of data? Is it properly normalized?
I can scan against a billion rows in SQL and gives instant answers to almost anything I need.
精彩评论