CN103970792A - 一种基于索引进行文件比对的方法和装置 - Google Patents
一种基于索引进行文件比对的方法和装置 Download PDFInfo
- Publication number
- CN103970792A CN103970792A CN201310042343.XA CN201310042343A CN103970792A CN 103970792 A CN103970792 A CN 103970792A CN 201310042343 A CN201310042343 A CN 201310042343A CN 103970792 A CN103970792 A CN 103970792A
- Authority
- CN
- China
- Prior art keywords
- file
- major key
- record
- index
- line number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于索引进行文件比对的方法和装置,该文件由多个记录组成。该方法包括以下步骤:获取第一文件和第二文件中的记录的主键,根据获取的主键,为所述第一文件和第二文件中的记录建立索引,按照索引,匹配所述第一文件和第二文件中的记录的主键,将主键匹配的记录进行比对,并且将比对结果写入结果文件。
Description
技术领域
本发明涉及文件比对,并且尤其涉及基于索引进行文件比对的方法和装置。
背景技术
目前,在进行文件比对通常会读取整个文件,将整个文件装入内存逐个记录或逐行进行比较,需要对双边文件进行两次遍历,耗时较长,占用系统资源较大,效率较低。而且,现有技术中的文件比对方法不能对文件中的记录进行排序,在处理记录乱序文件的时候无法有效找出异同记录,对于两个记录相同,但是记录顺序不同的文件无法进行有效比较,甚至出现错误的比对结果。
发明内容
根据本发明的一个目的,公开一种基于索引进行文件比对的方法,该文件由多个记录组成,该方法包括以下步骤:
获取第一文件和第二文件中的记录的主键,
根据获取的主键,为所述第一文件和第二文件中的记录建立索引,
按照索引,匹配所述第一文件和第二文件中的记录的主键,
将主键匹配的记录进行比对,并且将比对结果写入结果文件。
优选地,将主键不匹配的索引信息写入结果文件。
优选地,根据预置的主键解析规则从第一文件和第二文件中的记录获取主键。
优选地,所述索引还包括与获取的主键对应的记录在文件中的行号。
优选地,根据匹配的主键获取记录的行号,根据行号定位文件中的该记录。
根据本发明的另一个目的,公开一种基于索引进行文件比对的装置,该文件由多个记录组成,该装置包括:
文件比对器和索引生成器,其中,
索引生成器被配置成:
获取第一文件和第二文件中的记录的主键,
根据获取的主键,为所述第一文件和第二文件中的记录建立索引,
文件比对器被配置成:
按照索引,匹配所述第一文件和第二文件中的记录的主键,
将主键匹配的记录进行比对,并且将比对结果写入结果文件。
优选地,索引生成器进一步被配置成:
将主键不匹配的索引信息写入结果文件。
优选地,索引生成器进一步被配置成:
根据预置的主键解析规则从第一文件和第二文件中的记录获取主键。
优选地,所述索引还包括与获取的主键对应的记录在文件中的行号。
优选地,文件比对器进一步被配置成:
根据匹配的主键获取记录的行号,根据行号定位文件中的该记录。
本发明通过对文件进行预处理,建立索引,然后再按照索引比对文件。本发明的一个优势在于可以在文件比对之前对文件中的记录进行排序,实现对于记录乱序的文件的比对。本发明的另一个优势在于是能够对文件进行预处理,找出单边不存在(双方不匹配)的记录不对其进行比对,节约了系统资源也节约了重复比对的时间成本。本发明的另一个优势在于按照索引进行排序避免按照行内容进行排序,节省了内存空间,缩短了排序时间,提高了比对效率。
附图说明
在参照附图阅读了本发明的具体实施方式以后,本领域技术人员将会更清楚地了解本发明的各个方面。本领域技术人员应当理解的是,这些附图仅仅用于配合具体实施方式说明本发明的技术方案,而并非意在对本发明的保护范围构成限制。其中,
图1是根据本发明实施例的基于索引进行文件比对的方法的示意图。
图2是根据本发明实施例的索引生成示例。
图3是根据本发明实施例的基于索引进行文件比对的方法的步骤示意图。
具体实施方式
下面参照附图,对本发明的具体实施方式作进一步的详细描述。在下面的描述中,为了解释的目的,陈述许多具体细节以便提供对实施例的一个或多个方面的透彻理解。然而,对于本领域技术人员可以显而易见的是,可以这些具体细节的较少程度来实践各实施例的一个或多个方面。因此下面的描述不被视为局限性的,而是通过所附权利要求来限定保护范围。
图1是根据本发明实施例的基于索引进行文件比对的方法的示意图。如图1所示,基于索引进行文件比对总体上可以分为两个步骤,即文件比对和索引生成。在索引生成的步骤中,首先分别从文件1和文件2获取主键,这里的主键对应于文件1和文件2中的记录。可以分别对文件1的主键和文件2的主键排序,然后生成索引。
如图2所示,图2是根据本发明实施例的一个索引生成示例。从图中可以看出,文件1的主键和文件2的主键根据字母顺序被排序。按照索引,匹配文件1和文件2中的记录的主键,结果前3条记录匹配成功,文件1和文件2中的最后一条记录匹配失败。再参考图1,在一个示例中,在索引生成之后,可以再生成主键匹配的索引。主键匹配的索引不包括在文件1和文件2中单边存在的记录的主键而仅包括主键匹配的记录的索引。可以理解,在文件比对过程中,也可以直接参考初始生成的索引进行文件的比对。
进一步参考图2,生成的索引结构还可以包括与主键对应的记录的行号。由此,在文件比对的步骤中,可以通过参考索引中的主键所对应的记录的行号,快速定位文件中的记录,从而迅速读取记录进行比对。
返回参考图1,在文件比对过程中,将主键匹配的记录进行比对,并且将比对结果写入结果文件。而在索引生成的步骤,可以将主键不匹配的索引信息写入结果文件。
图3是根据本发明实施例的基于索引进行文件比对的方法的步骤示意图。该方法包括以下步骤:
S1:获取第一文件和第二文件中的记录的主键。在该步骤中,可以根据预置的主键解析规则从第一文件和第二文件中的记录获取主键。可以通过参数配置的方式定义主键解析规则。例如,可以选择一条记录中的多个字段的组合作为主键,也可以选择记录中特殊字符前后的字段作为主键,或者还可以根据文件中记录的格式和分隔符来选择主键。
S2:根据获取的主键,为所述第一文件和第二文件中的记录建立索引。在该步骤中,所述索引还可以包括与获取的主键对应的记录在文件中的行号。根据匹配的主键获取记录的行号,可以根据行号定位文件中的记录。
S3:按照索引,匹配所述第一文件和第二文件中的记录的主键。作为示例,可以将匹配成功的主键的索引信息(例如,主键、行号、排序信息)保留在内存中作为上文所述的主键匹配的索引,以及将匹配不成功的主键的索引信息从内存中删除。
S4:将主键匹配的记录进行比对,并且将比对结果写入结果文件。
以下描述根据本发明实施例的一种基于索引进行文件比对的装置,该文件由多个记录组成,该装置包括:文件比对器和索引生成器,其中,索引生成器被配置成:获取第一文件和第二文件中的记录的主键,根据获取的主键,为所述第一文件和第二文件中的记录建立索引。文件比对器被配置成:按照索引,匹配所述第一文件和第二文件中的记录的主键,将主键匹配的记录进行比对,并且将比对结果写入结果文件。索引生成器可以进一步被配置成:将主键不匹配的索引信息写入结果文件。索引生成器可以进一步被配置成:根据预置的主键解析规则从第一文件和第二文件中的记录获取主键。所述索引还可以包括与获取的主键对应的记录在文件中的行号。文件比对器可以进一步被配置成:根据匹配的主键获取记录的行号,根据行号定位文件中的该记录。
通过以上实施方式的描述,本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。
Claims (10)
1. 一种基于索引进行文件比对的方法,该文件由多个记录组成,其特征在于,该方法包括以下步骤:
获取第一文件和第二文件中的记录的主键,
根据获取的主键,为所述第一文件和第二文件中的记录建立索引,
按照索引,匹配所述第一文件和第二文件中的记录的主键,
将主键匹配的记录进行比对,并且将比对结果写入结果文件。
2. 如权利要求1所述的方法,其特征在于,
将主键不匹配的索引信息写入结果文件。
3. 如权利要求1所述的方法,其特征在于,
根据预置的主键解析规则从第一文件和第二文件中的记录获取主键。
4. 如权利要求1所述的方法,其特征在于,
所述索引还包括与获取的主键对应的记录在文件中的行号。
5. 如权利要求4所述的方法,其特征在于,
根据匹配的主键获取记录的行号,根据行号定位文件中的该记录。
6. 一种基于索引进行文件比对的装置,该文件由多个记录组成,其特征在于,该装置包括:
文件比对器和索引生成器,其中,
索引生成器被配置成:
获取第一文件和第二文件中的记录的主键,
根据获取的主键,为所述第一文件和第二文件中的记录建立索引,
文件比对器被配置成:
按照索引,匹配所述第一文件和第二文件中的记录的主键,
将主键匹配的记录进行比对,并且将比对结果写入结果文件。
7. 如权利要求6所述的装置,其特征在于,
索引生成器进一步被配置成:
将主键不匹配的索引信息写入结果文件。
8. 如权利要求6所述的装置,其特征在于,
索引生成器进一步被配置成:
根据预置的主键解析规则从第一文件和第二文件中的记录获取主键。
9. 如权利要求6所述的装置,其特征在于,
所述索引还包括与获取的主键对应的记录在文件中的行号。
10. 如权利要求9所述的装置,其特征在于,
文件比对器进一步被配置成:
根据匹配的主键获取记录的行号,根据行号定位文件中的该记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310042343.XA CN103970792A (zh) | 2013-02-04 | 2013-02-04 | 一种基于索引进行文件比对的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310042343.XA CN103970792A (zh) | 2013-02-04 | 2013-02-04 | 一种基于索引进行文件比对的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103970792A true CN103970792A (zh) | 2014-08-06 |
Family
ID=51240304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310042343.XA Pending CN103970792A (zh) | 2013-02-04 | 2013-02-04 | 一种基于索引进行文件比对的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103970792A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808783A (zh) * | 2016-03-31 | 2016-07-27 | 中国互联网络信息中心 | 一种不同域名格式的大文件数据差异性分析方法 |
CN113778510A (zh) * | 2021-08-17 | 2021-12-10 | 珠海西山居移动游戏科技有限公司 | 应用程序多版本维护方法、装置及可读存储介质 |
US11670424B2 (en) | 2020-09-24 | 2023-06-06 | International Business Machines Corporation | Evaluation of reduction of disease risk and treatment decision |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1858735A (zh) * | 2005-12-30 | 2006-11-08 | 华为技术有限公司 | 一种海量数据的处理方法 |
CN1963807A (zh) * | 2005-11-11 | 2007-05-16 | 威知资讯股份有限公司 | 相似文件的自动侦测方法 |
US20070112748A1 (en) * | 2005-11-17 | 2007-05-17 | International Business Machines Corporation | System and method for using text analytics to identify a set of related documents from a source document |
CN101236554A (zh) * | 2007-11-29 | 2008-08-06 | 中兴通讯股份有限公司 | 一种数据库海量数据比对的方法 |
-
2013
- 2013-02-04 CN CN201310042343.XA patent/CN103970792A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1963807A (zh) * | 2005-11-11 | 2007-05-16 | 威知资讯股份有限公司 | 相似文件的自动侦测方法 |
US20070112748A1 (en) * | 2005-11-17 | 2007-05-17 | International Business Machines Corporation | System and method for using text analytics to identify a set of related documents from a source document |
CN1858735A (zh) * | 2005-12-30 | 2006-11-08 | 华为技术有限公司 | 一种海量数据的处理方法 |
CN101236554A (zh) * | 2007-11-29 | 2008-08-06 | 中兴通讯股份有限公司 | 一种数据库海量数据比对的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808783A (zh) * | 2016-03-31 | 2016-07-27 | 中国互联网络信息中心 | 一种不同域名格式的大文件数据差异性分析方法 |
CN105808783B (zh) * | 2016-03-31 | 2019-08-20 | 中国互联网络信息中心 | 一种不同域名格式的大文件数据差异性分析方法 |
US11670424B2 (en) | 2020-09-24 | 2023-06-06 | International Business Machines Corporation | Evaluation of reduction of disease risk and treatment decision |
CN113778510A (zh) * | 2021-08-17 | 2021-12-10 | 珠海西山居移动游戏科技有限公司 | 应用程序多版本维护方法、装置及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034809B (zh) | 区块链的生成方法、装置、区块链节点及存储介质 | |
CN110781231B (zh) | 基于数据库的批量导入方法、装置、设备及存储介质 | |
US11163744B2 (en) | Test data generation and scale up for database testing using unique common factor sequencing | |
CN107807982B (zh) | 一种异构数据库的一致性校验方法及装置 | |
CN103279532B (zh) | 多集合元素去重并标识所属集合的过滤系统及其方法 | |
US9619492B2 (en) | Data migration | |
CN103703467A (zh) | 存储数据的方法和装置 | |
CN104794123A (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
CN105607960A (zh) | 文件系统目录树修复方法和装置 | |
CN106649602B (zh) | 业务对象数据处理方法、装置和服务器 | |
WO2014021978A4 (en) | Aggregating data in a mediation system | |
CN106469152A (zh) | 一种基于etl的文件处理方法及系统 | |
CN104298736A (zh) | 数据集合连接方法、装置及数据库系统 | |
CN103377123B (zh) | 一种网页代码自动化测试方法及装置 | |
CN106326222A (zh) | 一种数据处理方法和装置 | |
Haj Rachid et al. | A practical and scalable tool to find overlaps between sequences | |
CN103970792A (zh) | 一种基于索引进行文件比对的方法和装置 | |
CN112199935A (zh) | 数据的比对方法、装置、电子设备及计算机可读存储介质 | |
CN104090995A (zh) | 一种ABAQUS轮胎模型中rebar单元网格的自动生成方法 | |
CN112711649A (zh) | 一种数据库多字段匹配方法、装置、设备及存储介质 | |
CN104298570A (zh) | 数据处理方法和装置 | |
CN103761298A (zh) | 一种基于分布式架构的实体匹配方法 | |
CN104598485A (zh) | 处理数据库表的方法和设备 | |
CN111221967A (zh) | 一种基于区块链架构的语言数据分类存储系统 | |
CN107315806B (zh) | 一种基于文件系统的嵌入式存储方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140806 |
|
RJ01 | Rejection of invention patent application after publication |