dungbeetle

一個專為非同步排隊與執行大量 SQL 讀取任務而設計的分散式任務伺服器。將報表層與應用程式分離。支援 MySQL、PostgreSQL、ClickHouse。

dungbeetle 是什麼?

一個專為非同步排隊與執行大量 SQL 讀取任務而設計的分散式任務伺服器。將報表層與應用程式分離。支援 MySQL、PostgreSQL、ClickHouse。

dungbeetle 概覽

這是什麼

DungBeetle 是一個輕量級、單一二進位檔的分散式任務伺服器,專為佇列及非同步執行大量 SQL 讀取任務(例如報表)而設計。任務執行後,結果會寫入獨立的暫時性結果資料庫,每個任務的結果都有專屬資料表,以利快速取回。由 Zerodha 開發。

主要功能

  • 支援 MySQL、PostgreSQL 及 ClickHouse 作為來源資料庫。
  • 支援 MySQL 及 PostgreSQL 作為結果/快取資料庫。
  • 獨立的伺服器,透過 HTTP API 管理任務與任務群組(列出、發布、狀態檢查、取消)。
  • 從 .sql 檔案讀取 SQL 查詢,註冊為可佇列的任務。
  • 透過常見的代理後端(Redis、AMQP 等)支援多程序、多執行緒、非同步的分散式任務佇列。

使用情境

主要使用案例是在擁有大型 SQL 資料庫的應用程式中,進行面向使用者的報表生成。當數千名並發使用者請求報表時,查詢執行過程中的 I/O 延遲可能會造成應用程式與資料庫的瓶頸。DungBeetle 將報表生成請求延後至任務佇列,立即釋放前端應用程式。報表以非同步方式呈現,伺服器與工作者實例也扮演流量控制角色,防止主要資料庫被淹沒。報表生成後,後續的切片、排序或過濾查詢可導向較小、更快的结果快取資料庫。

快速開始

請參閱儲存庫的 README 以取得安裝說明。預編譯的二進位檔可從釋出版本頁面下載。透過 config.toml 檔案進行設定。SQL 查詢任務以 goyesql 格式寫在 .sql 檔案中。使用以下指令啟動伺服器:shelldungbeetle --config /path/to/config.toml --sql-directory /path/to/your/sql/queries# 執行 'dungbeetle --help' 查看所有支援的參數

授權與價格

採用 MIT 授權條款。為開源軟體。

內容整理自該專案公開的 README 與儲存庫資訊。

將此徽章加入你的 README

Featured on YunoDB 徽章樣式與說明

你是這個專案的維護者嗎?展示它已收錄於 YunoDB。

Markdown[![Featured on YunoDB](https://yunodb.com/badge/zerodhadungbeetle.svg)](https://yunodb.com/tools/zerodhadungbeetle?utm_source=github&utm_medium=badge)
HTML<a href="https://yunodb.com/tools/zerodhadungbeetle?utm_source=github&utm_medium=badge"><img src="https://yunodb.com/badge/zerodhadungbeetle.svg" alt="Featured on YunoDB" height="20"></a>