通过本地上传工具把CSV文件导入到百会报表

百会提供了强大的报表上传工具,提供了在win和linux下面批量上传数据,支持定时传输,以下是实践说明
需求:每天从特定数据库提取数据到百会报表,并在报表中分析数据
环境:LAMP,并且特定数据库数据敏感,不可以直接对接百会报表
分析:根据需求,每天等于批量生成当天数据,等于是按天的增量备份数据
方案:
1,建立一个数据库连接,读取该备份数据库数据
2,通过php文件机制,把读取的数据生成CSV文件
3,生成的文件通过uploadtool上传百会报表
4,在linux建立定时任务,执行生成文件,上传文件任务
以下详细说明
1,在php编写脚本,一个读建立据库连接,一个取数数据并形成array
$host = "localhost"; //数据库服务器
$user = "test"; //数据库用户名
$password = " test "; //数据库密码
$db = "user"; //数据库名称

2,连接成功后,读取数据
while($value = mysql_fetch_array($query,MYSQL_ASSOC)){
 $result[] = $value;
}
然后生成文件
$fp = fopen('file.csv', 'w');
$head_title=array('id','name');
fputcsv($fp,$head_title);//生成报表头,
foreach ($param as $line) {
 fputcsv($fp, $line);
}
fclose($fp);
3,配置和部署百会报表上传工具,具体说明参考
这个配置好以后,基本在本机测试环境(windows+wamp+uploadtool)很快就成功了
但是注意,在linux环境下,涉及到代码执行权限,lib目录下面mysql-connector-java-3.0.17-ga-bin版本,以及参数设置,都要细心按照要求填写,确保正确,因为我是增量备份,使用了APPEND方式进行追加数据模式

配置好以后却不能运行,多次报错,提示javasourse找不到,后来把对应的jre目录权限改为可读,依然没有反应,经过仔细分析,是bin下面CSVUploadConsole.sh文件执行时候,必须在后面追加参数,类似

系统会提示文件上载成功,至此,成功曙光出现一半
4,写shell脚本定时执行,第一个是执行php生成文件脚本

但是笔者采用了另外的方式
1)Linux下必须编译安装PHP解释器,在安装完成后,要将安装目录下${PHP}/bin/php 文件复制到
/usr/bin/下,并使用chmod +x ./php 为其添加可执行权限,ok了,
然后在linux命令行下输入:php -q *.php
执行一个php程序,以验证是否解释器工作正常
2)发布php文件:将编写好的php程序发布到apache的发布目录:如:/var/www/html下
加权限:chmod +x /var/www/html/*.php
3)创建定时任务:
(-1)启动linux定时服务:service crond start
(-2)查看当前定时任务: crontab -l
(-3)添加新定时任务:crontab -e
   在打开的文件中编辑:
   */2 * * * * /usr/bin/php -f  /var/www/html/*.php
   表示每2分钟执行一次/var/www/html/*.php文件
   (注: -f 很重要,不能修改成 -q )
经过测试,php解析器能良好解析我的读库生成文件脚本,并实际生成该文件
最后就是设定上传路径和参数,参考说明3
至此,一个在php中读取的第三方库,经过程序和报表的结合,实现了客户预期
需要示例代码请联系qing.xia@pcstars.com夏生
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值