Локальная песочница данных
Импортируйте локальные CSV, JSON, JSONL и Parquet и выполняйте SQL-запросы DuckDB прямо в браузере.
Введённые данные и файлы остаются в браузере
Импорт локальных данных
Перетащите файл данных сюда
CSV, TSV, JSON, JSONL, NDJSON или Parquet. Импортируйте несколько файлов для JOIN.
В примерах имя заключено в кавычки, поэтому допустимы пробелы и нелатинские символы.
Файлы остаются на устройстве. DuckDB работает в выделенном Web Worker из локальных ресурсов; SQL не может читать URL и другие файлы браузера.
Ограничения: до 1 GiB на входной файл, 128 MiB при перекодировании текста, 512 MiB памяти DuckDB, 100 000 строк предпросмотра, 500 строк на страницу и 512 MiB для резервной загрузки или Parquet. JSON/JSONL целиком декодируется в памяти как плоский набор записей, а не по частям. Отмена освобождает все таблицы.
Импортированные таблицы
Таблицы ещё не импортированы.
SQL-запрос
Нажмите Ctrl или Cmd + Enter. Разрешён один локальный запрос SELECT или WITH только для чтения.
Импортируйте таблицу и выполните запрос, чтобы просмотреть результат.
Экспорт полного результата
CSV, JSON и JSONL записываются порциями в выбранный файл. Parquet формируется одним ограниченным буфером. Резервная загрузка ограничена 512 МиБ.
На этой странице
Локальная песочница запускает DuckDB-WASM в браузере и позволяет запрашивать CSV, JSON, JSONL и Parquet без загрузки данных на сервер. Каждый файл получает выбранное вами имя SQL-таблицы, а несколько файлов можно объединять.
Подробное описание функциональности
DuckDB и Web Worker входят в состав MyDevTools и загружаются только при первом импорте. SharedArrayBuffer, междоменная изоляция, сервер и внешний CDN не нужны. Файлы остаются в текущей вкладке. Для пользовательских запросов отключены внешний доступ, установка расширений, чтение URL и изменение базы.
Редактор поддерживает SELECT и WITH DuckDB: фильтрацию, группировку, агрегаты, сортировку и JOIN. Результат создаётся в worker с явным лимитом предпросмотра 100 000 строк. Таблица запрашивает до 500 строк и держит ограниченное число DOM-элементов. Целые и десятичные числа отображаются без преобразования в JavaScript Number.
CSV, JSON и JSONL экспортируются порциями с контролем обратного давления. Parquet создаётся DuckDB в одном буфере. Резервные загрузки и буфер Parquet ограничены 512 МиБ.
Практические примеры
SELECT: импортируйте orders.csv как orders и выполните SELECT * FROM "orders" LIMIT 100.
WHERE: SELECT * FROM "orders" WHERE "status" = 'paid' фильтрует локально.
GROUP BY: SELECT "country", SUM("amount") FROM "orders" GROUP BY "country".
JOIN: импортируйте customers.parquet второй таблицей и объедините по общему ключу. Кнопка JOIN создаст начальный запрос.
Как использовать этот инструмент
Шаг 1. Импортируйте файлы
Выберите формат или определение по расширению, задайте имя таблицы и импортируйте. Для CSV доступны разделитель, заголовок и кодировка.
Шаг 2. Напишите локальный SQL
Выберите пример SELECT, WHERE, GROUP BY или JOIN и отредактируйте его. Нажмите Ctrl или Cmd + Enter.
Шаг 3. Просмотрите ограниченный результат
Прокручивайте виртуальную таблицу: из worker передаётся только небольшая страница.
Шаг 4. Экспортируйте или перезапустите
Экспортируйте CSV, JSON, JSONL или Parquet. Отмена и перезапуск завершают worker и освобождают все данные.
Советы и лучшие практики
- Заключайте имена таблиц и столбцов в двойные кавычки; примеры делают это автоматически.
- При работе с большими файлами используйте LIMIT и точные условия WHERE.
- Автоопределение типов CSV может превратить идентификатор с ведущими нулями в число; для точного сохранения текста используйте Конвертер форматов данных.
- BIGINT и DECIMAL не округляются интерфейсом через JavaScript Number.
- Отмена — жёсткая граница ресурсов: worker завершается, и файлы нужно импортировать снова.
- CSV/JSON/JSONL могут записываться потоком; Parquet буферизуется и ограничен 512 МиБ.