Infobright 是基於 MySQL 邏輯層、自研 BriteHouse 存儲引擎的開源列式數據倉庫。核心技術為專利 Knowledge Grid(知識網格),實現無索引、高壓縮、極速聚合查詢,專為 TB 級海量數據分析設計。
| 維度 | 指標 | 技術支撐 |
|---|---|---|
| 查詢效能 | 比 MyISAM/InnoDB 快 5~60 倍 | Knowledge Grid 粗糙集過濾 + 列式存儲 + 向量化執行 |
| 數據壓縮 | 平均 10:1,最高 40:1 | 列式存儲 + 自適應壓縮算法(按類型選算法) |
| 存儲容量 | TB 級、十億行 | 高壓縮 + 高速載入工具(百 GB/小時) |
| 維護成本 | 無需建索引、分區、物化視圖 | Knowledge Grid 自動維護統計元數據 |
| 聚合查詢 | SUM/COUNT/AVG/GROUP BY 極速 | DPN/Histogram/CMAP 統計節點預計算 |
| 組件 | 功能 | 生成時機 |
|---|---|---|
| DPN (Data Pack Node) | 記錄每個 DP 的 min/max/null 個數/count/sum/avg/唯一值數等統計信息 | 數據載入時 |
| Histogram | 數值類型(date/time/decimal)min-max 分 1024 桶,加速範圍裁剪 | 數據載入時 |
| CMAP | 文本類型 ASCII 位圖,記錄字符在各位置出現情況 | 數據載入時 |
| Pack-to-Pack (P2P) | Join 時動態生成的兩列 DP 關係位圖矩陣 | 查詢執行時 |
查詢時將 DP 分為三類:
核心邏輯:利用 DPN/Histogram/CMAP 快速裁剪 Irrelevant/Suspect,最小化解壓開銷。WHERE 區分度越高,裁剪效果越好。
推薦:TINYINT/SMALLINT/MEDIUMINT/INT/BIGINT > DECIMAL > DATE/TIME
避免:VARCHAR/TEXT/BINARY/VARBINARY/FLOAT/DOUBLE
適用條件:CHAR/VARCHAR、唯一值 < 10,000、行數/唯一值 > 10。
適用場景:性別、省份、狀態碼等低基數列。
CREATE TABLE t (
act CHAR(15) COMMENT 'lookup',
part CHAR(4) COMMENT 'lookup'
) ENGINE=BRIGHTHOUSE;
按高頻查詢維度(如日期)排序載入,使 DP 內數值範圍集中,DPN min/max 區間不重疊,極大減少 Suspect Packs。
OR,改用 IN 或 UNION。SELECT *,僅查詢 WHERE 涉及的列(列式存儲特性)。GROUP BY 中做數學運算(如 SUM(a*b))。| 特性 | ICE | IEE |
|---|---|---|
| DML (INSERT/UPDATE/DELETE) | ❌ 僅支援 LOAD DATA INFILE | ✅ 完整支援 |
| DDL (ALTER TABLE) | ❌ 不支援 | ✅ 支援 RENAME/ADD/DROP COLUMN |
| 並發查詢 | 單核調度,~10 並發 | 多線程調度(3.5+),50-500% 性能提升 |
| 高可用/主從 | ❌ 無 | ✅ 基於 SQL Statement 複制 |
| 分布式載入 (DLP) | ❌ | ✅ 1.6 TB/小時 |
| 臨時表 | ❌ | ✅ |
| 官方支援 | 社區 | 商業 SLA |
Infobright 以「捨棄索引、擁抱統計元數據」的創新架構,重新定義了 MySQL 生態下的數據倉庫能力。對於 TB 級唯讀分析場景,它是成本最低、上手最快、效能最強的選擇之一。但務必認清其「非 OLTP、非實時、弱並發」的本質,避免誤用於線上交易系統。