Cassandra之上的Spark如何影响Cassandra数据建模



在处理Cassandra时,我学到的第一件事是,您需要非常小心您的数据模型,因为Cassandra不支持联接、聚合等。因此,您可以根据查询对数据进行建模,使用广泛的去规范化等。

但假设我已经决定在卡桑德拉之上运行Spark。Spark将允许进行连接和聚合,以及对数据进行不同的计算。

因此,我的问题是,当在Cassandra中对我的数据进行建模时,考虑到我将在上面运行Spark,我需要更改我的模型,使其适合Spark进行更快的计算,还是我仍然需要坚持在普通Cassandra的数据建模的最佳实践?

例如,如果我在cassandra中有Table1和Table2,它们保存着相同的数据,但在Table1中,数据由Key1、Key2(partion key)键控,在表2中,数据由Key1、Key3(partion key)键控。这本质上是我的数据的两个视图,可以快速查询。如果我需要按Key1、Key2、Key3查询数据,我将不得不创建第三个表Table3。但是知道我可以在Cassandra之上查询和连接Spark中的Table1和Table2,我可能不需要创建Table3?

Table1+Table2表示两次读取,而只有Table3表示一次读取。因此,具有复合主键的表3将更快地

最新更新