- 浏览: 90543 次
- 性别:
- 来自: 北京
最新评论
-
xiangzihehao:
非常感谢~
JFreechart V1.0.9 Guide(英文版) -
minn84:
...
一个老程序员的忠告:不要一辈子靠技术生存 -
小斌江:
非常非常非常的感谢楼主。。。
JFreechart V1.0.9 Guide(英文版) -
yutian8888:
谢谢你老兄!我找了很久,在你这里得到的解决!!
Java web 根据url下载文件IE出错,FF正常 -
liuwenbo200285:
学习了,面试的时候经常问这个问题,估计有的面试官也不知道如果不 ...
StringBuilder StringBuffer and "+"
ImportTask里面我们就实现了ftp下载日志文件,然后批量导入数据库,其实该task是一个线程的实现类,
该类就实现了sftp或ftp下载,然后再将这些文件导入数据库中,具体的是由csvreader来读取,然后则batchimport2db来导入数据库,读取就不在这写了不外是流读写,然后一行一行的读.
BatchImport2DB.java
至此,所有的下载啊,导入啊全部完成.还未完成的就是SqlServer存储过程,以及web界面的图表显示.下面文章我们只讲jfreechart的图表显示.不讲Sqlserver存储过程.
public class ImportTask implements Runnable { final static Logger logger = LoggerFactory.getLogger(ImportTask.class); private Element taskEle; private String taskName; /** * Construct for ImportTask.java. */ public ImportTask(Element ele ) { this.taskEle = ele; this.taskName = taskEle.getAttribute("name"); } protected void doTask(Date preDate) { try { //批量导数据 BatchImport2DB bidb = new BatchImport2DB(); //设置数据源,连接数据库 bidb.setDataSource( GloalDataUtil.getDataSource()); bidb.init(taskEle); //下载日志文件 DownloadFileLog dflog = new DownloadFileLog();//初始化下载日志的一些参数 dflog.init(taskEle); long logStart = System.currentTimeMillis(); //返加根据日期下载的日志文件名列表,downloadlogfile就是apache的软件实现的ftp下载 String[] arrFileName = dflog.downloadLogFile(preDate); long logEnd = System.currentTimeMillis(); logger.info(taskName+"查询符合条件的日志共用时(ms)[ " + (logEnd - logStart) + " ]"); for(String fileName: arrFileName){ // 调用BatchImport2DB.class long batchStart = System.currentTimeMillis(); ICSVReader csvReader = (ICSVReader) Class.forName(taskEle.getAttribute("csvReader")).newInstance(); String csvpattern = taskEle.getAttribute("csvpattern"); //批导入 if(csvReader.beginReader(fileName,csvpattern)) bidb.batchImport(csvReader); long batchCost = (System.currentTimeMillis()- batchStart); logger.info("将[ " + fileName + " ]导入数据库共用时[ " + (batchCost) + " ]ms"); } } catch (Exception e) { logger.error(e.toString(),e); } } public void run() { //only use for test // doTask( new Date(1216098921590l - 24 * 60 *60 *1000L)); //该任务是得到当前日期的前一天的日志. doTask( new Date(System.currentTimeMillis()- 24 * 60 *60 *1000L)); } }
该类就实现了sftp或ftp下载,然后再将这些文件导入数据库中,具体的是由csvreader来读取,然后则batchimport2db来导入数据库,读取就不在这写了不外是流读写,然后一行一行的读.
BatchImport2DB.java
public class BatchImport2DB { // 得到DB,连接数据库,操作sql private List<Field> fieldList = new ArrayList<Field>(); private String sql; private static int BATCH_SIZE = 100; protected static final Logger logger = LoggerFactory .getLogger(BatchImport2DB.class); /** * spring container invoke and the data source is setter IOC */ private JdbcTemplate jdbcTemplate;//spring最佳实践 public void setDataSource(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); } public void init(Element ele) { // 得到insertsql语句 Element sqlEle = (Element) ele.getElementsByTagName("sql").item(0); sql = sqlEle.getAttribute("insert"); BATCH_SIZE = Integer.parseInt(sqlEle.getAttribute("maxCommitNumber")); Element tabEle = (Element) XmlManager.querySingle("table", ele); NodeList nlc = tabEle.getElementsByTagName("column"); for (int i = 0; i < nlc.getLength(); i++) { Element nmEle = (Element) nlc.item(i); // 将字段名称加入list表中 String name = nmEle.getAttribute("name"); String type = nmEle.getAttribute("type"); int csvindex = Integer.parseInt(nmEle.getAttribute("csvindex")); String format = nmEle.getAttribute("format"); fieldList.add(new Field(name, type, csvindex, format)); } } /** * Method for batchImport 用spring jdbcTemplate来插入sql. * * @param csvReader */ public void batchImport(final ICSVReader csvReader) { // 得到sql clause InterruptibleBatchPreparedStatementSetter psset = new InterruptibleBatchPreparedStatementSetter() { public void setValues(PreparedStatement ps, int pos) throws SQLException { try { int leng = fieldList.size(); String[] arrvalue = null; do { arrvalue = csvReader.readLine(); if (!csvReader.lineIsNotNull()) { return; } } while (arrvalue.length < leng); // 处理结果数组 for (int i = 0; i < leng; i++) { Field f = fieldList.get(i); if ("datetime".equals(f.type)) { ps.setTimestamp(i + 1, StringUtil.parse2Timestamp( arrvalue[f.csvindex], f.format)); } else if ("int".equals(f.type)) { ps.setInt(i + 1, Integer .parseInt(arrvalue[f.csvindex])); } else if ("long".equals(f.type)) { ps.setLong(i + 1, Long .parseLong(arrvalue[f.csvindex])); } else if ("text".equals(f.type)) { ps.setString(i + 1, arrvalue[f.csvindex].substring( 0, 1)); } else { String content = arrvalue[f.csvindex]; if (content.length() > 100) { content = content.substring(0, 99); } ps.setString(i + 1, content); } } } catch (SQLException ex) { logger.error(ex.toString(), ex); throw ex; } catch (Exception ex) { logger.error(ex.toString(), ex); throw new SQLException(ex.toString()); } } public int getBatchSize() { return BATCH_SIZE; } // 判断批处理是否完成. public boolean isBatchExhausted(int pos) { return !csvReader.lineIsNotNull(); } }; do { jdbcTemplate.batchUpdate(sql, psset); } while (csvReader.lineIsNotNull()); } static class Field { String format; String name; String type; int csvindex; Field(String name, String type, int index, String format) { this.name = name; this.type = type; this.csvindex = index; this.format = format; } } }
至此,所有的下载啊,导入啊全部完成.还未完成的就是SqlServer存储过程,以及web界面的图表显示.下面文章我们只讲jfreechart的图表显示.不讲Sqlserver存储过程.
发表评论
-
last year log statistics source code download
2009-07-31 16:48 848只提供两天下载,下周一就失效!! -
学习Apache Mina
2009-05-12 14:50 1704Mina的几个重要接口: I ... -
JFreechart V1.0.9 Guide(英文版)
2008-12-31 09:48 3185本人在0day上发现了JFreechart V1.0.9的Gu ... -
Java web 根据url下载文件IE出错,FF正常
2008-12-26 12:39 1871本人在web开发中,导出csv文件时遇到这一问题的,如下 当用 ... -
日志统计平台3之Jfreechart显示篇
2008-12-19 16:15 1508jfreechart功能十分强大了,在我们平台中用到了柱图和曲 ... -
日志统计平台
2008-12-19 14:12 1440这是一个商用的项目,是给XX证券用的.其实现的功能是,将各个服 ... -
(随时添加更新)本人code中积累或总结
2008-11-25 09:43 12251 一定要注意资源使用以后要释放,比如数据库的连接,流的使用, ... -
StringBuilder StringBuffer and "+"
2008-10-16 17:20 2013String字符串是Java中最常用的数据结构. " ... -
再用Maven2
2008-09-24 16:35 1568上次用Maven只是别人搭建好的工程,我们使用,今天项目不多, ... -
今天公司培训Scrum有感
2008-09-23 22:24 2582据说Scrum是一种敏捷的灵活的软件管理过程.你可以用它来迭代 ... -
定时执行调度任务
2008-07-21 15:36 2184这里我们用JDK 5.0里的ScheduledExecutor ... -
jdbc 分页
2008-07-20 00:34 2994在网上看了好多的分页程序,有好多hibernate的或是jdb ... -
IntrospectorCleanupListener 简介
2008-05-22 19:12 3441org.springframework.web.util.In ... -
java 读取dbf文件
2008-04-11 13:52 6085先来定义dbf文件的格式,先来定义dbfheader,impo ... -
*.sql的导入与导出
2008-01-24 09:49 950导出:x:\mysql\bin\mysqldump --dat ... -
java程序打开指定的网址
2008-01-24 09:43 15892007-04-19 13:57:42 import j ... -
tomcat5.0.*迁移Tomcat5.5.*的问题:jsp页面显示空白
2008-01-24 09:39 32092007-05-09 12:51:19 本机环境:Win ... -
在Tomcat中添加支持3GP/MP4格式文件的下载
2008-01-24 09:37 13685近日在工作中遇到3gp和mp4格式的文件问题。我用Nokia3 ... -
MySQL常用命令
2008-01-24 09:35 11022007-06-13 20:37:22 1.连接M ... -
Core Java:java除法中保持小数点位数的两种方法
2008-01-24 09:31 6341Method One: (double)(Mat ...
相关推荐
了,因此有可能比其他日志统计工具统计的数字要低,来自公司内部的访问也可以通过IP 过 滤设置过滤掉(暂不提供)。 · 可以生成超过30 个以上的各种图表,并付带有多个3 维统计图.,并且支持导出pdf、excel 等各 式...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学...企业级电商网站的大数据统计分析平台源码+项目说明(以 Spark 框架为核心,对电商网站的日志进行离线和实时分析)...
本次的任务是统计出apache访问日志中访问次数最高的ip地址并统计访问次数。 任务 python apache日志分析 任务知识点 Apache日志 Python apache日志分析注意的地方 知识点: Apache日志 Apache日志 Apache Apache是...
Loggrove是对本地、远程日志文件进行 分页阅读、实时阅读、关键词匹配、统计、监控、钉钉告警、Highcharts图表展示 的 Web 平台服务,并包含 用户认证、LDAP认证、操作审计 等基础服务。
本课程重点构建ELK海量日志分析平台,包括Filebeat多数据源采集、打标记、多行异常信息整合,Logstash数据解析、过滤、清洗,ElasticSearch对数据进行存储、搜索以及分析,Kibana实现大数据分析和数据可视化。...
分析网站的访问情况时我们一般会借助Google/百度/CNZZ等方式嵌入JS做数据统计,但是当网站访问异常或者被攻击时我们需要在后台分析如Nginx的具体日志,而Nginx日志分割/GoAccess/Awstats都是相对简单的单节点解决...
基于JSP的网站流量统计系统在本人两个多月的努力下基本告一段落,本网站界面比较美观、友好,兼容性较好、使用较方便,同时也是一个能提供多样化功能的便捷平台。 在这几个月的时间里,自从零开始学习JSP语言,第一...
煤矿企业日志数据分析系统中,对数据的聚合统计,多数据源的数据关联是各种分析的基础操作。设计基于Hadoop的日志数据分析架构,并针对大数据关联准确率低的现象,将Bloom Filter算法与Map-Reduce处理架构融合。相比于...
TcStatInterface是自定义统计SDK,完全放弃第三方平台,让app拥有自主的数据统计功能,支持页面统计 自定义事件统计 APP启动退出统计,不同渠道统计。客户端SDK功能概述在使用统计服务前,开发者先要拿到本身APPID。...
为您提供Logstash日志管理系统下载,Logstash是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供Web接口用于查询和统计。Logstash现在是ElasticSearch家族...
低侵入: 基于日志文件进行统计,无需修改原程序 使用说明 2.1 下载工具包 log_monitor.tar.gz,并解压 2.2 之后进行参数配置,可以拷贝现有的,各个参数说明如下: ...
Perf4j则是通过对自定义监控范围进行日志记录,再经统计分析生成所需性能数据,Perf4j提供了对常用日志工具的扩展以方便与产品集成,它产生的数据可用于生成可视化的性能图表。在实际部署的生产环境能够以较低的风险...
Serlog是一款好用的服务器日志分析工具,软件回答了一些关键的营销问题, 还包括所有标准统计信息和报告,这些统计信息和报告是您希望从服务器日志分析器得到的:命中、会话、访问者、浏览器、平台、蜘蛛、带宽、...
项目概述 本项目来源于企业级电商网站的大数据统计分析平台, 该平台以 Spark 框架为核心, 对电商网站的日志进行离线和实时分析。 该大数据分析平台对电商网站的各种用户行为( 访问行为、购物行为、广告点击行为等...
5、系统统计功能,通道发送状况,通道图表统计,发送状态统计,用户组发送统计,用户发送统计,用户通道发送统计 6、系统日志,程序错误日志,短信发送服务日志 7、系统设置,菜单管理,平台菜单自定义管理设置,...
webjoker网站访客统计系统运行于php mysql平台,加入统计代码后,可实现网站访问页面、... webjoker网站访问统计系统已经过了多次修正,功能在趋于不断的优化完美中,关于系统的更新日志,请参见压缩包内的官方说明。
2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也...
角色管理 用户管理 日志管理 基础数据管理 文件管理 状态查看 修改密码 在线统计 角色用户管理 角色模块权限管理:可对页面和按钮的的权限同时进行控制 加油站基础数据维护 运维工作平台: 登记Case: Ajax自动提示 ...
利用真实TB 级数据集对多种 Hadoop 列存储格式及压缩算法进行性能测试,并对比Hive和Impala引擎日志扫描及统计查询效率,选用Gzip压缩的Parquet格式可将日志体积压缩80%,且将Impala查询性能提升至5倍。基于该平台已...
同时也具有充值、日志查询、计费管理等功能 3 终端用户功能 终端发送短信,同时可以查询发送短息历史数据。可以统计或者查询目前发送的费用情况 4 发送短信服务功能 无论是终端客户、代理商还是客户服务人员,...