Infobright 是一款建立在 MySQL 邏輯層之上的開源列式資料倉庫引擎,採用專利「知識網格」技術,針對海量資料的分析查詢(OLAP)場景提供極致壓縮與查詢加速。它不需額外安裝 MySQL,自帶完整實例;但其儲存邏輯與傳統行式引擎(InnoDB/MyISAM)截然不同,無法作為普通插件掛載,而是替換了儲存引擎並擴展了優化器。
核心優勢
- 查詢效能強勁: 億級記錄下 SELECT 聚合查詢比 MyISAM/InnoDB 快 5~60 倍,得益於列式儲存與知識網格裁剪掃描範圍。
- 超高壓縮比: 平均 10:1,最高達 40:1。列式儲存配合自適應壓縮演算法(整數、日期、字串各用最優編碼),大幅降低儲存成本。
- 零索引維護: 以知識網格(Data Pack Node、Histogram、CMAP、Pack-to-Pack)替代 B+ 樹索引,免去索引膨脹與維護開銷。
- 複雜聚合極速響應: SUM、COUNT、AVG、GROUP BY 等分析型 SQL 表現卓越。
- 部署運維輕量: 相容 MySQL 協議與 BI 工具(Pentaho、Cognos、Jaspersoft),學習成本近零。
架構剖析:三層儲存與知識網格
Infobright 以三層結構組織資料:
- Data Pack (DP): 底層儲存單元,每 Pack 固定存放單一欄位 65,536 個值,按資料型別自適應壓縮。
- Data Pack Node (DPN): 對應每個 DP,記錄統計元資料:min/max、null 計數、distinct 值數、sum/avg 等。
- Knowledge Node (KN): 高層語義資訊,包含 Histogram(數值範圍分桶)、CMAP(字串字元位置位圖)、Pack-to-Pack(JOIN 關係矩陣)。KN 部份載入時產生,部份查詢時動態學習。
這四類結構共同構成 Knowledge Grid(知識網格),是 Infobright 「無索引卻能秒級過濾億級資料」的核心。
查詢執行流程:粗糙集理論實戰
執行 WHERE salary>100000 AND age<35 AND job='IT' 時:
- 優化器查閱 DPN/Histogram/CMAP,將所有 DP 分為三類:Relevant(全滿足)、Irrelevant(全不滿足)、Suspect(部分滿足)。
- 直接捨棄 Irrelevant Packs,僅解壓縮 Relevant 與 Suspect Packs。
- 多表 JOIN 時,Pack-to-Pack 矩陣快速判斷兩表 DP 間是否有鍵值交集,極大縮小 JOIN 範圍。
WHERE 條件區分度越高,Suspect Packs 越少,解壓開銷越低,查詢越快。
版本差異:社區版 (ICE) vs 企業版 (IEE)
| 特性 | ICE (開源) | IEE (商業) |
| DML 支援 | 僅 LOAD DATA INFILE,不支援 INSERT/UPDATE/DELETE | 完整支援標準 DML |
| 並行查詢 | 單執行緒,單查詢僅用單核 | 多執行緒調度模組(3.5+),複雜查詢快 50~500% |
| DDL/ALTER | 不支援 | 支援 rename、add/drop column(限最後一欄) |
| 高可用/擴展 | 無主從、無分散式 | 主從複寫、分散式載入 (DLP)、Hadoop 介面 |
| 中文/多位元組 | 支援較弱 | 較佳 |
| 官方支援 | 社群 | 商業 SLA、培訓、救援 |
適用場景與避坑指南
✅ 適合: 日誌/事件分析、電信帳單、客戶行為分析、廣告點擊流、嵌入式 BI、資料集市 —— 寫入為批次載入、讀取為複雜聚合、資料以「事實表」為主、無實時更新需求。
❌ 不適合: 高併發 OLTP、單筆點查、頻繁 UPDATE/DELETE、需外鍵/觸發器/存儲過程、實時資料服務。
最佳實踐建議:
- 欄位型別優先用整數;日期拆分 year/month/day 三欄;避免 VARCHAR/TEXT/FLOAT/DOUBLE。
- 低基數欄位(性別、省份、狀態碼)加
COMMENT 'lookup' 啟用位圖式編碼,壓縮與查詢雙贏。
- 資料按高區分度欄位(如日期)有序載入,使 DP 內 min/max 範圍緊湊,減少 Suspect Packs。
- SQL 撰寫:避免 OR、避免 SELECT *、避免 WHERE 中用函數/隱式轉型、善用 UNION/IN 替代 OR、盡量覆蓋索引欄位、子查詢轉 JOIN。
載入工具鏈
- IBLoader: 原生 CSV/二進位載入,支援並行、斷點續傳。
- DLP (Distributed Load Processor): 企業版專屬,分散式載入,峰值 1.6 TB/小時。
- MySQL Loader / ETL 工具: 相容標準 MySQL 介面與主流 ETL。
Infobright 以「列式壓縮 + 知識網格」重新定義了 MySQL 生態下的資料倉庫能力邊界。若您的業務屬於「海量、只增不改、聚合分析」,它是極具性價比的選擇;若涉及高併發寫入或點查,請繼續擁抱 InnoDB。