一道系统设计面试题

avatar 283431
umusa2012
1092
2
一道系统设计面试题

给一些文本文件 (csv format), 里面存的信息是:

Paper, Year, Authors
paper_name_1, 1990, John, Tom, Alice
paper_name_2, 1998, Bob, Alice
paper_name_3, 2001, John, Tom,
paper_name_4, 2010, Tom, Bob

备注 :

paper_name_x 是一个只有英文字母和空格的字符串。

每个文件大小 1GB., 总共有 1000 个这样的文件。

请问, 如何得到下面的输出:

Author, papers
John: paper_name_1 | paper_name_3
Alice: paper_name_1 | paper_name_2
Tom: paper_name_1| paper_name_3|paper_name_4
Bob: paper_name_2|paper_name_4

假设计算机内存很小, 每次只能 处理一个文件。

如果需要用多台计算机处理, 如何设计这个系统 ?

follow up :

如果需要经常运行下面的 query:

Given a person's name, find the papers with him or her as one of the authors

应该如何设计 ?

谢谢
  • 8
2条回复