数据集查看器文档
服务器基础设施
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
服务器基础设施
数据集查看器有两个主要组件协同工作,以即时返回关于数据集的查询结果:
- 用于探索和返回数据集信息的面向用户的Web API
- 一个服务器提前运行查询,并将它们缓存在数据库中
虽然大部分文档都集中在Web API上,但服务器至关重要,因为它执行所有耗时的预处理并存储结果,以便Web API可以检索并提供给用户。这为用户节省了时间,因为数据集查看器无需在每次请求时生成响应,而是可以立即从缓存中返回预处理的结果。
有三个要素使服务器保持运行:作业队列、工作器和缓存。
作业队列
作业队列是存储在Mongo数据库中的作业列表,这些作业应由工作器完成。这些作业实际上与用户使用的端点相同;只是服务器会提前运行这些作业,当用户使用端点时即可获得结果。
有三个作业:
/splits
对应于/splits
端点。它会刷新数据集,然后返回该数据集的切分和子集。对于数据集中的每个切分,它都会创建一个新作业。/first-rows
对应于/first-rows
端点。它获取数据集切分的前100行和列。/parquet
对应于/parquet
端点。它下载整个数据集,将其转换为 parquet 格式,并将parquet文件发布到Hub。
您可能已经注意到 /rows
和 /search
端点在队列中没有作业。这些端点的响应是按需生成的。
工作器
工作器负责执行队列中的作业。它们完成实际的预处理请求,例如获取切分和子集列表。工作器可以通过可配置的环境变量进行控制,例如工作器返回的最小或最大行数,或者每个数据集用户或组织启动的最大作业数。
如果您有兴趣了解更多信息,请参阅工作器配置,以获取完整的环境变量列表。
缓存
一旦工作器完成一项作业,结果就会存储在(即*缓存*在)Mongo数据库中。当用户使用诸如 /first-rows
之类的端点发出请求时,数据集查看器会从缓存中检索预处理的响应,并将其提供给用户。这消除了用户在服务器尚未完成作业并存储响应时所等待的时间。
因此,用户几乎可以即时获取他们请求的关于数据集的信息(甚至是大型数据集)!
< > 在 GitHub 上更新