Cassandra数据建模用于计算



我在卡桑德拉(Cassandra)中有 customer_info表。它将具有以下列。

  1. uuid是主要键。
  2. customer_id
  3. 金额
  4. 其他字段...

在365天内为每个客户的100美元交易限制

我有以下2个选项

  1. 从客户表中选择特定 customer_id 的所有记录。在应用程序代码的内存中进行计算;如果交易限制没有越过100美元,则在Customer_info表中进行插入或更新。

  2. 维护新表 customer_limit ,该表由customer_idlimit字段组成。在customer_info上的CRUD操作之前,我将在customer_limit表上查询以了解限制,并根据限制进行customer_info表上的CRUD操作。

在维护和更快的读/写作方面,哪种选项最适合?

我将使用2个表用于此目的。

table-2将是limit作为计数器值的计数器表。在插入customer_info表之前,您应该始终查询此table-2

在此处引用计数器。在在应用程序源代码中写入之前,它们很容易使并发增量避免读取。

还请阅读有关part和聚类关键概念的信息。您选择的customer_info键不是很好。

我认为您必须保留每个事务的详细信息,因为您需要一个固定光圈(365天)的"移动"窗口,该窗口在每个交易中"进展"。

您可以使用以下主键字段对创建一个transactions表:

(customer_id, transaction_date)

通过在DESC中群集订购此表(当然是按日期),您可以随时查询过去的365天,每天有效。

相关内容

  • 没有找到相关文章

最新更新