[文章作者:张宴 本文版本:v1.1 最后修改:2010.05.18 转载请注明原文链接:http://blog.zyan.cc/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、下载安装社区版Infobright二进制Linux版本,端口3307

ulimit -SHn 65535
mkdir -p /data0/mysql/3307
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql

cd /usr/local

  ①、64位系统:

wget http://www.infobright.org/downloads/ice/infobright-3.3.1-x86_64-ice.tar.gz
tar zxvf infobright-3.3.1-x86_64-ice.tar.gz
mv infobright-3.3.1-x86_64 infobright

  ②、32位系统:

wget http://www.infobright.org/downloads/ice/infobright-3.3.1-i686-ice.tar.gz
tar zxvf infobright-3.3.1-i686-ice.tar.gz
mv infobright-3.3.1-i686 infobright

cd infobright
./install-infobright.sh --datadir=/data0/mysql/3307/data --cachedir=/data0/mysql/3307/cache --config=/data0/mysql/3307/my.cnf --port=3307 --socket=/tmp/mysql3307.sock --user=mysql --group=mysql

  2、开始安装,提示以下信息:
Infobright installation script is running...
Checking system configuration...
Infobright license agreement...
System tool 'Less' - a text file viewer will be used to display license agreement.
Please only use up/down arrow keys for scrolling license text and press Q when finished reading.
Press R -Read license agreement, N -Exit the installation [R/N]:

  选择R,空格翻页到页尾,看到以下提示时,选择Q继续安装:

END OF TERMS AND CONDITIONS

============ Press Q to continue installation ==========
(END)

  接下来会显示以下信息,选择Y同意:
Press Y -I agree, Any other key -I do not agree [Y/*]:

  这时,会提示是否在线注册,选择N不注册:
Installation has been made for system user root and mysql.
Please see README or User guide for instructions related to start/stop the Infobright server and connect to it.
Register your copy of ICE and receive a free copy of the User Manual (a $50 value) as well as a copy of the Bloor Research Spotlight Report "What's Cool About Columns" which explains the differences and benefits of a columnar versus row database.
Registration will require opening an HTTP connection to Infobright, do you wish to register now? [Y/N]:


  3、修改Infobright内存使用限制

vi /data0/mysql/3307/data/brighthouse.ini

  根据自身的物理内存大小修改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

  4、创建管理MySQL数据库的shell脚本:

vi /data0/mysql/3307/mysql

  输入以下内容(这里的用户名admin和密码12345678接下来的步骤会创建):

#!/bin/sh

mysql_port=3307
mysql_username="admin"
mysql_password="12345678"

function_start_mysql()
{
    printf "Starting MySQL...\n"
    cd /usr/local/infobright/ && /bin/sh ./bin/mysqld_safe --defaults-file=/data0/mysql/${mysql_port}/my.cnf 2>&1 > /dev/null &
}

function_stop_mysql()
{
    printf "Stoping MySQL...\n"
    cd /usr/local/infobright/ && ./bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql${mysql_port}.sock shutdown
}

function_restart_mysql()
{
    printf "Restarting MySQL...\n"
    function_stop_mysql
    sleep 5
    function_start_mysql
}

function_kill_mysql()
{
    kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}')
    kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')
}

if [ "$1" = "start" ]; then
    function_start_mysql
elif [ "$1" = "stop" ]; then
    function_stop_mysql
elif [ "$1" = "restart" ]; then
function_restart_mysql
elif [ "$1" = "kill" ]; then
function_kill_mysql
else
    printf "Usage: /data0/mysql/${mysql_port}/mysql {start|stop|restart|kill}\n"
fi


  5、赋予shell脚本可执行权限:

chmod +x /data0/mysql/3307/mysql

  6、启动MySQL/Infobright:

/data0/mysql/3307/mysql start

  7、通过命令行登录管理MySQL服务器(提示输入密码时直接回车):

/usr/local/infobright/bin/mysql -u root -p -S /tmp/mysql3307.sock

  8、输入以下SQL语句,创建一个具有root权限的用户(admin)和密码(12345678):

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '12345678';

  9、示例:从普通的MySQL数据库(假设MySQL安装路径为/usr/local/webserver/mysql)导出数据到csv文件:

/usr/local/webserver/mysql/bin/mysql -S /tmp/mysql3306.sock -D tongji_logs -e "select * from log_visits_2010_05_10 into outfile '/data0/test.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '\"'  ESCAPED BY '\\\' LINES TERMINATED BY '\n';"

  10、示例:普通MySQL和Infobright建表对比
  ①、普通MySQL的InnoDB存储引擎建表:

CREATE TABLE IF NOT EXISTS `log_visits_2010_05_12` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `cate_id` int(11) NOT NULL,
  `site_id` int(11) unsigned NOT NULL,
  `visitor_localtime` char(8) NOT NULL,
  `visitor_idcookie` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `cate_site_id` (`cate_id`,`site_id`),
  KEY `visitor_localtime` (`visitor_localtime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  ②、Infobright的BRIGHTHOUSE存储引擎建表:

CREATE TABLE IF NOT EXISTS `log_visits` (
  `id` int(11) NOT NULL,
  `cate_id` int(11) NOT NULL,
  `site_id` int(11) NOT NULL,
  `visitor_localtime` char(8) NOT NULL,
  `visitor_idcookie` varchar(255) NOT NULL,
) ENGINE=BRIGHTHOUSE DEFAULT CHARSET=utf8;

  注:BRIGHTHOUSE存储引擎建表时不能有AUTO_INCREMENT自增、unsigned无符号、unique唯一、主键PRIMARY KEY、索引KEY。


  11、示例:从csv文件导入数据到Infobright数据仓库:

/usr/local/infobright/bin/mysql -S /tmp/mysql3307.sock -D dw --skip-column-names -e "LOAD DATA INFILE '/data0/test.csv' INTO TABLE log_visits_2010_04_13 FIELDS TERMINATED BY ',' ESCAPED BY '\\\' LINES TERMINATED BY '\n';"

  12、示例:普通MySQL和Infobright查询速度对比(共220多万条记录):
  ①、普通MySQL的InnoDB存储引擎(已建索引):

mysql> SELECT config_browser_name, count(*) AS total FROM `browser_info` GROUP BY config_browser_name order by total DESC;
+---------------------+---------+
| config_browser_name | total   |
+---------------------+---------+
| IE                  | 2204016 |
| CH                  |   20650 |
| FF                  |   10475 |
| MO                  |    6147 |
| OT                  |    1631 |
| OP                  |    1282 |
| SF                  |     797 |
| KM                  |       5 |
| KO                  |       2 |
+---------------------+---------+
9 rows in set (1 min 28.13 sec)

  ②、Infobright的BRIGHTHOUSE存储引擎:

mysql> SELECT config_browser_name, count(*) AS total FROM `browser_info` GROUP BY config_browser_name order by total DESC;
+---------------------+---------+
| config_browser_name | total   |
+---------------------+---------+
| IE                  | 2204016 |
| CH                  |   20650 |
| FF                  |   10475 |
| MO                  |    6147 |
| OT                  |    1631 |
| OP                  |    1282 |
| SF                  |     797 |
| KM                  |       5 |
| KO                  |       2 |
+---------------------+---------+
9 rows in set (0.84 sec)

  13、(可选)停止MySQL/Infobright:

/data0/mysql/3307/mysql stop

转载于:https://www.cnblogs.com/zzjhn/p/5678684.html

MySQL Infobright 数据仓库快速安装笔记[转]相关推荐

  1. ubuntu apache php mysql phpmyadmin_Ubuntu下Apache+PHP+MySQL+phpMyAdmin的快速安装步骤

    Ubuntu下是如何部署安装 Apache +PHP+MySQL+phpMyAdmin的呢?对于很多朋友来说可能会有点不熟悉,下面这篇文章我将给大家带来Ubuntu下快速部署安装Apache+PHP+ ...

  2. Hadoop学习笔记(16)Hive的基本概念、Hive的下载与安装、MySQL数据库下载与安装

    一.Hive基本概念 1.Hive简介 Hive是一个基于hadoop的开源数据仓库工具,用于存储和处理海量结构化数据.它把海量数据存储于hadoop文件系统,而不是数据库,但提供了一套类数据库的数据 ...

  3. (总结)CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL

    (总结)CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL PS:这个是懒人yum快速安装法,用于开发和测试环境很方便,用于没有特殊要求的生产环境也可以.特 ...

  4. 安装mysql 没有快捷_快速安装mysql

    一.快速安装mysql准备工作 首先需要保证自己的开发工具包已安装:未安装使用 yum  groupinstall  'Develop Tools '  -y 这样就不会出现缺少gcc和  No cu ...

  5. mysql双节点安装_快速安装及配置MySQL Replication双主节点集群--及改变数据保存目录...

    192.168.1.101  master/slave 192.168.1.102  slave 192.168.1.103  slave 操作系统均为centos6.5 原理图: 1. 分别安装my ...

  6. mysql简单部署_安装部署Mysql实例(最简单快速噢)

    题外话 作为Mysql DBA,我们平时必须要熟练的一个最最基础的技能,即安装部署Mysql实例,所以本文分享一个快速安装部署Mysql实例的方法. 一.环境介质准备 Mysql安装包准备 服务器准备 ...

  7. centos安装mysql8_Docker 快速安装 Mysql

    本篇文章主要记录 Docker 安装 Mysql 的命令和过程.在开始之前,你需要在电脑上安装 Docker 环境,可参考 在 CentOS 系统上安装 Docker Engine 在 Ubuntu ...

  8. 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程...

    简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.IO ...

  9. 使用Docker快速安装部署mysql

    使用Docker快速安装部署mysql的前提:首先需要确保已经安装了Docker环境 如果没有安装Docker的话,可以参考上一篇的内容:Linux上安装Docker 有了Docker环境后,就可以使 ...

最新文章

  1. python编程怎么建立工程_教你如何用Python脚本快速创建项目
  2. springBoot静态资源处理
  3. linux——百度百科
  4. CURL NDK 交叉编译
  5. k8s多master建议用几个_K8s 还是 k3s?This is a question
  6. 修改服务器mysql密码,修改Linux服务器中的MySql密码
  7. mysqlnavicat数据库备份与恢复_Navicat如何还原MySQL数据库
  8. 2017.9.26 块的计数 思考记录
  9. Sublime Text : 创建工程
  10. Linux操作系统命令解释
  11. notepad++正则表达式使用
  12. 物件捆绑 背包问题 动态规划 求解
  13. DMG计算机,dmg文件怎么打开?dmg是什么意思?
  14. 教师计算机研修培训日志感言,2019年教师研修感言
  15. Tungsten Fabric(6):部署更高版本的TF
  16. Gurobi + Python
  17. 阿里云CentOS8_x86_64_Haproxy代理gitlab及mantis
  18. 英特尔 NUC 豆子峡谷 安装ubantu 的总结
  19. 混合A*算法(Hybrid A*)
  20. c语言求同时被3和7,c语言输入一个数 判断该数能否同时被3和7整除 如果能整除 则输出yes...

热门文章

  1. 透过Baba is you看「玩点叙述」
  2. 慢查询日志中出现超大时间的案例分析
  3. 线上Java应用排查和诊断规范
  4. 运行脚本时用SPOOL保存运行结果的问题
  5. 工作三年左右的Java程序员跟大家谈谈从业心得
  6. 好难!打个日志还能打出一个bug,语塞...
  7. python 的类装饰器
  8. R语言实战学习笔记-高级数据管理
  9. nginx 实现mysql的负载均衡【转】
  10. python学习笔记(字典)