数据集查看器文档

服务器基础设施

Hugging Face's logo
加入 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 上更新