使用 SQL 导航和探索文件系统
维护者:Gropaul
安装和加载
INSTALL hostfs FROM community;
LOAD hostfs;
示例
-- Navigate to the workspace and list the files
D PRAGMA cd('/Users/paul/workspace');
D PRAGMA ls;
┌───────────────────────────────┐
│ path │
│ varchar │
├───────────────────────────────┤
│ ./duckdb │
│ ./playground │
│ ./hostfs │
-- Find the files you were working on last
D SELECT path, file_last_modified(path) AS date FROM ls() WHERE 'csv' IN file_extension(path) ORDER BY date LIMIT 1 ;
┌───────────────────────────┬─────────────────────┐
│ path │ date │
│ varchar │ timestamp │
├───────────────────────────┼─────────────────────┤
│ ./sketch_results_join.csv │ 2024-07-13 23:25:48 │
└───────────────────────────┴─────────────────────┘
-- List the top 3 file types by total size, with file count, ordered by size.
D SELECT size, count, file_extension AS "type"
FROM (
SELECT SUM(file_size(path)) AS size_raw, format_bytes(size_raw) AS size, COUNT(*) AS count, file_extension(path) AS file_extension
FROM lsr('/Users/paul/workspace', 10)
GROUP BY file_extension(path)
) AS subquery
ORDER BY size_raw DESC LIMIT 3;
┌───────────┬───────┬─────────┐
│ size │ count │ type │
│ varchar │ int64 │ varchar │
├───────────┼───────┼─────────┤
│ 246.95 GB │ 29 │ .duckdb │
│ 90.33 GB │ 3776 │ .tmp │
│ 26.17 GB │ 28175 │ .csv │
└───────────┴───────┴─────────┘
关于 hostfs
HostFS 扩展允许您使用 SQL 导航和探索文件系统。它提供了一组函数,用于列出文件、获取文件元数据等。更多信息请参见HostFS 文档。
新增函数
| 函数名 | 函数类型 | 描述 | 注释 | 示例 |
|---|---|---|---|---|
| absolute_path | 标量 | NULL | NULL | |
| cd | pragma | NULL | NULL | |
| cd | table | NULL | NULL | |
| file_extension | 标量 | NULL | NULL | |
| file_last_modified | 标量 | NULL | NULL | |
| 文件名 | 标量 | NULL | NULL | |
| file_size | 标量 | NULL | NULL | |
| hostfs | 标量 | NULL | NULL | |
| hsize | 标量 | NULL | NULL | |
| is_dir | 标量 | NULL | NULL | |
| is_file | 标量 | NULL | NULL | |
| ls | pragma | NULL | NULL | |
| ls | table | NULL | NULL | |
| lsr | pragma | NULL | NULL | |
| lsr | table | NULL | NULL | |
| path_exists | 标量 | NULL | NULL | |
| path_type | 标量 | NULL | NULL | |
| pwd | pragma | NULL | NULL | |
| pwd | 标量 | NULL | NULL |