溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Infobright列式存儲數(shù)據(jù)庫

發(fā)布時間:2020-04-25 11:55:43 來源:網(wǎng)絡(luò) 閱讀:926 作者:DBAspace 欄目:數(shù)據(jù)庫

Infobright 是一個非常強大的列式存儲數(shù)據(jù)庫,基于MySQL的高效數(shù)據(jù)倉庫。

之所以使用數(shù)據(jù)倉庫,是因為目前MySQL數(shù)據(jù)庫中的數(shù)據(jù)增長很快,定期會對一些歷史記錄表進行清除,但后期的統(tǒng)計分析還會用到這些歷史數(shù)據(jù),隨著數(shù)據(jù)量的增大,查詢也越來越慢,而數(shù)據(jù)庫倉庫特有的存儲格式能夠減小磁盤空間內(nèi)的占用,同時列式的特點使得查詢速度大為改觀。選擇Infobright是因為它鎖支持的數(shù)據(jù)類型更多些,更接近于mysql,更節(jié)省磁盤空間,主要的統(tǒng)計查詢還不是在數(shù)據(jù)倉庫上,偶爾的查詢一下速度倒不是要求最優(yōu),作為社區(qū)版本(ICE版本)最×××煩是不能做DML操作的,實際測試也是那么回事,如果插入數(shù)據(jù)有些不合適的地方,需要刪除,只能drop table,然后從新建表和導(dǎo)入數(shù)據(jù)........

infobright的優(yōu)勢:

1.    數(shù)據(jù)壓縮:適合存放很大的數(shù)據(jù)量,節(jié)約磁盤存儲

2.    查詢速度:基礎(chǔ)的匯總語句,sum avg  min max  count()  groupby 速度比oracle的要快,不用建立索引、不用給大表分區(qū),省很多工作量,適合數(shù)據(jù)匯總、報表統(tǒng)計

infobright的局限性ICE:

1.    infobright不支持DML(只支持select)

只有select可以支持,update/insert/deltete以及truncate table 都不能使用,插入表數(shù)據(jù):用laod data infile

2.只支持單擊、單核

由于Infobright官方已經(jīng)提供好了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

對于整個安裝過程,相當(dāng)?shù)暮唵?,比較繁瑣的是對于相關(guān)參數(shù)的設(shè)置:

A、配置內(nèi)存大小

vim /usr/local/infobright-4.0.7-x86_64/data/brighthouse.ini

修改內(nèi)存的配置可參加其建議值進行設(shè)置:

############  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、系統(tǒng)自帶配置功能

sh /usr/local/infobright-4.0.7-x86_64/postconfig.sh

這個腳本可以改變datadir,cachedir,socket,port等配置,需要root來執(zhí)行,執(zhí)行后返回的信息如下:(如無需修改,則全部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、設(shè)置字符集

infobright默認情況下不支持中文,為了更好的支持中文,需要設(shè)置默認的字符集。

vim /etc/my-ib.cnf

找到如下內(nèi)容

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啟動服務(wù),其他用戶需要研究如何啟動

相關(guān)的其他指令:

/etc/init.d/mysqld-ib stop

/etc/init.d/mysqld-ib restart

添加開機啟動:

chkconfig --add mysqld-ib

E、Mysql安全設(shè)置

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數(shù)據(jù)導(dǎo)入到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'

###紅色部分在導(dǎo)入的數(shù)據(jù)設(shè)置的分隔符等信息,導(dǎo)入也要相同

#導(dǎo)出數(shù)據(jù)的時候需要存放在數(shù)據(jù)庫目錄下或者/tmp目錄下,MySQL5.7是沒有權(quán)限導(dǎo)出需要設(shè)置

secure_file_priv配置對數(shù)據(jù)導(dǎo)入導(dǎo)出的影響:

secure_file_priv  mysqld 用這個配置項來完成對數(shù)據(jù)導(dǎo)入導(dǎo)出的限制

1、限制mysqld 不允許導(dǎo)入 | 導(dǎo)出

 mysqld --secure_file_prive=null

2、限制mysqld 的導(dǎo)入 | 導(dǎo)出只能發(fā)生在/tmp/目錄下

 mysqld --secure_file_priv=/tmp/

3、不對mysqld 的導(dǎo)入| 導(dǎo)出做限制

 /etc/my.cnf
    [mysqld]
    secure_file_priv

把數(shù)據(jù)導(dǎo)入infobright庫里

在inf庫里添加相同類型的表在導(dǎo)入數(shù)據(jù):

load data infile "/tmp/var.csv"into table var fields terminated by ',' optionally enclosed by '"' linesterminated by '\n'

文本數(shù)據(jù)導(dǎo)入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)“”是為了將列區(qū)分開

(2)每行寫好后必須回車,不然導(dǎo)不進去

##自己驗證正確性把

導(dǎo)數(shù)據(jù)庫的時候不建議使用客戶端工具來搞,總感覺好多坑的。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI