Infobright使用总结

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: Infobright使用总结

INFOBRIGHT介绍

在这里,我将结合我自己的使用以及对开源数据仓库的了解,INFOBRIGHT做下简单的介绍。

INFOBRIGHT产品分为社区版ICE和企业版IEE。相信大家对ICE都有很多的了解。ICE具备了INFOBRIGHT大部分的功能,我列举如下:

1. 超高的压缩比例。 普通10:1, 在极限情况下可以达到40:1 甚至更高。

2. 超强劲的数据导入性能。 ICE 有自己专业的数据导入工具BHLOADER, 不过受到了一些限制,比如不能利用到多核导入。

3. 超强的数据查询能力。 特别适合对于数据统计以及报表生成类得查询。

4. 超大的单表存放规模。 正是因为第一点,超强的压缩比,所以可以存放大量的数据, 节约了磁盘的存储,大大节省了成本。

5. 申请了专利的知识网格体系,这点是其他开源数据仓库哪怕是商业的数据仓库产品所没有的。

6. 与主要的BI分析工具的兼容性。 比如Pentaho等等。

但是除了以上的优点外, ICE 有以下的限制:

1. 不支持数据更新。 这个限制对于我们即要求查询性能外还要对数据库进行写入的需求, 造成了很大的不变。 这个估计是很多人试用后放弃试用ICE的第一个原因。

2. 不支持对多核的使用。 不但不支持查询的多并发,而且连导入导出也没有这样的支持。这个也是放弃ICE的一个原因。 谁也不愿意自己的强劲的硬件只能被用到1%,这样也会被老板给骂死的,他的钱不能白白的被这样折腾。

3. 只能单机使用,不具备任何的复制以及扩展。 这点对于我们现在的大规模海量数据情何以堪那?

所幸的是, INFOBRIGHT提供了商业版本IEE。IEE支持ICE的所有优点,并且弥补了他的不足, 放宽了对他的限制。 特别是早新的版本4.0.x里面提供了一套令人更加兴奋的工具:DLP---分布式数据导入工具。

DLP 优点如下:

1. 减轻了数据库服务器的负载,使它能处理更多的请求。

2. 对应用完全透明, 不用编写额外的代码来处理复杂的导入工作。

3. 数据库的导入时间随着DLP部署的机器的增多二线性减少。当然,这些机器可以是非常廉价的PC服务器,也可以是旧的机器。节省了大量的成本。

4. 减少了对网络带宽的占用。 DLP在导入之前对原始数据已经进行了高效的压缩。

安装

 rpm -i infobright-migrator-1.0-x86_64-eval.rpm

 rpm -i infobright-4.5.0-4-x86_64-eval.rpm

 rpm -i infobright-dlp-1.4-x86_64-iee.rpm

默认参数如下:

 

Current config file: [/etc/my-ib.cnf]
Current brighthouse.ini file: [/usr/local/infobright-4.5.0-x86_64/data/brighthouse.ini]
Current datadir: [/usr/local/infobright-4.5.0-x86_64/data]
Current CacheFolder in brighthouse.ini file: [/usr/local/infobright-4.5.0-x86_64/cache]
Current socket: [/tmp/mysql-ib.sock] 
Current port: [5029]

可以改变默认参数

 

/usr/local/infobright/postconfig.sh

它是用来改变安装的datadir,CacheFolder, socket和port的

把认证文件 iblicense-*.lic 放到 /usr/local/infobright/ 目录下

 

开启或者关闭服务的命令:

/etc/init.d/mysqld-ib start

/etc/init.d/mysqld-ib stop

 

连接

/usr/bin/mysql-ib

 

卸载infobright的命令:

rpm -e infobright

设置root密码

 

/usr/local/infobright/bin/mysqladmin -u root password 'pass'

 

允许远程客户端通过root登录infobright

# mysql-ib -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'pass' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

 

DLP工具所在目录

/opt/infobright/tools/distributed-load-processor

在插表时遇到

ERROR 1070 (42000): Too many key parts specified; max 0 parts allowed

是因为有索引导致的,去掉索引就可以了,BRIGHTHOUSE存储引擎建表时不能有AUTO_INCREMENT自增、unsigned无符号、unique唯一、主键PRIMARY KEY、索引KEY。

 

Infobright目录结构:/data/infobright/

解压后,你会发现这不就是一个MySQL吗,infobright-3.3.1是集成于mysql-5.1.40,很自然的就会把infobright理解成MySQL的一个特殊引擎,这又进一步体现出MySQL具有可插拔引擎接口的特点。

cache目录:README里面说是临时文件生成和存放地,但是我一直没有看到里面有文件按出现。

data目录:

bh.err  ——  错误日志这个和MySQ记录启动关闭信息以及一些错误和警告提示,但在infobright中它还有一个特殊的任务就是记录执行计划,因为 infobright没有explain/profile这样的工具。

brighthouse.ini   ——    infobright的配置文件,里面有使用内存大小的分配规则、选择是否开启执行计划记录功能等。

内存占用设置在brighthouse.ini  里

# ServerMainHeapSize - Size of the main memory heap in the server process, in MB
ServerMainHeapSize=6000
# LoaderMainHeapSize - Size of the memory heap in the loader process, in MB.
LoaderMainHeapSize=800

