InfoBright入库
1 InfoBright入库方式对比
1.1 InfoBright入库的三种方式
InfoBright入库有三种方式:1,用mysql的API入库;2,用mysql的load data入库;3,用InfoBright提供的工具Distributed Load Processor(DLP)入库。
1.2 使用API入库
Mysql接口支持绑定变量,但只能一条记录,所以我们只能使用insert value list的方式。
SQL 语句为 insert into table_name (col,col…) values (value…),(value…)….
这种方式入库优点:比较容易控制,使用方便,程序调用比较稳定。缺点:经测试入库速度太慢,不能满足需求;同一个表不能并发,在入库的时候如果采取这种方式会锁表,多线程入库会导致入库速度变慢。
1.3 使用mysql客户端的load data infile
Mysql客户端登陆,设置文件名,表名,字段,分隔符等。具体方法如下:
mysql -u root -h 192.168.8.68 –pmysql –D test
set @bh_dataformat = 'mysql';
LOAD DATA INFILE 'DS_CLT_ABIS_MR.csv'
IGNORE INTO TABLE DS_CLT_ABIS_MR
fields terminated by ','
LINES TERMINATED BY '\n'
(N24, CALLID, SEQNO …);
这种方式入库的优点:性能得到了提升,它的速度经测试能达到2M/s;配置导入的时候可以根据具体的字段进行配置,方便灵活。缺点:最大的缺点不支持并发,性能得不到有效提升,速度还是达不到要求;配置繁琐;性能还是达不到要求,错误返回不清晰。
1.4 使用DLP入库
1. file à dlp à 数据库
dataprocessor –i /tmp/ t1.csv –X –T t1 –H hostip –P 5029 –D…
2. file à dlp à .ib文件 à mysql load à 数据库
Dataprocessor –I /tmp/t1.csv –--output-path=c:\tmpib\tq.ib -T t1 …
这种方式入库优点:性能得到了很大的提升,单次入库性能甚至比mysql的dataload还高,而且支持并发,经测试并发性能几乎是线性的,性能能满足需求。缺点:开发不灵活,文件结构必须要跟数据库保持一致,这给开发带来了不方便;dlp不稳定,dlp存在一定的bug。
2 InfoBright入库方案
第一, 由于性能上的要求,以上三种方案我们只能选择第三种用DLP导入,其他两种都达不到性能要求。
第二, 这必须要求我们的CSV文件跟数据库保持一致。
第三, Windows下使用DLP入库的时候我们开始使用的DLP入库的第一种方案入库,在入单个大文件的时候,他不会有问题。但多线程频繁入库的时候,它便会非常频繁的报“得不到资源”的错误。另根据厂家的解释是,网络连接闪断所导致的,那这就是不可避免的而且无法解决的。我认为这是DLP的一个BUG,应该不是网络闪断造成的如果是网络闪断造成的应该是入单个大文件的时候这个问题应该会出现,不是多个文件多线程频繁入库。为了解决这个问题我先把表结构通过脚本加载到本地,然后再通过从本地读取表结构。这样避免了频繁的访问数据库。但是造成部署的工作的繁琐。
第四, Windows下我们从本地读取表结构之后,结果测试发现,多线程的入库会非常频繁的超时。这个厂家也没给出解释,为了解决这个问题,我们只有先把csv文件用DLP转换成InfoBright支持的ib文件格式。然后再用mysql的load data file入库。这种方式入库先从性能上说,性能还是挺快的,他对文件的压缩比非常大,一般能达到10:1,mysql导入很快,性能可以达到要求。
总结:windows下可以先把csv文件用DLP把文件转换成ib文件。最后通过mysql的load data入库。Linux下,崔春华测试多线程入库没有问题。
3 部署
1,修改环境变量,
1)Linux:打开用户目录下.bash_profile或者.bashrc文件,添加:
export PATH=$PATH:mysql可执行文件路径:dlp可执行文件路径
执行$source .bash_profile
2)Windows可以右击我的电脑,点击属性->高级->环境变量->path中添加就行
2,修改.dataprocessorrc文件host,port,database,uway,login,password
3,把license文件,配置文件.dataprocessrrc,脚本文件拷到工作目录下。
4,执行dlp.sh脚本dlp.sh 文件名 表名
如果报获取不到表结构的错误,可以先把表结构下到本地,具体做法,在某处新建一个目录,比如我们存到/tmp目录下。
执行
dataprocessor -T 表名 --output-path=/tmp --fetch-schema-only -s /tmp/表名.schema
入库的命令改成
dataprocessor -i 文件名 -X -T 表名 -s /tmp/表名.schema.
dlp.sh
#!/bin/bash
# dlp.sh filename tablename
# 此脚本两个参数第一个为csv文件名,第二个为表名
# csv文件命名规则 表名-*.csv
CsvFileName=${1}
TableName=${2}
dlpfile()
{
dataprocessor -i ${CsvFileName} -X -T ${TableName}
if[ $? -eq 0 ]
then
rm -rf ${CsvFileName}
exit 0
else
echo dataprocess failed
exit 2
fi
}
dlpfile
----------------------
.dataprocessor
# Current dataprocessor configuration:
input-type = file
input-path =
output-type = file
#output-path =
schema-path =
host = 192.168.9.140
port = 5029
database = uway
table =
login = info
password = info
data-format = txt_variable
lines-terminated-by = \n
fields-terminated-by = ,
fields-enclosed-by =
escaped-by = \
log-path = dataprocessor.log
# config-path = .dataprocessorrc
heap-size = 320
buffer-size = 64
workers = 16
# compress-lookups = yes
# execute-load = yes
# verbose = yes
# quiet = yes
分享到:
相关推荐
Infobright是一款高效、高性能的开源数据仓库系统,专门设计用于大数据分析。社区版是Infobright提供的免费版本,让开发者和小型企业有机会体验其强大的分析能力。在本压缩包"infobright-社区版.zip"中,包含了...
Infobright是一款基于MySQL的数据仓库系统,专门设计用于高性能的分析型应用和数据集市。它采用了列式存储的方式,能够处理高达50TB的大数据,且可在普通硬件上运行,无需过多DBA干预。Infobright分为企业版(付费,...
infobright-4.0.7,32位系统,32位。
Infobright是一款开源的数据仓库系统,专为大数据分析设计,具有高效能、高并发和低存储成本的特点。本文将详细解析Infobright的核心技术、安装过程以及如何利用Infobright-4.0.7-0-x86_64-ice.rpm安装包进行部署。 ...
MySQL是一种广泛使用的开源关系型...总之,“mysql.rar_infobright”是一个关于MySQL数据库到Infobright数据仓库迁移的资源包,通过这个压缩包,你可以学习到如何利用Infobright的优势来提升大数据分析的效率和性能。
Infobright是一款高效的数据仓库解决方案,它以列式存储为主,特别适合大数据分析场景。这款数据库系统被设计用于处理大规模的结构化数据,提供快速的查询性能和低存储成本。结合MySQL,它能够为用户提供一个全面的...
Infobright是一款高效、轻量级的开源数据仓库解决方案,主要设计用于大数据分析。这款数据库管理系统以其出色的查询性能和极低的存储需求而受到关注。标题中的"infobright4.0.7-win.zip"表明这是一个针对Windows操作...
Infobright是一款高性能的列式数据库系统,尤其适合大数据分析场景。其核心优势在于其独特的数据存储和查询优化机制,这使得它在处理大规模数据分析时能展现出极高的性能。 Infobright的架构基于MySQL,但采用了...
**Ubuntu安装Infobright及主从同步** Infobright是一款开源的企业级数据仓库系统,以其高效的数据压缩和快速查询性能而受到关注。在Ubuntu操作系统上安装Infobright并配置主从同步是数据库管理员常见的任务,这有助...
Infobright是一款高效的数据仓库解决方案,专为处理大规模数据集而设计。在Windows 64位操作系统环境下,Infobright提供了强大的分析性能和快速的数据加载能力。标题中的"infobright for windows 64 数据仓库"指的是...
Infobright是一款高效的数据仓库解决方案,专为大数据分析设计。这款产品以其优秀的性能、低存储成本和快速查询能力而闻名。在你提供的信息中,“infobright-4.0.7-0-x86_64-ice.rpm”是Infobright的一个特定版本,...
Infobright最近有部分工作涉及到了 Infobright 数据仓库,就浏览了一些相关的资料,感觉很受启发。下面写一些感想,如有谬误,还请指正。 简单的来讲,Infobright 主要有下面的一些优点: 1. TB 级的数据存储和...
infobright-4.0.7-0-x86_64-ice.rpm infobright社区版,本来就是开源的东西,还要资源分,没办法了,只能选最低2分, csdn禁止重复上传,于是采用了压缩包加密上传,zip解压,密码是2CcMBzP8,云盘分享:htt去ps://...
Infobright是一款高性能、列式存储的开源数据库系统,主要用于大数据分析和数据仓库应用。它在处理大量结构化数据时表现出色,尤其在读取密集型任务中,因其优化的查询性能而备受赞誉。Infobright的核心优势在于其...
Infobright是一款高效、开源的数据仓库系统,专为大规模数据集的分析而设计。RPM(Red Hat Package Manager)是Linux系统中广泛使用的软件包管理器,用于安装、升级、查询和卸载软件。在本例中,“infobright-rpm....
Infobright是一款高性能、列式存储的开源数据库系统,专为大数据分析而设计。这款数据库在处理大规模数据仓库时表现出色,尤其在读取密集型应用中,由于其列式存储方式,能实现快速的数据扫描和分析。Infobright的...
Infobright是一款高效的数据仓库解决方案,特别针对大数据分析和处理进行了优化。在Windows 32位平台上,Infobright提供了一种快速安装的途径,使得企业在处理海量数据时能够享受到其强大的性能。在这个"infobright ...
Infobright是一款高效的数据仓库系统,它以列式存储的方式设计,特别适合处理大量数据分析任务。列式存储的优势在于,对于查询操作,尤其是涉及多列的聚合查询,它能显著提高查询速度,因为只需读取所需列的数据,而...
Infobright是一款高效、开源的数据仓库系统,专为大规模数据集的分析而设计。RPM(Red Hat Package Manager)是Linux系统中广泛使用的软件包管理器,用于安装、升级、查询和卸载软件。在本例中,“infobright-rpm....