一瞬間又來到了星期五晚上,今天來介紹 replacement scan
的進階功能。 replacement scan
多個相同格式的檔案
複習一下
SELECT * FROM 'dir/foo.csv';
replacement scan 讓 FROM 後面接的 .csv 結尾字串當作是一個在 duckdb 存在的 table
如果我們的資料夾內有 foo1.csv foo2.csv foo3.csv... 等相同格式,不同資料的 csv,replacement scan
還能起舞嗎?
當然可以
SELECT * FROM 'dir/*.csv';
是不是看起來很眼熟。沒錯 duckdb 支援 glob 這種 Unix fs 風格的檔案 pattern matching.
讀取兩層目錄深度內,所有以 .csv 結尾的檔案
SELECT *
FROM '*/*/*.csv';
讀取資料夾 dir 中任何深度內的所有以 .csv 結尾的檔案
SELECT *
FROM 'dir/**/*.csv';
更棒的事情是,S3 上的檔案也支援 glob expansion 喔,只要在開頭加上 S3 的 prefix,duckdb 就自動幫你打好 s3 list api 跟抓下所有 csv ,是不是非常方便啊。
SELECT * FROM 'S3://foo/*.csv';
趕快到 DuckDB WASM 或 Colab 試試看吧!