- q 讓你把文字當資料庫
q讓你直接在CSVs/TSVs(逗號分割檔案/製表分割檔案)或其他表格式的文字檔案上執行像SQL一樣的查詢,查詢操作包括joins 或其他SQL操作,支援自動欄位型別和名字的檢測。
- 概覽
你曾經是否盯著螢幕上的文字檔案,希望你可以像對資料庫一樣從它上面查詢到你想要的一切資料,我好多次都遇到這個情形,最終我意識到我不是想把它變成資料庫,而是對它進行SQL操作。
SQL是針對資料的宣告式語言,宣告式程式設計告訴機器做什麼,至於怎麼做到的,你可以不用管。這也是SQL強大的原因。在SQL看來,資料就是資料,而不是二進位制位,位元組或字元。
這個工具就是旨在在文字檔案和SQL操作上架起一道橋樑。
q允許在表格式文字上執行SQL查詢,像join操作和子查詢。
你可以使用 gitter chat room 直接聯絡我,我儘量都線上。
- 亮點
- 無縫的多表關聯查詢,也就是JOIN操作,到時把資料表名換成檔名,也可以終端輸入。
- 支援自動欄位型別和名字的檢測
- 多種解析模式,寬鬆模式/嚴格模式,寬鬆模式讓你輕鬆的解析像日誌檔案一樣的半結構化的資料。
- 標準安裝,RPM, Homebrew (蘋果機子上). Debian 的安裝包馬上就來。當欄位值中包含有半形逗號(引用“”)。
- 完全UTF-8字元支援,或其他字符集。
- 壓縮檔案的處理
- 輸出支援分隔符配對和選擇
- 美化輸出格式
- RPM安裝時附帶man幫助手冊
- 安裝
目前的穩定版本是1.3.0。
除了python >= 2.5沒有其他要求。
- Mac 使用者
直接執行 brew install q
.
- 手動安裝(非常簡單,因為沒有依賴)
- 下載q的安裝檔案到已經在PATH路徑的檔案中
- 使檔案可執行
- 基於RPM的linux發行版
- 下載RPM
- 使用
rpm -ivh <rpm-name>
.命令安裝
RPM 包括man手冊, 只要執行man q。
- 使用
q的基本使用很簡單:q <flags> <query>,但其實這中間隱藏很多特性,你可以使用flags選項來使用。
最簡單用例:q “SELECT * FROM myfile” ,列印出全部檔案。
- 侷限
- 不檢查資料大小邊界
- 檔名帶有空格還不行,我正在改進
- 未來打算
- 讓資料載入更快
- 可以和外部資料庫同時使用
- 更真實的SQL支援,智慧執行查詢語句
- 智慧批操作插入資料庫
- 更全的子查詢
- 提供除了SELECT – INSERT 和 CREATE TABLE SELECT更多操作
- 聯絡
我們歡迎任何對這個工具的反饋建議和批評,當然提交程式碼是最好的。
Harel Ben-Attia, harelba@gmail.com, @harelba 在推特上。