Hub documentation
SQL Console: Запросы к наборам данных Hugging Face в вашем браузере
SQL Console: Запросы к наборам данных Hugging Face в вашем браузере
Вы можете выполнять SQL-запросы к набору данных в браузере с помощью SQL Console. SQL Console работает на базе DuckDB WASM и полностью функционирует в браузере. Доступ к SQL Console можно получить из Data Studio.

Чтобы узнать больше о SQL Console, см. статью в блоге о SQL Console.
С помощью SQL-консоли вы можете:
- Выполняйте запросы DuckDB SQL к набору данных (см. раздел SQL Snippets с полезными запросами)
- Поделитесь результатами запроса с другими по ссылке (см. этот пример)
- Скачайте результаты запроса в файл формата Parquet или CSV
- Вставьте результаты запроса на свою веб-страницу с помощью iframe
- Запрос к наборам данных на естественном языке
Вы также можете использовать DuckDB локально через CLI для запросов к набору данных по протоколу
hf://. Подробнее см. в документации DuckDB Datasets. SQL Console предоставляет удобную кнопкуCopy to DuckDB CLI, которая генерирует SQL-запрос для создания представлений и выполнения вашего запроса в DuckDB CLI. Альтернативно, выполните те же запросы из терминала или скрипта с помощьюhf datasets sql.
Примеры
Фильтрация
SQL Console делает фильтрацию наборов данных очень простой. Например, если вы хотите отфильтровать набор данных SkunkworksAI/reasoning-0.01 по инструкциям и ответам с длиной рассуждения не менее 10, вы можете использовать следующий запрос:

Вот SQL-запрос для сортировки по длине рассуждения
SELECT *
FROM train
WHERE LENGTH(reasoning_chains) > 10;Гистограмма
Многие авторы наборов данных включают в них статистику о распределении данных. С помощью функции histogram в DuckDB можно построить гистограмму значений столбца.
Например, чтобы построить гистограмму столбца Rating в наборе данных Lichess/chess-puzzles, можно использовать следующий запрос:

Подробнее о функции `histogram` и параметрах — здесь.
from histogram(train, Rating)Сопоставление регулярных выражений
Одной из самых мощных возможностей DuckDB является глубокая поддержка регулярных выражений. Вы можете использовать функцию regexp для сопоставления шаблонов в ваших данных.
С помощью функции regexp_matches можно отфильтровать датасет GeneralReasoning/GeneralThought-195k, выбрав инструкции, содержащие блоки кода в формате Markdown.

Подробнее о функциях регулярных выражений DuckDB можно узнать здесь.
SELECT *
FROM train
WHERE regexp_matches(model_answer, '```')
LIMIT 10;API сохранённых запросов и эмбеддингов
Вы можете создавать, обновлять и удалять встраивания SQL Console программным способом. Встраивания представляют собой сохранённые запросы, которые можно распространять по ссылке или встраивать в другие страницы.
Создайте эмбеддинг:
POST /api/datasets/{namespace}/{repo}/sql-console/embed
Content-Type: application/json
Authorization: Bearer {token}
{
"sql": "SELECT * FROM train LIMIT 10",
"title": "Sample rows",
"private": false,
"views": [{"key": "default/train", "displayName": "Train", "viewName": "train"}]
}Обновление встраивания:
PATCH /api/datasets/{namespace}/{repo}/sql-console/embed/{embed_id}
Content-Type: application/json
Authorization: Bearer {token}
{
"sql": "SELECT * FROM train LIMIT 20",
"title": "Updated title",
"private": true
}Удалить embed:
DELETE /api/datasets/{namespace}/{repo}/sql-console/embed/{embed_id}
Authorization: Bearer {token}Обнаружение утечек
Обнаружение утечки данных — это процесс определения того, присутствуют ли данные из набора данных в нескольких разбиениях, например, содержится ли тестовый набор в обучающем.

Подробнее об обнаружении утечек — здесь.
WITH
overlapping_rows AS (
SELECT COALESCE(
(SELECT COUNT(*) AS overlap_count
FROM train
INTERSECT
SELECT COUNT(*) AS overlap_count
FROM test),
0
) AS overlap_count
),
total_unique_rows AS (
SELECT COUNT(*) AS total_count
FROM (
SELECT * FROM train
UNION
SELECT * FROM test
) combined
)
SELECT
overlap_count,
total_count,
CASE
WHEN total_count > 0 THEN (overlap_count * 100.0 / total_count)
ELSE 0
END AS overlap_percentage
FROM overlapping_rows, total_unique_rows;