本地数据实验场

在浏览器中导入本地 CSV、JSON、JSONL 或 Parquet,并使用 DuckDB SQL 查询。

输入内容和文件始终留在浏览器中

导入本地数据

将数据文件拖到这里

支持 CSV、TSV、JSON、JSONL、NDJSON 或 Parquet。可导入多个文件进行表连接。

生成的示例会引用表名,因此支持空格和非拉丁字符。

文件始终留在本设备。DuckDB 通过本站资源在专用 Web Worker 中运行;SQL 无法读取网址或其他浏览器文件。

限制:每个输入 1 GiB,文本转码 128 MiB,DuckDB 内存 512 MiB,预览 100,000 行,每页 500 行,回退下载或 Parquet 512 MiB。JSON/JSONL 会作为扁平记录集一次性在内存中解码,而非分块处理。取消会释放所有表。

已导入的表

尚未导入表。

    SQL 查询

    按 Ctrl 或 Cmd + Enter 运行。仅允许一条本地只读 SELECT 或 WITH 语句。

    结果在 worker 内实体化,再按有界分页读取。
    查询结果

    导入表并运行查询后即可浏览结果。

    本页内容

    本地数据实验场在浏览器中运行 DuckDB-WASM,无需上传数据即可查询 CSV、JSON、JSONL 和 Parquet。每个文件使用你指定的 SQL 表名,也可以连接多个文件。

    详细功能

    DuckDB 和 Web Worker 均由 MyDevTools 本站提供,并仅在首次导入时加载。无需 SharedArrayBuffer、跨源隔离、服务器或外部 CDN。用户查询的外部访问、扩展安装、URL 读取器和数据库修改语句均被禁用。

    编辑器支持 DuckDB SELECT 和 WITH,包括筛选、分组、聚合、排序与 JOIN。预览明确限制为 100,000 行;虚拟表每次最多请求 500 行。整数和小数不会转换为 JavaScript Number。

    CSV、JSON 和 JSONL 以带背压的分块方式导出。Parquet 由 DuckDB 在单个缓冲区中生成。备用下载和 Parquet 上限为 512 MiB。

    实用示例

    SELECT:将 orders.csv 导入为 orders,运行 SELECT * FROM "orders" LIMIT 100。

    WHERE:按状态在本地筛选。

    GROUP BY:按国家分组并汇总金额。

    JOIN:导入 customers.parquet,使用共同键连接两个表。

    如何使用此工具

    1. 导入文件

      选择格式、表名和 CSV 选项。

    2. 编写本地 SQL

      从 SELECT、WHERE、GROUP BY 或 JOIN 示例开始,按 Ctrl/Cmd + Enter。

    3. 浏览结果

      虚拟表一次只传输并渲染一个小页面。

    4. 导出或重启

      导出 CSV、JSON、JSONL 或 Parquet。取消或重启会终止 worker 并释放数据。

    提示和最佳实践

    • 使用双引号引用表名和列名。
    • 对大文件使用 LIMIT 和精确的 WHERE。
    • CSV 类型推断可能把带前导零的标识符变成数字;需要保留原始文本时请使用数据格式转换器。
    • BIGINT 和 DECIMAL 不会经由 Number 舍入。
    • 取消会终止 worker,之后必须重新导入。
    • CSV/JSON/JSONL 可流式写入;Parquet 缓冲上限为 512 MiB。

    帮助决定下一步

    接下来应该改进什么?

    请选择一项建议。这些只是想法,并非承诺推出的功能。

    选择一个选项

    投票只会将所选选项作为匿名计数发送,不包含输入内容、文件数据、URL、Cookie 或标识符,也不会存储在此浏览器中。重新加载页面后可以再次投票。