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

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的分片文件进行查找。

点击查看全文

{{collectdata}}

网友评论0