3个不稳定版本
0.2.1 | 2024年4月2日 |
---|---|
0.2.0 | 2024年1月31日 |
0.1.5 | 2024年1月10日 |
0.1.1 |
|
0.1.0 |
|
#2 in #csv-reader
95 每月下载量
91KB
1.5K SLoC
Spring-Batch for Rust
Spring Batch for Rust提供了强大的灵活框架,用于开发批处理应用程序,解决高效且可靠地处理大规模数据任务的挑战。它为开发者提供了构建企业级批处理应用程序的全面工具包。
特性
特性 | 描述 |
---|---|
mongodb | 启用Mongodb数据库的读取器和写入器 |
rdbc-postgres | 启用Postgres数据库的rdbc读取器和写入器 |
rdbc-mysql | 启用Mysql和MariaDb数据库的rdbc读取器和写入器 |
rdbc-sqlite | 启用Sqlite数据库的rdbc读取器和写入器 |
json | 启用json读取器和写入器 |
csv | 启用csv读取器和写入器 |
fake | 启用fake读取器。用于生成假数据集 |
logger | 启用logger写入器。用于调试 |
路线图
- XML读取器和写入器
- 过滤项目
- Kafka读取器和写入器
- Pulsar读取器和写入器
- 重试/跳过策略
- 将执行数据保存到数据库
入门
确保在Cargo.toml上激活了合适的特性crate
[dependencies]
spring-batch-rs = { version = "<version>", features = ["<full|json|csv|fake|logger>"] }
然后在main.rs中
fn main() -> Result<(), BatchError> {
let csv = "year,make,model,description
1948,Porsche,356,Luxury sports car
1995,Peugeot,205,City car
2021,Mazda,CX-30,SUV Compact
1967,Ford,Mustang fastback 1967,American car";
let reader = CsvItemReaderBuilder::new()
.delimiter(b',')
.has_headers(true)
.from_reader(csv.as_bytes());
let processor = UpperCaseProcessor::default();
let writer = JsonItemWriterBuilder::new().from_path(temp_dir().join("cars.json"));
let step: Step<Car, Car> = StepBuilder::new()
.reader(&reader) // set csv reader
.writer(&writer) // set json writer
.processor(&processor) // set upper case processor
.chunk(2) // set commit interval
.skip_limit(2) // set fault tolerance
.build();
let job = JobBuilder::new().start(Box::new(&step)).build();
let result = job.run();
assert!(result.is_ok());
assert!(step.get_status() == StepStatus::Success);
Ok(())
}
示例
- 使用处理器从JSON文件生成CSV文件
- 具有容错性的从CSV字符串生成JSON文件
- 从假人生成JSON文件
- 从假人生成无标题的CSV文件
- 将记录插入Mysql数据库
- 记录Postgres数据库的记录
- 从MongoDb数据库读取记录
- 将记录写入MongoDb数据库
许可证
根据您的选择,许可为以下之一
- Apache许可证第2版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据Apache-2.0许可定义的您有意提交的任何贡献,均应以上述双许可方式授权,不附加任何额外条款或条件
依赖项
~4-23MB
~345K SLoC