Cassandra 是用于 OLAP 还是 OLTP 或两者?
Is Cassandra for OLAP or OLTP or both?
Cassandra 不像 RDBMS 那样遵守 ACID,而是 CAP。因此,Cassandra 从 CAP 中挑选出 AP,并将其留给用户来调整一致性。
我绝对不能将 Cassandra 用于核心银行交易,因为 C* 稍微不一致。
但 Cassandra 的写入速度非常快,这对 OLTP 非常有利。
我可以将 C* 用于 OLAP,因为读取速度非常快,这也有利于报告。
所以我知道只有当您的应用程序不需要您的数据在一段时间内保持一致但读写应该很快时,C* 才是好的?
如果我的理解是正确的,请列出一些应用程序?
ACID 是关系数据库的属性,其中 BASE 是大多数 nosql 数据库的属性,而 Cassandra 是其中之一。 CAP定理只是解释了分布式系统中的一致性、可用性和分区容忍度问题。 Cassandra 的好处是它具有可调的一致性,因此您可以非常一致(以分区容错为代价),因此 OLTP 是可行的。正如 phact 所说,甚至有一些银行在 Cassandra 之上构建了他们的交易软件。 OLAP 也是可行的,但不适用于 Cassandra,因为它的分区行存储限制了它的能力。您需要像 Spark 这样的东西才能执行所需的复杂查询。
Cassandra 应该避免用于 OLTP 应用程序,即使他们声明它可能不是 OLTP.Even 的完美用例,尽管您可以通过将 Write Consistency 设置为 All 来实现完全一致的模型,这将使写作这是一个相当艰难的过程,对于协调器节点来说,将该数据写入所有复制的所有分区 nodes.And 如果您的 Cassandra 系统在不同的数据中心之间进行大量复制,可能在不同的大陆之间,那么写入所花费的时间将急剧增加.
Cassandra 不像 RDBMS 那样遵守 ACID,而是 CAP。因此,Cassandra 从 CAP 中挑选出 AP,并将其留给用户来调整一致性。 我绝对不能将 Cassandra 用于核心银行交易,因为 C* 稍微不一致。 但 Cassandra 的写入速度非常快,这对 OLTP 非常有利。 我可以将 C* 用于 OLAP,因为读取速度非常快,这也有利于报告。 所以我知道只有当您的应用程序不需要您的数据在一段时间内保持一致但读写应该很快时,C* 才是好的? 如果我的理解是正确的,请列出一些应用程序?
ACID 是关系数据库的属性,其中 BASE 是大多数 nosql 数据库的属性,而 Cassandra 是其中之一。 CAP定理只是解释了分布式系统中的一致性、可用性和分区容忍度问题。 Cassandra 的好处是它具有可调的一致性,因此您可以非常一致(以分区容错为代价),因此 OLTP 是可行的。正如 phact 所说,甚至有一些银行在 Cassandra 之上构建了他们的交易软件。 OLAP 也是可行的,但不适用于 Cassandra,因为它的分区行存储限制了它的能力。您需要像 Spark 这样的东西才能执行所需的复杂查询。
Cassandra 应该避免用于 OLTP 应用程序,即使他们声明它可能不是 OLTP.Even 的完美用例,尽管您可以通过将 Write Consistency 设置为 All 来实现完全一致的模型,这将使写作这是一个相当艰难的过程,对于协调器节点来说,将该数据写入所有复制的所有分区 nodes.And 如果您的 Cassandra 系统在不同的数据中心之间进行大量复制,可能在不同的大陆之间,那么写入所花费的时间将急剧增加.