當前位置: 妍妍網 > 碼農

3.5k star!一款萬能的 SQL 分析工具,厲害了!

2024-03-18碼農

* 戳上方藍字「 開源先鋒 」關註我

推薦閱讀:

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