100M csv百万数据记录如何最小带宽高效急速关键词搜索方案过程

前端html网页直接加载 100MB 的 CSV 会导致浏览器卡顿甚至崩溃。但是 可以“切割成小块”。及腰节省服务器带宽,又要快速搜索,我们想出一个这个办法。
为了实现极低带宽(只下载需要的数据)和极低内存,我们需要采用 Hash Sharding(哈希分片) 策略。
我们以这个100万条域名排名记录csv为例,下载地址:https://tranco-list.eu/download/daily/top-1m.csv.zip

一行一条记录,第一个是排名,第二个是域名,用,分开
怎么根据域名来查排名呢,这个百万记录的csv记录很大。
核心方案设计
数据预处理(Python):
将 前10条 单独存为一个极小的 JSON (top10.json),用于秒开展示。
将 剩余 100MB 数据 根据域名的哈希值切分成 N 个小 JSON 文件(例如 256 个分片)。
原理:google.com 经过哈希计算永远落在 shard_X.json 中。
前端展示(HTML/JS):
页面加载时,只请求 top10.json (几KB)。
搜索时,在前端计算输入域名的哈希值,算出它属于哪个分片,然后只下载那个几KB的分片文件进行查找。
点击查看全文
网友评论0