brighthouse.log  ——    这个日志中记录了infobright引擎启动和关闭操作,已经我们在导入数据是遇到的错误。

brighthouse.seq ——    这个文件中记录的数字我也不是很理解;查了下,说是被使用的最大的表的号码。我的那个文件里面是708,在BH_RSI_Repository中,可以找到这样的数字,但是我没有看到708,最大的那个数字就是707。

general_query.log ——  这个和MySQL中的那个什么都能记录下来的日志一样。

slow_query.log  ——   慢查询日志,里面有那个用户在什么时间那条语句的执行时间和锁消耗的时间。

BH_RSI_Repository子目录:里面都是rsi文件,似乎和Knowledge Grid相关,一类是HIST开头的,一类是CMAP开头的。

相关数据库子目录:里面分别是对应各个表的frm文件,和bht目录。

 

/usr/local/infobright/bin/mysqldump  备份脚本

 

一旦有数据插入就会执行多条类似这样的语句:

/usr/local/infobright-4.5.0-x86_64/bin/bhloader bhload-info-13499-1463118653-17607 /tmp/bhload-info-13499-1463118653-17607

 

如何调整infobright的存储目录结构

/etc/init.d/mysqld-ib stop

cd /usr/local/infobright

sh postconfig.sh

(1) Move existing data directory to other location,

(2) Move existing cache directory to other location,

(3) Configure server socket,

(4) Configure server port,

(5) Relocate datadir path to an existing data directory.

 

    Datadir       Path to the directory where tables will be created and stored. Use a high-performance storage such as a RAID.

    Cachedir     Path to the directory where temporary files will be created and stored. Should be located on a fast drive, possibly not the same as the data.

                    Allow at least 100 GB of free space (depending on database size).

                         Note: The Cachedir option is disabled when the Datadir option is chosen. To change

                                  Cachedir, rerun the postconfig utility and do not choose Datadir.

    Port          Listening port for the Infobright server instance.

    Socket        Socket connection point for client connections. (The socket connection point will be created during the Infobright installation.)

/etc/init.d/mysqld-ib start

 

//emoji符号会导致插入不进去,IB并且不抛出任何错误

老少皆知的方法

   1. comment 'lookup':对于选择少于10000的字符串型字段,这是一个非常实用的优化

 

列式存储,无需创建索引和分区,再也不用关心索引失效了!

那么,货币流表分表是不是对IB的误用?

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
8月前
|
关系型数据库 MySQL 数据库
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
TIS 是一款基于Web-UI的开源大数据集成工具,通过与人大金仓Kingbase的深度整合,提供高效、灵活的实时数据集成方案。它支持增量数据监听和实时写入,兼容MySQL、PostgreSQL和Oracle模式,无需编写复杂脚本,操作简单直观,特别适合非专业开发人员使用。TIS率先实现了Kingbase CDC连接器的整合,成为业界首个开箱即用的Kingbase CDC数据同步解决方案,助力企业数字化转型。
1466 5
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
|
9月前
|
JavaScript 前端开发 Docker
如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
通过这些步骤,可以确保您的Next.js应用在多核服务器上高效运行,并且在Docker环境中实现高效的容器化管理。
882 44
|
11月前
|
缓存 物联网 数据库
InfluxDB vs TDengine :2025 年了,谁家用的数据库还不能高效读缓存?
在工业互联网和物联网的大数据应用场景中,实时数据的写入和查询性能至关重要。如何快速获取最新设备状态并实时处理数据,直接影响到业务的高效运转。本文将深入分析 TDengine 和 InfluxDB 在缓存机制上的差异,帮助读者更好地理解这两款主流时序数据库在性能优化方面的优劣。
939 1
|
11月前
|
BI Python
利用OpenPyXL实现Excel条件格式化
本文介绍如何使用Python的`openpyxl`库为Excel文件添加条件格式,包括颜色渐变、图标集、数据条及基于公式的规则等,提升数据可读性和美观度。通过具体示例,展示了从安装库、加载文件到应用各种条件格式的详细过程,最后保存修改后的文件。
438 12
|
机器学习/深度学习 分布式计算 大数据
|
存储 关系型数据库 数据库
MySQL · 引擎特性 · Infobright 列存数据库
简介 系统架构 存储引擎 优化器和执行器 数据装载和卸载 领域知识 查询优化 简单场景的示例 小结 存储结构 Data Pack Knowledge Node 数据压缩 总结 简介 Infobright 是一个面向 OLAP 场景的开源列
4240 0
|
算法 数据可视化 搜索推荐
基于python的k-means聚类分析算法,对文本、数据等进行聚类,有轮廓系数和手肘法检验
本文详细介绍了基于Python实现的k-means聚类分析算法,包括数据准备、预处理、标准化、聚类数目确定、聚类分析、降维可视化以及结果输出的完整流程,并应用该算法对文本数据进行聚类分析,展示了轮廓系数法和手肘法检验确定最佳聚类数目的方法。
532 0
|
IDE Linux 开发工具
Linux 创建 intellij-idea快捷方式
Linux 创建 intellij-idea快捷方式
602 0
|
分布式计算 Java Scala
Spark编程语言选择:Scala、Java和Python
Spark编程语言选择:Scala、Java和Python
Spark编程语言选择:Scala、Java和Python
下一篇
开通oss服务