哪些NoSQL数据库支持文本数组列(以及此列上的索引),如postgreSQL text []类型?

时间:2013-05-07 21:33:41

标签: nosql

我需要将数据从postgreSQL移动到NoSQL数据库,在我们评估不同的NoSQL数据库的过程中,Cassandra作为一种可能性出现,但从文档来看,似乎Cassandra不支持将文本数组作为列类型,这是正确的吗?哪种NoSQL数据库支持这种类型的列并支持这类列的索引?

例如,存储它并在具有此类数据的列上具有索引:

City:['Washington','Washington DC']

提前致谢!

1 个答案:

答案 0 :(得分:1)

不完全是你的问题的答案(没有足够的评论声明(?!?)),但是了解你的问题是规模扩大,而你是来自PostgreSQL,你有没有尝试过PostgresXC?这可能比NoSQL更容易转换。正如我所知,NoSQL数据库具有非常不同的性能特征和细微差别,实际上可能弊大于利。 Postgres-XC是一个PostgreSQL的多主要写可扩展分支,从PostgreSQL特性的角度来看介于9.1和9.2之间,它是一个活跃的项目。如果我没记错的话,本月或者最后一次是符合9.2。设置它是相对容易的 - 你将构建2个GTM,一个作为主要,一个作为故障转移,给他们足够的内存。然后,您可以通过添加协调器和数据节点对,每个服务器1个协调器和1个数据节点进行水平扩展。您的应用程序层可以与任何协调器通信,事务将发送到相应的协调器,您可以按表指定数据分布 - 可以复制为小型参考表,也可以分配给大型参考表。如果您很好地设计查询,则可以获得巨大的性能提升,因为您的查询可以在多个协调器/数据节点对上同时发送和执行。

我知道你正在寻找NoSQL,但我提到这一点是因为我们也存在垂直与水平尺度问题,最后我发现将NoSQL功能构建到关系系统比将关系功能构建到关系系统更容易一个NoSQL系统。当然这一切都取决于你的数据,有时NoSQL绝对是最好的选择。有时它也可能是一个令人头痛的问题,例如一些NoSQL数据库在文件系统增长方面存在问题,所以你认为你购买了水平可扩展性,而你却不得不把SAN用在家里和家里。

无论如何,希望有所帮助!我会留下它作为评论,但stackoverflow有一个奇怪的声誉事情继续。

我忘了提及,使用Postgres-XC,您可以指定要分发的列以及使用何种算法。我通常通过散列分发,并确保两件事,首先,哈希可以在应用程序端生成,这样我就不必在行数据的表上进行连接,其次是哈希保持跨服务器的分布级别正确但同时也将相关信息保存在同一服务器上,以增加查询的可传递性。也就是说,如果您有一个客户表和一个客户订单表,请在两个表中的一些客户唯一信息的散列上分发,并确保您可以生成该应用程序端。我希望这是有道理的,我不确定我是否做得很好解释。如果您想进一步澄清,请告诉我,现在XC上的文档有点分散,因此我所涉及的很多内容都是OJT。