http://www.muxuanli.com/lmx/
应用场景:统计每日会员注册走势【MongoDB-->MySQL】
从MongoDB读取注册用户的信息,处理,写入MySQL对应表中,用于统计注册的情况!!!
MySQL表 t_member_aggregation
CREATE TABLE `t_member_aggregation` (
`year` INT(11) NOT NULL COMMENT '年份',
`month` INT(11) NOT NULL COMMENT '月份',
`day` INT(11) NOT NULL COMMENT '日期',
`amount` BIGINT(20) NULL COMMENT '关注人数',
`aggregation_date` DATETIME NOT NULL,
PRIMARY KEY (`year`,`month`,`day`))
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
字段: year month day amount aggregation_date
year month day 做主键, 同一天注册的 amount+1, aggregation_date纪录上一次统计的时间,每次统计的时间为 aggregation_date 到 系统当前时间。
INSERT INTO `t_member_aggregation` (`year`, `month`, `day`, `amount`, `aggregation_date`) VALUES (?,?,?,?,now()) ON DUPLICATE KEY UPDATE `amount` = `amount` + 1, `aggregation_date` = now();
<!-- Member Data : from Mongo to MySQL 关注用户统计 -->
<bean id="memberQuery" class="com.newjetsoft.genen.batch.util.QueryFactory">
<property name="tableName" value="t_member_aggregation"></property>
<property name="jdbcTemplateAggregation" ref="jdbcTemplateAggregation"></property>
</bean>
<bean id="memberInfoResultItemReader"
class="org.springframework.batch.item.data.MongoItemReader"
scope="step">
<property name="template" ref="mongoUicTemplate"/>
<property name="collection" value="Member"/>
<property name="targetType" value="com.newjetsoft.genen.batch.aggregation.member.MemberInfoResult" />
<property name="query" ref="memberQuery"/>
<property name="sort">
<util:map id="sort">
<entry key="id" value="ASC"/>
</util:map>
</property>
</bean>
<bean id="memberInfoResultItemProcessor"
class="com.newjetsoft.genen.batch.aggregation.member.MemberInfoResultItemProcessor" />
<bean id="memberInfoResultItemWriter"
class="org.springframework.batch.item.database.JdbcBatchItemWriter"
scope="step">
<property name="dataSource" ref="dataSourceAggregation"/>
<property name="sql">
<value>
<![CDATA[
INSERT INTO `t_member_aggregation` (`year`, `month`, `day`, `amount`, `aggregation_date`)
VALUES (?,?,?,?,now()) ON DUPLICATE KEY UPDATE `amount` = `amount` + 1, `aggregation_date` = now();
]]>
</value>
</property>
<property name="ItemPreparedStatementSetter">
<bean class="com.newjetsoft.genen.batch.aggregation.member.UpdateMemberInfoPreparedStatementSetter"/>
</property>
</bean>
链接:
https://pan.baidu.com/s/1gfLxV0n
分享到:
相关推荐
在这个“quartz_springbatch_dynamic”项目中,我们将看到如何将这两个强大的工具结合起来,以实现动态集群环境中的定时任务执行,并使用MySQL作为数据存储。 Quartz是一个开源的作业调度框架,允许开发者创建、...
6. **对 Spring Boot 的更好支持**:随着 Spring Boot 的广泛使用,Spring Batch 4.0.0 版本与 Spring Boot 集成得更加紧密,简化了配置过程,并提供了更多开箱即用的功能。 7. **性能提升**:在 4.0.0 版本中,...
在给定的"Spring Batch 示例程序"中,我们可以深入探讨这个框架的核心概念和在实际应用中的使用方式。该示例程序采用的是Spring 3作为基础框架,以及Spring Batch 2.2.7版本,这两个组件都是Spring生态系统的重要...
本实例代码将帮助你理解和运用Spring Batch的基本概念和功能。 在Spring Batch中,批处理作业通常由四个核心组件构成:Job、Step、Tasklet和Chunk。下面我们将详细解释这些组件及其作用。 1. **Job**: Job 是...
这个"Spring Batch学习demo项目源码"是针对Spring Batch进行学习实践的一个实例,旨在帮助开发者了解并掌握如何在实际应用中使用Spring Batch。 在源码中,`batch-xml`文件可能是配置文件,通常在Spring Batch项目...
在本文中,我们将深入探讨Spring Batch的基本概念、核心组件以及如何在实际项目中应用它。 1. **基本概念** - **作业(Job)**:在Spring Batch中,作业是执行批处理任务的顶级概念。它由一系列步骤组成,可以有...
本案例集中展示了SpringBatch在处理CSV、XML以及自定义长度数据格式时的成功应用。 1. **CSV处理**: CSV(Comma Separated Values)文件是最常见的数据交换格式之一,适用于简单的数据存储。SpringBatch提供了`...
在这个"Spring+Batch+Learning实例"中,我们可以深入理解Spring Batch的核心概念、配置、运行机制以及如何在实际项目中应用它。 首先,Spring Batch 提供了事务管理、错误处理、日志记录等关键功能,使得开发者可以...
这个"spring batch demo"提供了使用Spring Batch实现批处理操作的实例,帮助我们了解如何有效地利用该框架。 Spring Batch 提供了以下核心功能: 1. **读取数据**:Spring Batch 提供多种`ItemReader`接口的实现,...
8. **元数据存储**:Spring Batch 使用数据库存储作业和步骤的元数据,这使得作业可以在不同时间点恢复,或者在多个实例之间共享状态。 9. **自定义行为**:Spring Batch 是高度可扩展的,允许开发者自定义...
SpringBatch 是一个由 Spring 社区开发的轻量级、全面的批处理框架,它为构建强大、可靠的批处理应用程序提供了必要的工具和组件。Spring Batch 基于 Spring Framework,因此具备了 Spring 提供的生产力、面向 POJO ...
通过上述介绍,我们可以看出Spring Batch是一个强大且灵活的批处理框架,它为企业级应用提供了解决大量数据处理问题的有效工具。结合Spring生态的其他组件,如Spring Integration、Spring Data等,可以构建出更加...
《Pro Spring Batch》一书深入探讨了Java Spring Batch框架的核心概念与实际应用,为开发者提供了全面的批处理技术指南。本书由Apress出版,旨在帮助读者掌握Spring Batch框架的精髓,提升在批量数据处理领域的技能...
Spring Batch 是一个强大的批量处理框架,旨在简化开发大型批量数据处理应用的过程。该框架提供了一种灵活且可扩展的方式来构建和管理复杂的批量作业。Spring Batch 2.1.8 是该系列的一个重要版本,发布于 2011 年 5...
SpringBatch是一个轻量级、全面的批处理框架,它是Spring框架的一部分,专注于提供企业级的批处理能力。SpringBatch的核心理念是提供一个可扩展的架构,支持处理大量数据时的性能和复杂性,无论数据来自何种数据源。...
11. **实战案例**:提供真实世界的应用场景,展示如何将Spring Batch应用于实际的批处理问题,如数据迁移、报告生成等。 12. **最佳实践**:分享开发和部署Spring Batch应用的最佳实践和技巧,以优化性能和可维护性...
Spring Batch是Spring框架的一个重要组成部分,专注于提供一个健壮、可扩展且易于使用的批处理应用解决方案。本文档将深入探讨Spring Batch的架构、功能以及如何配置和运行批处理作业,为开发人员提供全面的理解与...
一个SpringBatch的入门案例,SpringBatch是spring体系下的一个轻量级的批处理框架,使用简单方便,是非常优秀的一个批处理框架。如果你的工作中涉及到了批处理作业,可以考虑使用SpringBatch框架,本案例有详细的...
spring batch3.x中文文档:http://www.kailing.pub/SpringBatchReference spring batch官方入门实例:https://projects.spring.io/spring-batch/ 简单的任务操作实现,当前项目只是一个demo,我也是初学,目前启动...
- **PlatformTransactionManager**:管理事务,Spring Batch 在默认情况下使用它来控制 Step 内的事务。 - **ItemStream**: 接口定义了 ItemReader 和 ItemWriter 的打开、关闭、刷新方法,用于处理资源的生命周期...