`
chenhua_1984
  • 浏览: 1254504 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

一种表格数据比对的方法

    博客分类:
  • java
阅读更多

     假设有连个库,一个是生产库,一个是备份库,在一个特定的时间定,比较备份库与生产库的数据是否一致,用Java实现怎么样做效率比较高?

     在单进程的情况下,原来做过这样的设计:利用conCurrentHashMap来实现比对。

 

    一个线程负责从A库抽取数据,每行数据构造成一个Hash对,Key采用:主键+列相加的Hashcode,value采用key来做,线程B负责从B库抽取数据,每行数据构造成一个Hash对,Key采用:主键+列相加的Hashcode,value采用key来做,同时,B线程抽取出来的数据首先与HashMap A中的数据进行比对,假如在A容器中存在,说明这条记录两个库中相同,那么A的Map中可以remove 这条记录,B可以直接丢弃这条记录,不要放在conCurrentHashMap B中;假如在A中不存在,那么A则数据不变保留,B则放入自己的HashMap B中,为了减少数据在Hash容器中的堆叠量,可以设置线程的优先级A为最高,也可以让B延迟启动。

  

	key = builderKey.toString() + builderColumn.toString().hashCode();
				if (Main.hashMapA1.get(key) != null) {
					// System.out.println("removeA1:" + key);
					Main.hashMapA1.remove(key);
				} else {
					// System.out.println("B1:" + key);
					Main.hashMapTempB.put(key, builderKey.toString());
				}

 

    当A从表格中把数据抽取完成后,B可能还没有完成,那么需要等待两个线程都处理完成之后,才能进行下一轮操作

  

     由于受环境的限制,两边的数据存放的顺序和取出来的速度不一定就按预想的那样执行,所以,当两个线程都抽取完成后,还需要对两个Map进行一次比对,相同的则Remove,不同的保留。

 

     比对结束后,这个时候Map A里面存的是B里面没有的, Map B里面存的是A里面没有的,当时最好的测试结果是240万条每分钟。

 

     注意在抽取过程中setFetchSize的设置,这个值默认好像是10条,设置的越大,executeQuery的时间就越长。     

分享到:
评论

相关推荐

    去年与今年数据对比Excel表格.zip

    4. **数据透视表**:对于更复杂的数据分析,数据透视表是一种强大的工具。它可以自动汇总、分析、探索和展示大量数据的不同视角,如对比去年与今年的类别销售情况。 5. **图表与图形**:通过柱状图、折线图、饼图等...

    数据对比宏工具

    数据对比宏工具是一种基于Microsoft Excel的应用程序,专为数据处理和分析而设计。宏是Excel中的VBA(Visual Basic for Applications)代码集合,用于自动化重复性任务,提高工作效率。在这个"数据对比宏工具"中,...

    易语言Excel数据对比修复程序源码

    易语言是一种中国本土开发的编程语言,其设计目标是降低编程难度,使得编程更加普及。 易语言的特点包括直观的中文语法、丰富的内置函数库以及面向对象的编程模型。通过使用易语言,开发者可以快速构建各种应用程序...

    数据比对软件

    Excel是一种广泛使用的电子表格工具,其内置了一些基本的比对功能,如查找和替换,但这些功能可能不足以满足复杂的数据分析需求。因此,专业数据比对软件应运而生,它们提供了更强大、更精确的比对算法,能够处理...

    企业管理数据表格

    在企业管理中,数据表格是一种非常重要的工具,用于组织、分析和决策支持。"企业管理数据表格"这个主题涵盖了大量的信息和应用领域,包括财务、人力资源、市场营销、供应链管理等多个方面。以下将详细介绍这些表格...

    CSV文件表格对比软件

    CSV文件表格对比软件是一种工具,专门用于比较两个CSV文件中的数据差异。CSV(Comma Separated Values)格式是一种常见的数据交换格式,广泛应用于数据分析、数据库导入导出等场景。这种格式简单明了,以逗号分隔每...

    推荐系统输入表格数据

    推荐系统是一种广泛应用于电商、音乐流媒体、视频平台等领域的个性化信息过滤技术,它通过分析用户的历史行为、兴趣偏好和上下文环境,为用户精准推荐可能感兴趣的内容或产品。在这个主题中,我们将深入探讨推荐系统...

    bbb.rar_数据比对

    "bbb.rar_数据比对"这个压缩包文件显然包含了一个用于执行这种任务的程序,它能够快速对比两张含有十位数的表格,找出其中数据不一致的部分。 首先,我们来理解“数据比对”这一概念。数据比对,也被称为数据匹配或...

    生成表格数据对应柱状图

    在数据分析和可视化领域,生成表格数据对应的柱状图是一种常用且直观的方法,它能帮助我们清晰地理解数据分布和比较不同类别的数值。本资源主要关注如何在HTML环境中结合表格和柱状图来呈现数据,并提供了"历年税收...

    jQuery分页动态数据表格插件.zip

    在IT行业中,jQuery分页动态数据表格插件是一种常见的网页组件,主要用于展示大量数据时提供良好的用户体验。这种插件能够有效地组织数据,使用户能够轻松地浏览和操作数据集,而无需一次性加载所有内容,从而提高了...

    数据对比通用免费程序2020版.rar

    本压缩包"数据对比通用免费程序2020版.rar"提供了一个专门针对Excel数据比对的解决方案,以下是关于这个程序的详细介绍和相关知识点: 首先,我们要理解数据比对的基本概念。数据比对,即对比两个数据集,找出其中...

    对比学习综述 详细介绍了对比学习的起源,发展,从CPC到MAE,从图像到文本SimCSE,再到表格数据Tabular

    对比学习是一种机器学习方法,它在无监督或自我监督的设置中通过区分不同的样本对来学习特征表示。这种技术在计算机视觉、自然语言处理和表格数据处理等领域有广泛的应用。对比学习的核心在于通过构建对比任务,使...

    实用的PPT数据表格模板.rar

    在商务报告、学术演讲或企业演示中,PPT(PowerPoint)是一种不可或缺的工具,用于清晰、有效地传达信息。一个精心设计的PPT数据表格模板能够帮助演讲者更直观地展示数据,提升观众的理解和记忆。本文将深入探讨如何...

    精美的PPT数据表格.rar

    数据表格是一种组织和呈现大量信息的有效方式,特别是在比较、分类或分析数据时。它们可以使复杂的统计数据变得易于理解,通过结构化的布局帮助观众快速抓住关键点。"表格.pptx"文件很可能包含了各种预设计的表格...

    Bom数据对比工具

    首先,Excel是一种广泛使用的电子表格工具,其强大的数据处理和分析功能使得它成为数据工作者的首选。在"描述"中提到,数据首先从Excel中提取,这可能涉及到读取、筛选、排序等操作。用户可能需要使用VBA(Visual ...

    excel数据比较软件

    标题提到的“excel数据比较软件”旨在解决这一问题,它可能是一款专门设计用于高效、准确地对比Excel文件的应用程序。与描述中提到的“比较大师”相比,该软件被赞誉为更易用且完全免费。这表明它在用户友好性和成本...

    xls数据比对

    在IT领域,"xls数据比对"是一种常见的工作任务,尤其在数据分析、财务审计或数据库管理中。XLS是Microsoft Excel的文件格式,用于存储电子表格数据。数据比对,顾名思义,就是将两份或多份数据进行比较,找出其中的...

    透射式烟度计比对结果的数据处理研究与分析.pdf

    综上所述,文章提出的是一种综合应用最小二乘法和不确定度评定来处理和分析透射式烟度计比对结果数据的方法。这种方法通过数学建模和数据修正,解决了由于不同实验室所使用的标准中性滤光片透射比不同而带来的参考值...

    uni-app table表格

    在uni-app框架中,`table`组件是一种用于展示数据的常用元素,尤其在处理列表或者表格数据时。uni-app是一个跨平台的前端开发框架,它允许开发者使用Vue.js语法编写代码,一次编写,多端运行,包括iOS、Android、H5...

    对比Excel,轻松学习Python数据分析数据集(新).zip

    Python的Pandas库是数据分析的核心,它提供了DataFrame对象,这是一种二维表格型数据结构,非常适合处理结构化的数据。DataFrame支持各种数据类型,包括数值、字符串和布尔值。通过Pandas,你可以轻松地筛选数据、...

Global site tag (gtag.js) - Google Analytics