Hub documentation
SQL Console: Consulta los conjuntos de datos de Hugging Face en tu navegador
SQL Console: Consulta los conjuntos de datos de Hugging Face en tu navegador
Puede ejecutar consultas SQL en el conjunto de datos en el navegador usando la consola SQL. La consola SQL funciona con DuckDB WASM y se ejecuta por completo en el navegador. Puede acceder a la consola SQL desde Data Studio.

Para obtener más información sobre la SQL Console, consulte la publicación en el blog sobre la SQL Console.
A través de la consola SQL, puedes:
- Ejecuta consultas SQL de DuckDB en el conjunto de datos (consulta Fragmentos SQL para obtener consultas útiles)
- Comparte los resultados de la consulta con otras personas mediante un enlace (consulta este ejemplo)
- Descarga los resultados de la consulta en un archivo Parquet o CSV
- Incrustar los resultados de la consulta en su propia página web mediante un iframe
- Consultar conjuntos de datos con lenguaje natural
También puedes usar DuckDB localmente a través de la CLI para consultar el conjunto de datos mediante el protocolo
hf://. Consulta la documentación de DuckDB Datasets para obtener más información. La consola SQL ofrece un botónCopy to DuckDB CLIque genera la consulta SQL para crear vistas y ejecutar tu consulta en la CLI de DuckDB. Alternativamente, ejecuta las mismas consultas desde una terminal o un script conhf datasets sql.
Ejemplos
Filtrado
La consola de SQL facilita mucho el filtrado de conjuntos de datos. Por ejemplo, si quieres filtrar el conjunto de datos SkunkworksAI/reasoning-0.01 para instrucciones y respuestas con una longitud de razonamiento de al menos 10, puedes usar la siguiente consulta:

Aquí está la consulta SQL para ordenar por la longitud del razonamiento
SELECT *
FROM train
WHERE LENGTH(reasoning_chains) > 10;Histograma
Muchos autores de conjuntos de datos eligen incluir estadísticas sobre la distribución de los datos en el conjunto. Utilizando la función histogram de DuckDB, podemos trazar un histograma de los valores de una columna.
Por ejemplo, para trazar un histograma de la columna Rating en el conjunto de datos Lichess/chess-puzzles, puedes usar la siguiente consulta:

Obtenga más información sobre la función `histogram` y sus parámetros aquí.
from histogram(train, Rating)Coincidencia de expresiones regulares
Una de las funciones más potentes de DuckDB es el soporte profundo para expresiones regulares. Puedes usar la función regexp para hacer coincidir patrones en tus datos.
Con la función regexp_matches, podemos filtrar el conjunto de datos GeneralReasoning/GeneralThought-195k para las instrucciones que contienen bloques de código en markdown.

Obtenga más información sobre las funciones de expresiones regulares de DuckDB aquí.
SELECT *
FROM train
WHERE regexp_matches(model_answer, '```')
LIMIT 10;API de consultas y embeddings guardados
Puede crear, actualizar y eliminar incrustaciones de SQL Console de forma programática. Las incrustaciones son consultas guardadas que se pueden compartir mediante un enlace o incrustar en otras páginas.
Crear un embed:
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"}]
}Actualizar un embed:
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
}Eliminar un embed:
DELETE /api/datasets/{namespace}/{repo}/sql-console/embed/{embed_id}
Authorization: Bearer {token}Detección de fugas
La detección de fuga es el proceso de identificar si los datos de un conjunto de datos están presentes en varias divisiones, por ejemplo, si el conjunto de prueba está presente en el conjunto de entrenamiento.

Obtenga más información sobre la detección de fugas aquí.
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;