我目前正在制定一项增量更新用户数据的策略。我们假设我们的数据库中有 100_000_000 条记录,其中每个工作流更新大约 1_000_000 条记录。
这个想法是更新 MapReduce 作业中的记录。使用索引存储(例如 Cassandra)能够随机访问当前记录是否有用?还是最好从 HDFS 检索数据并将新信息加入现有记录。
记录大小为 O(200 字节)。用户数据具有固定长度,但应该是可扩展的。日志事件具有相似但不相等的结构。用户记录的数量可能会增加。近实时更新是可取的,即。3小时的时间间隔是不可接受的,几分钟就可以了。
您是否对这些策略和这种规模的数据有任何经验?pig JOIN 速度够快吗?总是读取所有记录是瓶颈吗?Cassandra 是否能够有效地保存这么多数据?哪种解决方案是可扩展的?系统的复杂性如何?