Hub documentation
SQL Console: 브라우저에서 Hugging Face 데이터셋 쿼리
SQL Console: 브라우저에서 Hugging Face 데이터셋 쿼리
SQL Console를 사용하면 브라우저에서 데이터셋에 대해 SQL 쿼리를 실행할 수 있습니다. SQL Console은 DuckDB WASM 기반으로 동작하며, 완전히 브라우저 내에서 실행됩니다. Data Studio에서 SQL Console에 접근할 수 있습니다.

SQL Console에 대해 자세히 알아보려면 SQL Console 블로그 게시물을 참조하세요.
SQL Console를 통해 다음을 수행할 수 있습니다:
- 데이터셋에서 DuckDB SQL 쿼리를 실행합니다 (유용한 쿼리는 SQL Snippets를 확인하세요)
- 링크를 통해 쿼리 결과를 다른 사람과 공유합니다(이 예제를 확인해 보세요)
- 쿼리 결과를 Parquet 또는 CSV 파일로 다운로드
- iframe를 사용하여 쿼리 결과를 자체 웹페이지에 임베드합니다
- 자연어로 데이터셋 쿼리하기
hf://프로토콜을 통해 DuckDB CLI를 로컬에서 사용하여 데이터셋을 쿼리할 수도 있습니다. 자세한 내용은 DuckDB Datasets 문서를 참조하세요. SQL Console은 뷰를 생성하고 DuckDB CLI에서 쿼리를 실행하기 위한 SQL 쿼리를 생성하는 편리한Copy to DuckDB CLI버튼을 제공합니다. 또는 터미널이나 스크립트에서hf datasets sql를 사용하여 동일한 쿼리를 실행할 수 있습니다.
예시
필터링
SQL Console을 사용하면 데이터셋을 필터링하는 것이 매우 쉽습니다. 예를 들어, SkunkworksAI/reasoning-0.01 데이터셋에서 추론 길이가 10 이상인 instructions와 responses를 필터링하려면 다음 쿼리를 사용할 수 있습니다:

추론 길이에 따라 정렬하는 SQL은 다음과 같습니다
SELECT *
FROM train
WHERE LENGTH(reasoning_chains) > 10;히스토그램
많은 데이터셋 작성자는 데이터셋에 데이터 분포에 대한 통계를 포함하는 것을 선택합니다. DuckDB의 histogram 함수를 사용하면 열의 값에 대한 히스토그램을 그릴 수 있습니다.
예를 들어, Lichess/chess-puzzles 데이터셋의 Rating 열 히스토그램을 그리려면 다음 쿼리를 사용할 수 있습니다:

`histogram` 함수와 매개변수에 대해 자세히 알아보려면 여기를 참조하세요.
from histogram(train, Rating)정규식 매칭
DuckDB의 가장 강력한 기능 중 하나는 정규식(regular expression)에 대한 심층적인 지원입니다. regexp 함수를 사용하여 데이터에서 패턴을 일치시킬 수 있습니다.
regexp_matches 함수를 사용하면 마크다운 코드 블록을 포함하는 지시문을 필터링하여 GeneralReasoning/GeneralThought-195k 데이터셋을 필터링할 수 있습니다.

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
}임베드 삭제:
DELETE /api/datasets/{namespace}/{repo}/sql-console/embed/{embed_id}
Authorization: Bearer {token}누수 감지
Leakage detection은 데이터셋의 데이터가 여러 split에 존재하는지, 예를 들어 test set이 training set에 포함되어 있는지 여부를 식별하는 과정입니다.

누수 감지에 대해 자세히 알아보려면 여기를 참조하세요.
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;