* 戳上方藍字「 開源先鋒 」關註我
推薦閱讀:
3.5k star!一款萬能的 SQL 分析工具,厲害了!
大家好,我是開源君!
眾所周知,SQL是數據分析領域的利器,但它通常只能用於分析資料庫中的數據。而現實生活中,我們經常會遇到各種各樣的本地檔,比如Excel、JSON、CSV等。如果要分析這些檔,就需要借助專門的工具。
DSQ的出現,正是為了解決這一痛點。它是一款支持本地檔的SQL分析工具,可以讓你用熟悉的SQL語法,輕松分析各種本地檔。
今天開源君介紹一個超級棒的開源計畫 -
dsq
。
簡介
dsq
它是一個命令列工具,可以對數據檔進行 SQL 查詢,讓你輕松對各種檔進行查詢、分析和處理。
支持多種數據格式,包括 JSON、CSV、Excel、Parquet 等,
市面上類似的工具其實也有不少,作者也做了很細致的研究和分析,得出比較結論:
dsq
目前是功能最為全面的,效能最極致的。
下面這張圖是市面上各種數據處理工具的對比,相比較而言,
dsq
還是很有優勢的。
目前計畫在 github 上面獲得了接近 3.5k 的 star。
效能特色
支持多種檔格式,包括 Excel、JSON、CSV、XML、YAML、Markdown 和 Text
使用標準的 SQL 語句進行操作,無需學習新的語法
支持多種高級功能,包括正規表式、緩存、函式和指令碼
效能優異,采用高效的底層庫,分析速度快
開源免費,程式碼開源,可自由使用和修改
安裝
計畫安裝很簡單,win系統的話,直接到計畫 releases 頁面下載,然後解壓即可使用。
macOS的話,執行下面的安裝命令
brew install dsq
Linux系統則可以用下面的安裝:
VERSION="v0.23.0"
FILE="dsq-$(uname -s | awk '{ print tolower($0) }')-x64-$VERSION.zip"
curl -LO "https://github.com/multiprocessio/dsq/releases/download/$VERSION/$FILE"
unzip $FILE
sudo mv ./dsq /usr/local/bin/dsq
使用方法
最基本的使用就是,
dsq filename
或者
dsq filename "SELECT * FROM {}
。
比如:
dsq testdata.json "SELECT * FROM {} WHERE x > 10"
有時候直接讀取的話,樣式會比較難看。
可以用
-p
或者
--pretty
參數,對內容進行美化。
如果要讀取多個檔,可以用如下的方法:
dsq a.csv b.json "select {0}.name, {1}.age from {0} join {1} on {0}.id = {1}.id"
a.csv
b.json
代表要查詢的兩個檔,在上述 select 語句中分別用 {0}、{1}代表。
另外,
dsq
還支持讀取excel所有sheets的內容的。
比如說
c.xlsx
這個檔有兩個 sheets,可以使用如下的方法來查詢 sheet2 裏面的內容。
dsq c.xlsx "SELECT COUNT() FROM {'Sheet2'} where Country='China'"
關於管道傳遞數據,直接使用管道符
|
來傳遞數據,要加
-s
參數來指明傳遞的檔型別。如:
cat testdata.csv | dsq -s csv "SELECT * FROM {} LIMIT 1"
以上只是
dsq
的一些基本功能實用,另外還有更加高級復雜的操作,如正則、緩存等等,詳細可以去官方頁面進行檢視。
關於計畫的更多細節、功能,感興趣的小夥伴可以去計畫地址探索~~~
計畫地址:
https://github.com/multiprocessio/dsq