infobright 安裝與配置詳細教程
轉自:http://blog.51cto.com/phpqinsir/1030591
Infobright是一個基於獨特的專利知識網格技術的列式資料庫,能夠降低您90%的管理工作量。使用Infobright不需要建立特殊的資料庫模式,無需建立和維護索引,無需對資料進行分割槽,甚至不需要手動調整,知識網格就會在原始資料匯入時,自動建立和維護資料,並用以優化每一個查詢。在一臺PC伺服器上,Infobright企業版在對50TB甚至更多資料量進行多併發複雜查詢時,能夠顯示出令人驚歎的速度,相比於MySQL,其查詢速度提升了數倍甚至數十倍。在同類產品中,Infobright的單機效能處於領先地位。
Infobright是一個與MySQL整合的開源資料倉庫(Data Warehouse)軟體,可作為MySQL的一個儲存引擎來使用,SELECT查詢與普通MySQL無區別。
一、Infobright的基本特徵:
優點:
查詢效能高:百萬、千萬、億級記錄數條件下,同等的SELECT查詢語句,速度比MyISAM、InnoDB等普通的MySQL儲存引擎快5~60倍。
儲存資料量大:TB級資料大小,幾十億條記錄。
高壓縮比:在我們的專案中為18:1,極大地節省了資料儲存空間。
基於列儲存:無需建索引,無需分割槽。
適合複雜的分析性SQL查詢:SUM, COUNT, AVG, GROUP BY。
限制:
不支援資料更新:社群版Infobright只能使用“LOAD DATA INFILE”的方式匯入資料,不支援INSERT、UPDATE、DELETE。
不支援高併發:只能支援10多個併發查詢。
二、Infobright 安裝與基本用法:
1、以前的版本沒有提供rpm包,現在針對red hat 系列產品提供了rpm的安裝包。
cd /usr/local/src wget http://www.infobright.org/downloads/ice/infobright-4.0.7-0-x86_64-ice.rpm rpm -i infobright-4.0.7-0-x86_64-ice.rpm
這樣就下載安裝OK了。
官方下載地址:http://www.infobright.org/Download/ICE/
我的centos 系統是64位的,所以,下載的是64位的infobright社群版本。企業版本是要收費的,而且費用很昂貴。
如果,你不知道自己的centos是否已經安裝,可以通過如下命令來檢測:
rpm -qa|grep infobright
或者:
rpm -q infobright
通過以上方式是預設的安裝。作為學習研究,我們肯定不希望預設安裝。希望,能更改軟體的安裝位置。比如,將infobright安裝到/opt/infobrgiht 目錄下面。那麼可以在安裝的時候通過如下命令實現:
rpm -ivh infobright-4.0.7-0-x86_64-ice.rpm --prefix=/opt/infobright
注意:不要把ICE安裝在root或者home目錄下面,可能會和mysql引起衝突。
2、相關的配置檔案路徑
預設安裝情況下相關配置檔案位置如下:
配置檔案: [/etc/my-ib.cnf] brighthouse.ini檔案: [/usr/local/infobright-4.0.7-x86_64/data/brighthouse.ini] 資料存放目錄datadir: [/usr/local/infobright-4.0.7-x86_64/data] 快取目錄CacheFolder: [/usr/local/infobright-4.0.7-x86_64/cache] socket位置: [/tmp/mysql-ib.sock] port埠: [5029]
可以通過執行如下程式來設定以上配置:
/usr/local/infobright/postconfig.sh
然後,根據提示來進行更改配置吧。
注意:這個指令碼的執行必須保證infobright沒有執行。
3、啟動和停止
啟動命令:
/etc/init.d/mysqld-ib start
停止命令:
/etc/init.d/mysqld-ib stop
4、解除安裝
有時候配置出錯,又或者學習使用,可能會遇到解除安裝的情況。命令如下:
rpm -e infobright
5、配置infobright
vi /usr/local/infobright/data/brighthouse.ini
ServerMainHeapSize為IB所使用記憶體的最大值(不包括bh_loader),如果是專用DB伺服器,可適當調大,保證在業務最高峰,系統swap交換不高即可。
LoaderMainHeapSize由於是列式儲存,IB需要將多行資料各列資料組合後寫入資料塊,如果匯入表的列數很多,欄位很長,將該值調高,加快匯入速率(匯入前set autocommit=0,完成後commit+復原,可大幅提高匯入效率)。
ControlMessages 為IB錯誤日誌記錄型別,實驗環境設為4有利於排錯,成熟的生產環境設為2或3即可。
KNFolder 為知識網格所在目錄,通常情況下大小都很小,直接放在data目錄下即可。
根據自身的實體記憶體大小修改ServerMainHeapSize、ServerCompressedHeapSize、LoaderMainHeapSize的值,有參考:
############ Critical Memory Settings ############ # System Memory Server Main Heap Size Server Compressed Heap Size Loader Main Heap Size # 32GB 24000 4000 800 # 16GB 10000 1000 800 # 8GB 4000 500 800 # 4GB 1300 400 400 # 2GB 600 250 320
6、進入infobright
infobright是以MYSQL儲存引擎方式執行的。按照以往MYSQL儲存引擎必須配置MYSQL才能使用。但是,infobright 不需要。預設自帶了MYSQL主程式。通過以下命令即可進入infobright的操作介面:
mysql-ib
這個時候,我們為infobright分配一個能遠端連線的賬號,如下:
GRANT ALL PRIVILEGES ON . TO ‘admin’@’%’ IDENTIFIED BY ‘12345678’;
這樣,我們就可以通過MYSQL的客戶端程式,只需要裝埠號修改為infobright的預設埠5029即可連線infobright倉庫了。
7、建立一個Infobright表
請注意與MYSQL的其他儲存引擎的區別。
DROP TABLE IF EXISTS divination
; CREATE TABLE divination
( id
int(10) NOT NULL COMMENT ‘主鍵’, ip
varchar(15) NOT NULL COMMENT ‘訪問IP’ )ENGINE = BRIGHTHOUSE DEFAULT CHARSET utf8 COMMENT ‘使用者訪問記錄’;
注:BRIGHTHOUSE儲存引擎建表時不能有AUTO_INCREMENT自增、unsigned無符號、unique唯一、主鍵PRIMARY KEY、索引KEY。
8、其他
因為我們只能安裝infobright的社群版ICE,IEE是企業版,收費的,挺貴。所以,這個ICE社群版只能通過 LOAD DATA INFILE 匯入資料。不支援:INSERT、UPDATE、DELETE。不支援高併發,所以這個只能作為線下資料分析。不能作為線上的對外的一個高併發的解決方案。