当前位置: 代码迷 >> 综合 >> 集算器比较csv文件中数据差异_润乾软件|数据处理-数据计算引擎
  详细解决方案

集算器比较csv文件中数据差异_润乾软件|数据处理-数据计算引擎

热度:66   发布时间:2023-12-09 18:14:06.0

old.csvnew.csv的逻辑主键是userNamedate,需要分别找出新增的、删除的、修改的数据行。源文件如下:


可以看到new.csv中的第23行是新增的记录,第4行是修改的记录,old.csv中第3行是删除的记录。

集算器代码:


A1,B1:以逗号为分隔符读入文件。

A2,B2:将数据按照关键字排序。后面的merge函数要求数据有序。

A3:按关键字找到新增的记录。函数merge可进行多数据集归并,@d表示归并时找出差集。类似地还还有并集@u,交集@i。计算结果如下:


A4:按关键字找到删除的记录。计算结果如下:


A5:将关键字作为普通字段,找到修改过的记录。计算结果如下:


A6A5是中间计算结果,要计算更新的记录,还要在A6中计算A5和“新增”记录之间的差集。计算结果如下:


B6:将A6返回给JAVA或报表工具。

 

上述脚本已经完成了所有的数据处理工作,接下来通过JDBC将集算器脚本集成在JAVAJAVA代码如下:

//建立esProc jdbc连接

Class.forName("com.esproc.jdbc.InternalDriver");

con= DriverManager.getConnection("jdbc:esproc:local://");

//调用esProc,其中test是脚本文件名,可接收参数

st =(com.esproc.jdbc.InternalCStatement)con.prepareCall("call test()");

st.execute();//执行esProc存储过程

ResultSet set = st.getResultSet();//获得计算结果

 

如果要将多个数据集返回给JAVA,可以将B6的代码改为:result new,delete,update


润乾软件| 润乾集算器 | 润乾报表
  相关解决方案