数据集查看器文档
服务器基础设施
加入 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 上更新