阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL开源引擎infobright数据仓库解决方案

206次阅读
没有评论

共计 4214 个字符,预计需要花费 11 分钟才能阅读完成。

infobright 是开源的 MySQL 数据仓库解决方案,它基于在 MySQL 上二次开发,infobright 主要实现的就是一个存储引擎,但因为它自身存储逻辑跟关系型数据库根本不同,所以,它不能像 InnoDB 那样直接作为插件挂接到 mysql,它的逻辑层是 mysql 的逻辑 层加上它自身的优化器。

infobright 有以下几个特点:

1、高强度的数据压缩在普通 10:1,在极限情况下可以达到 40:1 甚至更高,自己在使用 infobright 过程中曾把 5.1G 的数据可以压缩成 152M 左右;

2、优化的统计计算(使用 sum/avg/group by/count 等),特别适用于统计函数生成的报表数据;

3、不需要建索引,就避免了维护索引及索引随着数据膨胀的问题。把每列数据分块压缩存放,每块有知识网格节点记录块内的统计信息,代替索引,加速搜索;
4、列式存储,在没有索引的情况下同理也没有主键、自动递增字段、无符号。

infobright 产品分为社区版 ICE 和企业版 IEE,其使用的引擎是 BRIGHTHOUSE,在使用 IEE 版本是没有限制的,但是使用 ICE 版本则有 3 个限制:
1、不支持数据更新,因此在导入数据的时候只能用“LOAD DATA INFILE”的方式导入数据,此外一旦入库后就不能在仓库中用 UPDATE、INSERT 等方式写入;
2、不支持对 CPU 多核的使用,使得性能极低,要知道入数据仓库的数据都是极大的数据,没有多核支持查询大量的数据极慢;
3、只能单机使用,不具备任何的复制以及扩展,这样就限制了大规模集群的可能性。
所以日常使用建议还是使用 IEE 版本,而 infobright 的安装部署也十分简单可以在官网下载 rpm 包来进行安装部署,可以把安装过的服务器上把文件打包后直接解压后修改参数部署,其配置文件 my-ib.cnf 可以事先写好,如果在安装后需要重新修改参数可以使用内置的 postconfig.sh 脚本修改默认参数,默认的配置文件在 support-files 中

[root@localhost local]# cd /usr/local/infobright/
[root@localhost infobright]# chmod +x ./*.sh && chmod +x bin/* && chmod +x scripts/mysql_install_db
[root@localhost infobright]# cp support-files/mysql.server /etc/init.d/mysqld-ib
[root@localhost infobright]# chmod +x /etc/init.d/mysqld-ib
[root@localhost infobright]# cp support-files/my-ib.cnf.in /etc/my-ib.cnf# 其中参数变量需要修改
…略…
[client]
…略…
default_character_set=utf8
…略…
[mysqld]
user        = root# 也可以用 mysql 用户
port            = 5029
socket          = /tmp/mysql-ib.sock
basedir = /usr/local/infobright
datadir = /data/infobright_data
log-error = /data/infobright_data/localhost.err
…略…
default_character_set=utf8
collation_server=utf8_general_ci
character_set_server=utf8
[root@localhost infobright]# vim /etc/profile.d/infobright.sh# 在没有 MySQL 的服务器上添加环境变量
export PATH=$PATH:/usr/local/infobright/bin
[root@localhost infobright]# source /etc/profile.d/infobright.sh
[root@localhost infobright]# ./scripts/mysql_install_db –force –defaults-file=/etc/my-ib.cnf –datadir=/data/infobright_data –user=root
[root@localhost infobright]# cd /data/infobright_data/
[root@localhost infobright_data]# vim brighthouse.ini# 修改 BRIGHTHOUSE 引擎参数
################## BrightHouse configuration file ####################
# To change values, uncomment the parameter and specify desired value.
 
############ Critical Disk Settings ############
 
# Data Folder: check where you installed brighthouse data folder (directory this file is in) – it should be on a fast disk.
 
# CacheFolder – a place in which temporary database objects (memory cache) are stored.
# Should be on a fast drive, possibly not the same as data. Allow at least 20 GB of free space (depending on database size).
CacheFolder = /data/infobright_data/cache
 
############  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
 
# The default values are set to 600, 250, and 320 respectively, and performance may be  impacted.
 
# ServerMainHeapSize – Size of the main memory heap in the server process, in MB
ServerMainHeapSize = 4000
 
# LoaderMainHeapSize – Size of the memory heap in the loader process, in MB.
LoaderMainHeapSize = 800
 
############ Logging Settings ############ 
 
# ControlMessages – Set to 2 to turn the control messages on. This is usually needed by Infobright to support performance investigation.
# ControlMessages = 0
 
############  Other Settings ############
 
# KNFolder – Directory where the Knowledge Grid is stored.
KNFolder = BH_RSI_Repository
 
# AllowMySQLQueryPath can be set to 0 to disable MySQL Query path or 1 to enable it.
AllowMySQLQueryPath = 1
[root@localhost infobright_data]# /etc/init.d/mysqld-ib start
[root@localhost infobright_data]# mysql -S /tmp/mysql-ib.sock -p

在这里需要注意的是修改 BRIGHTHOUSE 参数时重要的参数如下:
123456 CacheFolder 临时数据目录,用于缓存处理查询的中间结果集,与 Datadir 相异为宜,可用空间大于 20G
ServerCompressedHeapSize 服务进程的压缩堆栈空间,存放压缩数据
LoaderMainHeapSize Bhloader 数据导入缓冲区,随目标表的列数增加而调整,loader 进程的堆栈空间,一般最大不超过 800M
ControlMessages 控制盒查询日志的信息量级别(1- 3 之间)
KNFolder 知识网络目录,默认在 datadir 目录下
AllowMySQLQueryPath 是否支持 Mysql 原生的 SQL 查询,支持修改为 1,否则 0

MySQL 开源引擎 infobright 数据仓库解决方案

最后在 infobright 尽可能使用的数据类型:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT,DECIMAL(尽量减少小数点位数),DATE,TIME,而效率比较低的、不推荐使用的数据类型有:BINARY VARBINARY,FLOAT,DOUBLE,VARCHAR,TINYTEXT TEXT,在 infobright 要把数据导出成 sql 脚本则需要使用 mysqldump 的“–single-transaction”参数使用单事务的方式导出,及事务的 REPEATABLE READ 隔离模式,MySQL 的事务以前有提及过需要可以参看:http://www.linuxidc.com/Linux/2017-09/146850.htm 

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-10/147939.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计4214字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中