当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

IteratorX

极简的 JDBC/File 读取器
授权协议 Apache-2.0
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 邓正真
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

IteratorX 是一个极简主义的 jdbc/file reader。

参见:

maven:https://mvnrepository.com/artifact/io.iteratorx/iteratorx

使用:

1. Reader: JdbcReader, FileReader

超简单,从 jdbc 或 file 中读取数据到 JSONObject 中。

1.1. JdbcReader:读取 jdbc

  // create jdbc reader
  final JdbcReader jdbcReader = new JdbcReader(
      new JdbcDataSourceBuilder().setUrl("jdbc:postgresql://10.23.112.2:3333/dbname")
          .setUser("username").setPassword("password").build());
  
  // fetch by iterable
  for (final JSONObject item : jdbcReader.read("select * from tablename")) {
    System.err.println(item);
  }
  
  // fetch all into one collection
  final Collection items = jdbcReader.readAll("select * from tablename where type = ?", param);
  for (final JSONObject item : items) {
    System.err.println(item);
  }

1.2. FileReader:读取 file

  // create file reader
  final FileReader fileReader = new FileReader();

  // fetch by iterable
  for (final JSONObject item : fileReader.read(new File("data.json"), "utf-8")) {
    System.err.println(item);
  }

  // fetch all into one collection
  final Collection items = fileReader.readAll(new File("data.json"), "utf-8");
  for (final JSONObject item : items) {
    System.err.println(item);
  }

2. Parallels: Threads, Flink, RxJava

简单易用的 多线程处理。

2.1. Threads: 使用 ThreadPool 并行处理

  // process each item parallelly using thread pool
  Threads.from(jdbcReader.read("select * from tablename")).forEach(item -> {
    System.err.println(item);
  });
  
  // process batch data parallelly
  Threads.from(jdbcReader.read("select * from tablename")).forBatch(items -> {
    for (final JSONObject item : items) {
      System.err.println(item);
    }
  });

2.2. Flink: 使用 Flink 并行处理

  // process each item parallelly using Flink engine
  Flink.from(jdbcReader.read("select * from tablename")).forEach(item -> {
    System.err.println(item);
  });
  
  // process batch data parallelly
  Flink.from(jdbcReader.read("select * from tablename")).forBatch(items -> {
    for (final JSONObject item : items) {
      System.err.println(item);
    }
  });
  
  // use DataSet directly to enable all Flink power
  Flink.from(jdbcReader.read("select * from tablename")).dataSet().distinct().count();
  

2.3. RxJava: 使用 RxJava 并行处理

  // process each item parallely using RxJava engine
  RxJava.from(jdbcReader.read("select * from tablename")).forEach(item -> {
    System.err.println(item);
  });
  
  // process batch data parallely
  RxJava.from(jdbcReader.read("select * from tablename")).forBatch(items -> {
    for (final JSONObject item : items) {
      System.err.println(item);
    }
  });
  
  // use Observable directly
  RxJava.from(jdbcReader.read("select * from tablename")).observable().distinct().count();

Bug:使用 RxJava 的时候,程序结束了停不下来,谁能帮忙解决吗?

参见:

maven:https://mvnrepository.com/artifact/io.iteratorx/iteratorx

 相关资料
  • 分析网站访问日志应该是一个运维工程师最常见的工作了。所以我们先学习一下怎么用 logstash 来处理日志文件。 Logstash 使用一个名叫 FileWatch 的 Ruby Gem 库来监听文件变化。这个库支持 glob 展开文件路径,而且会记录一个叫 .sincedb 的数据库文件来跟踪被监听的日志文件的当前读取位置。所以,不要担心 logstash 会漏过你的数据。 sincedb 文件

  • 我们有几个微服务在EKS的帮助下运行在AWS中。到目前为止,数据存储在Oracle数据库中。我们在微服务和Oracle DB之间有一个Kafka话题。 现在我们计划转移到AWS Aurora db并将数据库也放在云中。到目前为止,我们的微服务(在spring boot中实现)没有任何云特定的代码,这意味着AWS SDK集成。所以我们的代码库是云不可知的,我们计划保持这种方式。 现在我们计划编写一个

  • 问题内容: 我正在开发一个JavaScript应用程序,该应用程序可以从Web服务器(通过http)运行,也可以从文件系统(在file:// URL上)运行。 作为此代码的一部分,我需要使用XMLHttpRequest在与页面相同的目录中以及页面的子目录中加载文件。 在Web服务器上执行时,此代码可以正常工作(“通过”),而在文件系统中运行时,此代码在Internet Explorer 8中则无法

  • Kotlin是JetBrains团队开发的一门现代的、注重工程实用性的静态类型编程语,JetBrains团队以开发了世界上最好用的IDE而著称。

  • hyperf/database 功能十分强大,但也不可否认效率上确实些许不足。这里提供一个极简的 hyperf/db 组件,支持 PDO 和 Swoole Mysql。 安装 composer require hyperf/db 发布组件配置 该组件的配置文件位于 config/autoload/db.php,如果文件不存在,可通过下面的命令来将配置文件发布到骨架去: php bin/hyper

  • 1. 概述 2. 部署单机 TC Server 3. 部署集群 TC Server 4. 接入 Java 应用 1. 概述 Seata 是阿里开源的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。 1.1 四种事务模式 Seata 目标打造一站式的分布事务的解决方案,最终会提供四种事务模式: AT 模式:参见《Seata AT 模式》文档 TCC 模式:参见《Seata