mapreduce—数百万条记录的增量更新,索引与连接

y3bcpkx1  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(514)

我目前正在制定一个策略,对我们的用户数据进行增量更新。我们假设数据库中有10万条记录,其中每个工作流更新了大约1万条记录。
其思想是更新mapreduce作业中的记录。使用索引存储(如cassandra)来随机访问当前记录有用吗?或者最好从hdfs中检索数据,并将新的信息连接到现有的记录中。
记录大小为0(200字节)。用户数据具有固定长度,但应该是可扩展的。日志事件具有相似但不相等的结构。用户记录的数量可能会增加。近实时更新是可取的,即3小时的时间间隔是不可接受的,几分钟是可以的。
你对这些策略和数据中的任何一个有过这样的经验吗?Pig够快吗?读取所有记录总是一个瓶颈吗?Cassandra能有效地保存这么多的数据吗?哪种解决方案是可扩展的?系统的复杂性如何?

nfeuvbwi

nfeuvbwi1#

你需要先定义你的需求。你的记录量不是问题,但是你没有给出记录长度。它们是固定长度,固定字段号,可能会随着时间的推移而改变格式吗?我们说的是100字节记录还是100000字节记录?如果希望按字段/列进行查询,则需要字段/列上的索引,除非您使用map/reduce完成所有工作。用户记录的数量会保持在100mill(一台服务器可能就足够了)还是会以每年100%的速度增长(随着时间的推移,可能会有多台服务器添加新的服务器)。
访问记录以进行更新的方式取决于是否需要实时更新记录,或者是否可以运行批处理作业。更新是每分钟、每小时还是每月?
我强烈建议你做些实验。你已经做过测试了吗?这将给你一个问题的背景,这将导致更客观的问题和答案。你不太可能根据你的问题“白板”出一个解决方案。

相关问题