通过本地上传工具把CSV文件导入到百会报表
生活随笔
收集整理的這篇文章主要介紹了
通过本地上传工具把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,配置和部署百會報表上傳工具,具體說明參考 http://reports.wiki.baihui.com/Upload-Tool.html 這個配置好以后,基本在本機測試環境(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夏生
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,配置和部署百會報表上傳工具,具體說明參考 http://reports.wiki.baihui.com/Upload-Tool.html 這個配置好以后,基本在本機測試環境(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夏生
總結
以上是生活随笔為你收集整理的通过本地上传工具把CSV文件导入到百会报表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 函数对称性常见公式_求一些函数对称性,周
- 下一篇: 董源烟岚重溪图——澄心堂纸本考证