Database Cassandra能否基于日期/时间戳对表进行分区?

Database Cassandra能否基于日期/时间戳对表进行分区?,database,nosql,cassandra,sparse-matrix,Database,Nosql,Cassandra,Sparse Matrix,我有一张很大的桌子,有很多列。某些列中的值很少更改,并且由于将所有这些数据存储在一个表中是不好的,因此我希望根据时间戳将该表划分为多个表。也就是说,对于一个时间戳,生成一个表,而查询所有这些表时,应该给出一个表的抽象。也就是说,查询应该只在所需的表上执行(基于时间范围查询),并且应该合并所有这些结果 因此,我需要两个功能: 自动稀疏实现 基于时间戳和命中单个表的抽象的多表存储 哪种工具最适合此目的?Cassandra是否合适?传统的SQL数据库,例如可以处理数TB的数据(最大理论表大小为32

我有一张很大的桌子,有很多列。某些列中的值很少更改,并且由于将所有这些数据存储在一个表中是不好的,因此我希望根据时间戳将该表划分为多个表。也就是说,对于一个时间戳,生成一个表,而查询所有这些表时,应该给出一个表的抽象。也就是说,查询应该只在所需的表上执行(基于时间范围查询),并且应该合并所有这些结果

因此,我需要两个功能:

  • 自动稀疏实现
  • 基于时间戳和命中单个表的抽象的多表存储

哪种工具最适合此目的?Cassandra是否合适?

传统的SQL数据库,例如可以处理数TB的数据(最大理论表大小为32TB)。有些可以处理更大的数据量,尽管这通常需要围绕一组计算机对数据进行分区

10列并不多-根据列类型,PostgreSQL每个表最多有250-16600列。提供了时间索引,因此不需要按时间戳进行分区,因为您仍然需要查询数据(即,您没有存档旧数据)

Cassandra可以处理比这大得多的数据量,但通常会使用集群中的多个节点来共享负载并提供复制。典型的建议似乎是,如果系统读/写负载较重,则每TB使用一个节点;如果系统负载较轻,则使用更多节点(2-3 TB?)

卡桑德拉不使用这样的表格。它具有列族,其中包含稀疏列的行()。同样,通常不需要对数据进行分区—您可以在单个列族中存储大量的行(在后台,它们跨节点进行分区,并进一步分区到称为SSTables的文件中)


Cassandra是否合适在某种程度上取决于您想要进行的查询类型。Cassandra不提供灵活的SQL查询,因此您需要对数据进行结构化以适应查询。

传统的SQL数据库,例如可以处理数TB的数据(最大理论表大小为32TB)。有些可以处理更大的数据量,尽管这通常需要围绕一组计算机对数据进行分区

10列并不多-根据列类型,PostgreSQL每个表最多有250-16600列。提供了时间索引,因此不需要按时间戳进行分区,因为您仍然需要查询数据(即,您没有存档旧数据)

Cassandra可以处理比这大得多的数据量,但通常会使用集群中的多个节点来共享负载并提供复制。典型的建议似乎是,如果系统读/写负载较重,则每TB使用一个节点;如果系统负载较轻,则使用更多节点(2-3 TB?)

卡桑德拉不使用这样的表格。它具有列族,其中包含稀疏列的行()。同样,通常不需要对数据进行分区—您可以在单个列族中存储大量的行(在后台,它们跨节点进行分区,并进一步分区到称为SSTables的文件中)


Cassandra是否合适在某种程度上取决于您想要进行的查询类型。Cassandra不提供灵活的SQL查询,因此您需要对数据进行结构化以适应查询。

考虑到您需要使用哪个工具/数据库,决定表结构似乎为时过早(特别是因为Cassandra不是基于表的)。您似乎需要的是基于时间的查询—这是使用多个表还是(更可能)通过基于时间的索引实现的,这是一个实现细节。请你再详细说明一下,你的桌子有多大?有多少列?它目前在哪些领域实施?您当前的实现存在什么问题(即,为什么您认为将数据保存在一个表中“不好”?)我的数据大约为2到3 TB。至少有10列。我只打算实施它。如果我将数据保存在一个表中,我担心性能是否会受到影响。考虑到您询问要使用哪个工具/数据库,决定表结构似乎为时过早(特别是因为Cassandra不是基于表的)。您似乎需要的是基于时间的查询—这是使用多个表还是(更可能)通过基于时间的索引实现的,这是一个实现细节。请你再详细说明一下,你的桌子有多大?有多少列?它目前在哪些领域实施?您当前的实现存在什么问题(即,为什么您认为将数据保存在一个表中“不好”?)我的数据大约为2到3 TB。至少有10列。我只打算实施它。如果我将数据保存在一个talbe中,我担心性能是否会受到影响。