关于实施快速有效的方法来搜索非常大的数据集中的项目列表的建议/意见
请评论和批评该方法。
场景:我在一个平面文件中有一个大型数据集(2 亿个条目)。数据的形式为 - 10 位数字电话号码后跟 5-6 个二进制字段。 每周我都会收到一个 Delta 文件,其中仅包含数据的更改。
问题:给定一个项目列表,我需要弄清楚每个项目(这将是 10 位数字)是否存在于数据集中。
我计划的方法:
将解析数据集并将其放入数据库(在开始时完成) 周),例如 MySQL 或 Postgres。我想在 RDBMS 中使用 RDBMS 的原因 第一步是我想要完整的时间序列数据。
然后从该数据库中生成某种键值存储 最新有效数据,支持操作判断是否 每个项目是否存在于数据集中(考虑某种 NOSQL db,就像这里的 Redis 一样,针对搜索进行了优化。应该有 持久性和分布式)。 此数据结构将是只读的。
查询此键值存储以查明每个项目是否存在 (如果可能的话,一次匹配一个值列表而不是匹配 一次一项)。希望这一切能够快如闪电。 将使用此功能作为 REST API 的后端
旁注:我喜欢的语言是 Python。
Please comment and critique the approach.
Scenario: I have a large dataset(200 million entries) in a flat file. Data is of the form - a 10 digit phone number followed by 5-6 binary fields.
Every week I will be getting a Delta files which will only contain changes to the data.
Problem : Given a list of items i need to figure out whether each item(which will be the 10 digit number) is present in the dataset.
The approach I have planned :
Will parse the dataset and put it a DB(To be done at the start of the
week) like MySQL or Postgres. The reason i want to have RDBMS in the
first step is I want to have full time series data.Then generate some kind of Key Value store out of this database with
the latest valid data which supports operation to find out whether
each item is present in the dataset or not(Thinking some kind of a
NOSQL db, like Redis here optimised for search. Should have
persistence and be distributed). This datastructure will be read-only.Query this key value store to find out whether each item is present
(if possible match a list of values all at once instead of matching
one item at a time). Want this to be blazing fast. Will be using this functionality as the back-end to a REST API
Sidenote: Language of my preference is Python.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
快速查找的一些注意事项:
SINTER
。A few considerations for the fast lookup:
SINTER
which performs set intersection.