您好,登錄后才能下訂單哦!
Infobright 是一個非常強大的列式存儲數據庫,基于MySQL的高效數據倉庫。
之所以使用數據倉庫,是因為目前MySQL數據庫中的數據增長很快,定期會對一些歷史記錄表進行清除,但后期的統計分析還會用到這些歷史數據,隨著數據量的增大,查詢也越來越慢,而數據庫倉庫特有的存儲格式能夠減小磁盤空間內的占用,同時列式的特點使得查詢速度大為改觀。選擇Infobright是因為它鎖支持的數據類型更多些,更接近于mysql,更節省磁盤空間,主要的統計查詢還不是在數據倉庫上,偶爾的查詢一下速度倒不是要求最優,作為社區版本(ICE版本)最×××煩是不能做DML操作的,實際測試也是那么回事,如果插入數據有些不合適的地方,需要刪除,只能drop table,然后從新建表和導入數據........
infobright的優勢:
1. 數據壓縮:適合存放很大的數據量,節約磁盤存儲
2. 查詢速度:基礎的匯總語句,sum avg min max count() groupby 速度比oracle的要快,不用建立索引、不用給大表分區,省很多工作量,適合數據匯總、報表統計
infobright的局限性ICE:
1. infobright不支持DML(只支持select)
只有select可以支持,update/insert/deltete以及truncate table 都不能使用,插入表數據:用laod data infile
2.只支持單擊、單核
由于Infobright官方已經提供好了rpm的包,所以安裝起來相對來說較為簡單:
rpm -ivh infobright-4.0.7-0-x86_64-ice.rpm --prefix=/usr/local/infobright
這樣就會安裝到/usr/local/infobright/infobright-4.0.7-0-x86_64
對于整個安裝過程,相當的簡單,比較繁瑣的是對于相關參數的設置:
A、配置內存大小
vim /usr/local/infobright-4.0.7-x86_64/data/brighthouse.ini
修改內存的配置可參加其建議值進行設置:
############ Critical MemorySettings ############
# System Memory Server Main Heap Size ServerCompressed Heap Size Loader Main HeapSize
# 32GB 24000 4000 800
# 16GB 10000 1000 800
# 8GB 4000 500 800
# 4GB 1300 400 400
# 2GB 600 250 320
B、系統自帶配置功能
sh /usr/local/infobright-4.0.7-x86_64/postconfig.sh
這個腳本可以改變datadir,cachedir,socket,port等配置,需要root來執行,執行后返回的信息如下:(如無需修改,則全部N即可)
Infobright post configuration
--------------------------------------
Using postconfig you can:
--------------------------------------
(1) Move existing data directory to other location,
(2) Move existing cachedirectoryto other location,
(3)Configure server socket,
(4)Configure server port,
(5) Relocate datadir pathto an existing data directory.
Please type'y'foroption that you want or press ctrl+c for exit.
Current configuration:
--------------------------------------
Current config file: [/etc/my-ib.cnf]
Current brighthouse.ini file: [/usr/local/infobright-4.0.7-x86_64/data/brighthouse.ini]
Current datadir: [/usr/local/infobright-4.0.7-x86_64/data]
Current CacheFolder in brighthouse.ini file: [/usr/local/infobright-4.0.7-x86_64/cache]
Current socket: [/tmp/mysql-ib.sock]
Current port: [5029]
--------------------------------------
(1) Do you want to copy current datadir [/usr/local/infobright-4.0.7-x86_64/data] to a new location? [y/n]:n
(2) Do you want tomovecurrent CacheFolder [/usr/local/infobright-4.0.7-x86_64/cache] to a new location? [y/n]:n
(3) Do you want tochangecurrent socket [/tmp/mysql-ib.sock]? [y/n]:n
(4) Do you want tochangecurrent port [5029]? [y/n]:n
(5) Do you want torelocateto an existing datadir? Current datadir is [/usr/local/infobright-4.0.7-x86_64/data]. [y/n]:n
--------------------------------------
--------------------------------------
No changes has been made.
--------------------------------------
C、設置字符集
infobright默認情況下不支持中文,為了更好的支持中文,需要設置默認的字符集。
vim /etc/my-ib.cnf
找到如下內容
collation_server=latin1_bin
character_set_server=latin1
將其修改為:
collation_server=utf8_bin
character_set_server=utf8
D、安裝啟動腳本
cp /usr/local/infobright-4.0.7-x86_64/share/mysql/mysql.server /etc/init.d/mysqld-ib
vim /etc/init.d/mysqld-ib
找到如下兩行代碼:
conf=@BH_CONF@
user=@BH_USER@
修改為:
conf=/etc/my-ib.cnf
user=root##這里只能用root啟動服務,其他用戶需要研究如何啟動
相關的其他指令:
/etc/init.d/mysqld-ib stop
/etc/init.d/mysqld-ib restart
添加開機啟動:
chkconfig --add mysqld-ib
E、Mysql安全設置
PATH=$PATH:/usr/local/infobright-4.0.7-x86_64/bin
mysql_secure_installation
完成后再給mysql添加一個遠程連接的賬號,只想如下命令進入mysql client:
mysql -uroot -p
添加完遠程用戶方法如下:
GRANT ALL PRIVILEGESON *.* TO'infobright'@'%'IDENTIFIEDBY'password'WITHGRANTOPTION;
FLUSHPRIVILEGES;
mysql數據導入到infobright中
CREATE TABLE `ricci_var` (
`id`int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`c_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATECURRENT_TIMESTAMP
) ENGINE=InnoDB
select * from ricci_var into outfile'/tmp/var.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n'
###紅色部分在導入的數據設置的分隔符等信息,導入也要相同
#導出數據的時候需要存放在數據庫目錄下或者/tmp目錄下,MySQL5.7是沒有權限導出需要設置
secure_file_priv配置對數據導入導出的影響:
secure_file_priv mysqld 用這個配置項來完成對數據導入導出的限制
1、限制mysqld 不允許導入 | 導出
mysqld --secure_file_prive=null
2、限制mysqld 的導入 | 導出只能發生在/tmp/目錄下
mysqld --secure_file_priv=/tmp/
3、不對mysqld 的導入| 導出做限制
/etc/my.cnf
[mysqld]
secure_file_priv
把數據導入infobright庫里
在inf庫里添加相同類型的表在導入數據:
load data infile "/tmp/var.csv"into table var fields terminated by ',' optionally enclosed by '"' linesterminated by '\n'
文本數據導入inf里:
[root@localhost home]# cat aa.txt
1,"noe,two or three",2222
2,3,4
create table aa(id int,textfiedl varchar(40),number int)
load data infile "/home/aa.txt" into table aa fields terminated by ',' enclosed by '"';
mysql> select * from aa;
+------+------------------+--------+
| id | textfiedl | number |
+------+------------------+--------+
| 1 | noe,two or three | 2222 |
| 2 | 3 | 4 |
+------+------------------+--------+
(1)“”是為了將列區分開
(2)每行寫好后必須回車,不然導不進去
##自己驗證正確性把
導數據庫的時候不建議使用客戶端工具來搞,總感覺好多坑的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。