DuckDB 主要是為結(jié)構(gòu)化數(shù)據(jù)查詢設(shè)計的,專注于高效處理和分析大規(guī)模數(shù)據(jù)集锚赤。它支持多種流行的數(shù)據(jù)存儲格式匹舞,如 Parquet、CSV 和 SQLite线脚,使得在處理這些格式時赐稽,無需進(jìn)行額外的轉(zhuǎn)換。DuckDB 的核心優(yōu)勢在于其輕量級架構(gòu)和內(nèi)存數(shù)據(jù)庫設(shè)計浑侥,能夠在本地機(jī)器上快速執(zhí)行復(fù)雜的 SQL 查詢姊舵,提供與傳統(tǒng)數(shù)據(jù)庫類似的功能,而無需設(shè)置復(fù)雜的服務(wù)器或集群寓落。此外括丁,DuckDB 還支持嵌入式使用,可以方便地集成到 Python伶选、R 等數(shù)據(jù)科學(xué)環(huán)境中史飞,成為數(shù)據(jù)分析工作流程中的一個高效工具尖昏。
安裝:Using the DuckDB CLI | MotherDuck Docs
基礎(chǔ)教程:MotherDuck and DuckDB Tutorial | MotherDuck Docs
wget https://github.com/duckdb/duckdb/releases/download/v1.0.0/duckdb_cli-linux-amd64.zip
unzip duckdb_cli-linux-amd64.zip
### add to user .bashrc
一些常用的結(jié)構(gòu)化查詢語句:
- 列出文件前10行
duckdb -s "SELECT * FROM 'yourfile.parquet' LIMIT 10"
- 列出文件的所有列
duckdb -s "DESCRIBE SELECT * FROM read_parquet('yourfile.parquet')"
- 根據(jù)列名構(gòu)建查詢:
duckdb -s "SELECT column0,column1 FROM 'yourfile.parquet' LIMIT 5"
- 條件化過濾:
從文件中選擇所有列,然后過濾column_A大于100且column_B中以AAA開頭的結(jié)果
duckdb -s "SELECT * FROM 'yourfile.parquet' WHERE column_A >= 100 AND column_B LIKE 'AAA%' "
- 讀取CSV格式的文件:
duckdb -s "SELECT * FROM read_csv_auto('annnot_metadata.csv')"