Inforbright简介
Infobright是一款基于知识网格的列式数据库,对大批量数据(百万、千万、亿级)的查询性能非常高,据说比MyISAM、InnoDB等普通MySQL引擎快5~60倍,可存储TB级体积的数据,存储数据高压缩比可达到40:1。基于列式存储,无需索引、无需分区。快速响应复制的聚合查询,非常适合分析性的SQL,如SUM、AVG、COUNT、GROUP BY 等。
Infobright的使用场景
1、大数据量的分析应用。如:网页/在线分析、移动端数据分析、营销分析、广告定位、客户行为分析等。
2、日志/事件管理系统。电信详单分析和报告、系统/网络 安全认证记录。
3、数据集市。企事业单位特定数据仓库、为中小企业提供数据仓库。
4、嵌入式分析。为独立软件供应商/ SaaS供应商提供嵌入式分析应用
Infobright的限制
1、不支持数据更新:社区版Infobright只能使用“LOAD DATA INFILE”的方式导入数据,不支持INSERT、UPDATE、DELETE。
2、不支持高并发:只能支持10多个并发查询,用于企业高层决策和产品定向已经足够了。
Infobright安装
下载相应的Windows版本安装:https://www.infobright.org/index.php/Download/ICE
安装成功后如图:
打开Infobright Commond Line Client,如图
设置密码之后只能通过命令行窗口进入Infobright的bin目录执mysql,可以打开Infobright的命令行窗口:
但是设置密码之后会有一系列的权限问题,解决方法先保留。
创建数据库(无密码)
创建数据库并指定字符集:
CREATE DATABASE mytest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
结果
mysql> CREATE DATABASE mytest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> use mytest;
Database changed
mysql>
创建表
从现有的MySQL表脚本修改
现有的MySQL建表脚本(这里以我的reviews表为例)
CREATE TABLE `reviews` (
`id` VARCHAR(32) NOT NULL,
`review` VARCHAR(10000) NULL DEFAULT NULL,
`reviewer` VARCHAR(100) NULL DEFAULT NULL,
`date` DATE NOT NULL DEFAULT '0000-00-00',
`helpful_count` INT(11) NULL DEFAULT NULL,
`starts` FLOAT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
FULLTEXT INDEX `fulltext_reviews` (`review`, `reviewer`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM
;
修改为适应Infobright的建表脚本如下:
CREATE TABLE `reviews` (
`id` CHAR(32) NOT NULL,
`review` VARCHAR(10000) NULL DEFAULT NULL,
`reviewer` VARCHAR(100) NULL DEFAULT NULL,
`date` DATE NOT NULL DEFAULT '0000-00-00',
`helpful_count` INT(11) NULL DEFAULT NULL,
`starts` FLOAT NULL DEFAULT NULL
)
COLLATE='utf8_general_ci'
ENGINE=brighthouse;
对比一下,ID是定长的,干脆改成CHAR了。
去掉PRIMARY KEY、FULLTEXT INDEX等索引,因为Infobright是无需索引的。
把ENGINE修改为brighthouse。
执行脚本:
导入CSV数据
使用命令先设置以CSV格式导入(安装的是社区版(ICE),只能支持CSV)
set @bh_dataformat = 'txt_variable';
如果是企业版(IEE),需要支持多种格式如binary、MySQL,可以参考
{Infobright_home}/Data_Loading_Guide.pdf
使用MySQL客户端工具将现有的reviews表数据导出为reviews.csv,使用命令导入到Infobright的mytest.reviews表中
load data infile 'd:\\reviews.csv' into table reviews fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';
Infobright的默认端口是:5029