DataSpren
Loading...
DuckDB Docs
Files
mnt
local
Empty

Welcome to Data Studio

Analyze data with SQL and Python in an interactive notebook.

Drag and drop files into the sidebar (CSV, Parquet, JSON, Excel, etc.) to get started.

Get Started

Example Notebooks

Spotify Tracks Analysis

Explore 1 million Spotify tracks with audio features, popularity scores, and genre classifications. Includes SQL queries, Python visualizations, and interactive charts.

SQLPythonCharts

File Viewers

Click any file in the sidebar to open it in a dedicated viewer with sorting, search, and schema inspection.

CSV

.csv

Parquet

.parquet

JSON

.json

Excel

.xlsx / .xls

Query & Transform with SQL

Create a %sql cell and query files directly by path, no import step needed. Powered by DuckDB. The query below materializes as view and can be accessed in other SQL cells or Python cells as dataframe.

%sql
SELECT department, SUM(revenue)
FROM '/mnt/local/sales_report.xlsx'
GROUP BY department

Works with CSV, Parquet, JSON, and Excel. Filter, join across files, aggregate, and export results.

Interactive Visualizations

Every SQL cell has a built-in Insights tab. Pick a chart type and map columns, no code required. Powered by ECharts.

BarLineAreaScatterPie
%sql
SELECT month, SUM(amount) AS total
FROM '/mnt/local/transactions.csv'
GROUP BY month ORDER BY month

Then open the Insights tab, pick Line chart, set x to month and y to total.

Data Quality Tests

Each SQL cell has a Tests tab for dbt-style assertions. Add tests to any column and they run automatically when the cell executes.

PASSNot Nulltrack_id
PASSUniquetrack_id
FAILEDAccepted Valuesgenre

Built-in test types: Unique, Not Null, Accepted Values, and Custom SQL for arbitrary validation queries.

Python & Matplotlib

Use pandas, matplotlib, and any Pyodide-supported library. SQL views are automatically available as DataFrames.

import matplotlib.pyplot as plt

# 'sales' is a SQL view, automatically a DataFrame
sales.groupby('region')['revenue'].sum().plot(kind='barh')
plt.title('Revenue by Region')
plt.show()