ershierdu

ershierdu

V2EX 第 308348 号会员,加入于 2018-04-13 11:17:56 +08:00
根据 ershierdu 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
ershierdu 最近回复了
不了解最新的分布式架构,但感觉这也太符合 MapReduce 的思路了…

逻辑上:
1. 把文件扫一遍,得到 id->list[pair<content,sort>]的映射。
2. 单独为每个 id 的内容做内部排序。

实现上:
1.无论用什么方法,一轮文件 IO 把数据都进来都是需要的。为了后续处理更方便,再多加一轮 IO ,先把大文件按 1<id<10w, 10w+1<id<20w...切成多个小文件,这样每个小文件都是独立的,后续处理时维护的中间状态会少很多。
2. 每个小文件用一个进程处理,得到 id->list[pair<content,sort>]的中间结果。要么像楼上说的直接进数据库,要么每个 id 的内容放在一个文件里。一个小文件跑完后就可以从中间结果生成最终数据了。

并行度可以在切小文件的时候控制(每个小文件 10w 还是 100w 个 id )。

前提:
你存放最终结果的数据库需要能承受这么大的最终数据,否则啥办法都白搭。
@wxgsorry 有价值的数据都在云端(甚至桌面我都在用坚果云同步)。否则,硬盘损坏/电脑丢失等情况造成数据丢失的可能性,会比 C 盘满了更能让我焦虑……
翻了两页没人提这个:
Attention is all you need.
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3227 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 12:01 · PVG 20:01 · LAX 05:01 · JFK 08:01
Developed with CodeLauncher
? Do have faith in what you're doing.


http://www.vxiaotou.com