Inforbright簡介
Infobright是一款基於知識網格的列式數據庫,對大批量數據(百萬、千萬、億級)的查詢性能非常高,據說比MyISAM、InnoDB等普通MySQL引擎快5~60倍,可存儲TB級體積的數據,存儲數據高壓縮比可達到40:1。基於列式存儲,無需索引、無需分區。快速響應複製的聚合查詢,非常適合分析性的SQL,如SUM、AVG、COUNT、GROUP BY 等。
Infobright的使用場景
1、大數據量的分析應用。如:網頁/在線分析、移動端數據分析、營銷分析、廣告定位、客戶行爲分析等。
2、日誌/事件管理系統。電信詳單分析和報告、系統/網絡 安全認證記錄。
3、數據集市。企事業單位特定數據倉庫、爲中小企業提供數據倉庫。
4、嵌入式分析。爲獨立軟件供應商/ SaaS供應商提供嵌入式分析應用
Infobright的限制
1、不支持數據更新:社區版Infobright只能使用“LOAD DATA INFILE”的方式導入數據,不支持INSERT、UPDATE、DELETE。
2、不支持高併發:只能支持10多個併發查詢,用於企業高層決策和產品定向已經足夠了。
Infobright安裝
下載相應的Windows版本安裝:https://www.infobright.org/index.php/Download/ICE
安裝成功後如圖:
打開Infobright Commond Line Client,如圖
設置密碼之後只能通過命令行窗口進入Infobright的bin目錄執mysql,可以打開Infobright的命令行窗口:
但是設置密碼之後會有一系列的權限問題,解決方法先保留。
創建數據庫(無密碼)
創建數據庫並指定字符集:
CREATE DATABASE mytest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
結果
mysql> CREATE DATABASE mytest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> use mytest;
Database changed
mysql>
創建表
從現有的MySQL表腳本修改
現有的MySQL建表腳本(這裏以我的reviews表爲例)
CREATE TABLE `reviews` (
`id` VARCHAR(32) NOT NULL,
`review` VARCHAR(10000) NULL DEFAULT NULL,
`reviewer` VARCHAR(100) NULL DEFAULT NULL,
`date` DATE NOT NULL DEFAULT '0000-00-00',
`helpful_count` INT(11) NULL DEFAULT NULL,
`starts` FLOAT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
FULLTEXT INDEX `fulltext_reviews` (`review`, `reviewer`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM
;
修改爲適應Infobright的建表腳本如下:
CREATE TABLE `reviews` (
`id` CHAR(32) NOT NULL,
`review` VARCHAR(10000) NULL DEFAULT NULL,
`reviewer` VARCHAR(100) NULL DEFAULT NULL,
`date` DATE NOT NULL DEFAULT '0000-00-00',
`helpful_count` INT(11) NULL DEFAULT NULL,
`starts` FLOAT NULL DEFAULT NULL
)
COLLATE='utf8_general_ci'
ENGINE=brighthouse;
對比一下,ID是定長的,乾脆改成CHAR了。
去掉PRIMARY KEY、FULLTEXT INDEX等索引,因爲Infobright是無需索引的。
把ENGINE修改爲brighthouse。
執行腳本:
導入CSV數據
使用命令先設置以CSV格式導入(安裝的是社區版(ICE),只能支持CSV)
set @bh_dataformat = 'txt_variable';
如果是企業版(IEE),需要支持多種格式如binary、MySQL,可以參考
{Infobright_home}/Data_Loading_Guide.pdf
使用MySQL客戶端工具將現有的reviews表數據導出爲reviews.csv,使用命令導入到Infobright的mytest.reviews表中
load data infile 'd:\\reviews.csv' into table reviews fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';
Infobright的默認端口是:5029