我想知道 Stackoverflow 社区是否可以通过建议一种可以解决我的问题的技术(即 HBase、Raiku、Cassandra 等)来帮助我。我有一个大型数据集,我们想实时更新和查询,大约10 兆兆字节。我们的数据集是一个像素流,其中包含一个用户 ID 和一个或多个特征(通常大约 10 个)。可能的特征总数以百万计。
我们想象我们的数据模型看起来像:
FEATUREID_TO_USER_TABLE : 功能 id -> {UserID Hash, UserID Hash, ...}
FEATUREID_TO_COUNTER_TABLE:特征 id -> {自史诗以来的小时数 -> HyperLogLog 字节 blob }
我们希望保留一组按用户 ID 的哈希排序的排序用户 ID。如果新 ID 具有较低的哈希值,我们还希望为每个 FEATUREID_TO_USER_TABLE 条目保留最多约 200k 的旧 ID。
我们希望商店支持以下操作(不一定用 SQL 表示):
select FeatureID, count(FeatureID) from FEATUREID_TO_USER_TABLE where UserID in
(select UserID from FEATUREID_TO_USER_TABLE where FeatureID = 1234)
group by FeatureID;
和
update FEATUREID_TO_COUNTER_TABLE set HyperLogLog = NewBinaryValue where FEATUREID_TO_COUNTER_TABLE.id = 567
我们相信跨机器分片这些数据的最简单方法是通过用户 ID。
感谢您的任何想法,马克