我正在构建一个RESTful服务来返回3个变量:isMachine,hasWheel,isCar。
{
"isMachine": true,
"hasWheel": true,
"isCar": true
}
" ISCAR"是一个派生数据,isCar = isMachine&& hasWheel。
我使用Cassandra作为数据存储区。
每周都会发生数据摄取。
我有两个选择: 1.在数据摄取阶段进行计算,并在不进行计算的情况下进行检索。 2.计算值" isCar"在阅读时动态。
我的问题:最佳做法是什么?我知道这个决定总是需要权衡。我想知道原因。
谢谢。
答案 0 :(得分:1)
假设你的3个变量不是你所存储的实例,那么你需要更好的性能是一个简单的问题:检索或插入/索引。如果你每周进行一次数据摄取,你可能不会在这里遇到瓶颈,所以我会在这里尽可能多地计算
答案 1 :(得分:1)
答案不涉及Cassandra,而是您的应用领域 - 如果将来您需要知道为什么车辆不是汽车,由于信息丢失而无法使用。
就性能而言,计算非常简单,从Cassandra中检索两个布尔列而不是一个布尔列对性能没有影响。
如果计算需要努力工作并经常读取数据,我会计算一次并保存它们(如果信息丢失是可接受的情况)