5

我有兴趣在 cassandra 服务上创建门户,因为我从 100 万条记录开始就遇到了一些性能和规模问题。当然,它可以解决,但我对其他选择感兴趣。

我的主要问题是更新所有必要索引的成本,以加快阅读速度。

首先,cassandra 是 asp.net 程序员的好方法吗?我的意思是,也许还有一些其他项目,值得一看

其次,您能否提供有关如何从 C# 开始 cassandra 编程的任何文档示例?

4

6 回答 6

11

因为我从 100 万条记录开始就面临性能和规模问题。

也许你的设计不是那么好,NoSQL 不是糟糕设计的灵丹妙药。我有数十亿行表,95% 的响应是亚秒级的。另外更新索引是什么意思,是更新统计信息还是重建索引?

于 2010-03-29T16:48:09.077 回答
3

如果您将 Cassandra 用于您的 .NET 应用程序,请查看Aquiles。我是根据我公司的需要开发的。如果您觉得它有用或需要任何帮助,请告诉我。

于 2010-12-06T14:38:40.573 回答
3

因为我从 100 万条记录开始就面临性能和规模问题。

您知道,现代数据库的一百万大关并不是“完全可笑的小”,您可以忽略实际上知道自己在做什么。一百万以下是“小”。我有一个 8 亿行的表,并且通过它运行了很多 sql - 完全没有问题。

首先,cassandra 是 asp.net 程序员的好方法吗?

我会更建议一本关于 SQL 的基本书籍,阅读文档并可能在问题上投入一些硬件。如:拥有完全坏的硬件会杀死所有的数据管理系统。

于 2010-03-29T16:54:43.317 回答
2

你不能真正谈论 Cassandra 文档。网络上有无数的部分教程。
您可能希望在虚拟机中设置 Linux,因为至少可以说,Windows 构建过程非常具有挑战性。
( http://www.virtualbox.org , http://www.ubuntu.com )

这里是操作方法:
http ://www.ridgway.co.za/archive/2009/11/06/net-developers-guide -to-getting-started-with-cassandra.aspx
请注意,自编写本教程以来,cassandra SVN url 和代码示例已更改。

这是另一个 C# 客户端:http:
//github.com/mattvv/hectorsharp

这里有一些示例代码: http:
//www.copypastecode.com/26752/

请注意,您需要从 Sun for Linux 下载最新的 Java Development Kit (JDK)。它不在 Ubuntu 10.04 的存储库中。然后你需要输入

export JAVA_HOME="/path/to/jdk"

为了让 Cassandra 找到您的 Java 安装。


您可能还想看看:
http ://en.wikipedia.org/wiki/NoSQL

尤其是分类部分很有趣。
确保 Cassandra 是适合您问题的 NoSQL 解决方案类型,例如,如果您的问题实际上是图形问题,请使用 Neo4J。

此外,您需要确保您的 NoSQL 解决方案符合 ACID。
例如,Neo4J 是唯一符合 ACID 的 NoSQL 图形引擎。

编辑:这是 Windows 的快速入门指南,无需编译:
http ://coderjournal.com/2010/03/cassandra-jump-start-for-the-windows-developer/
http://www.ronaldwidha.net/2010/ 06/23/running-cassandra-on-windows-first-attempt/
http://www.yafla.com/dforbes/Getting_Started_with_Apache_Cassandra_a_NoSQL_frontrunner_on_Windows/

于 2010-08-31T06:39:48.397 回答
2

而不是 cassandra,您可能会看一下:ravendb。据说它是用.Net 制作和创建的文档存储。它具有 Linq 集成,并且(再次据说)非常快。

与任何新技术一样,请阅读它是否对您的特定案例有帮助,并检查它是否是经过验证的技术(他们是否有主流客户使用它)。

在你进入这条路线之前,看看你是否不能先优化你当前的解决方案。检查您的查询是否快速,索引是否正确完成,以及是否无法通过添加缓存来消除负载。

最后一点同样重要的是,如果向 SQL 机器添加一些处理器可能会解决问题,它通常是一个更便宜的解决方案。

于 2010-08-31T06:56:35.363 回答
1

如果您想做一些新的事情,那么您可能想要考虑尝试数据库集群,而不是使用 noSQL。

这个想法是,当两台机器同时搜索原始数据库的一半时,您有一半的搜索时间,而无需完全重新设计现有数据库。

于 2010-08-28T09:15:58.597 回答