It is important to understand that Rons Data Compare is built on the same core technology as Rons Data Edit. As a result, the techniques used by Rons Data Edit to identify duplicate rows and perform similar comparisons can be reused in Rons Data Compare to match and compare rows across two different documents.
Rons Data Edit can create in-place row indexes for these operations, and those same indexes, with minor modifications, are used by all row-matching functions in Rons Data Compare. This approach provides a solution that is flexible, fast, and memory-efficient.
How Compare Modes use Indexes
All compare modes use indexes, although the way those indexes are configured varies depending on the selected mode.
Keyed Compare Modes
When a "Match key - x" compare mode is selected and one or more key columns are defined, a row-matching index is built for both tables using the specified key columns. The remaining mapped columns are then used for row-level and cell-level comparisons.
Unless all mapped columns are included in the key, this is generally the fastest and most flexible way to compare two documents. It also allows Rons Data Compare to identify cell-level differences in mapped columns that are not part of the key.
Full Row Compare Modes
When a "Match full row" compare mode is selected, a row-matching index is built for both tables using all mapped columns.
Because every mapped column is part of the matching key, a row either matches completely or does not match at all. As a result, the comparison can identify matching and non-matching rows, but it cannot determine which individual cells are different.
Full Row with Partial Match
When a "Match full/partial row" compare mode is selected, a row-matching index is again built for both tables using all mapped columns. As with the full row compare mode, matching is performed at the row level, so individual cell differences cannot be detected.
However, this mode adds a second stage of comparison for rows that do not match exactly. It uses a technique called SimHash to identify rows that are potentially similar.
Rons Data Compare generates a SimHash signature from the combined contents of each row and uses the similarity between those signatures to identify potential partial matches. This approach is generally effective at finding visually or structurally similar rows, even when they are not exact matches.
While this mode often produces useful results, it should be used with care. Similarity matching is heuristic by nature, meaning that although the suggested matches are usually reasonable, they may not always correspond to the rows a user expects or intends to match.
What About Unmapped Columns
Both key-based and full-row matching operate only on mapped columns. But what happens to columns that are not mapped?
Unmapped columns are still included on both sides of the comparison and remain available for update operations. However, because they are not part of the column mapping, they are implicitly treated as additional columns and are not used when determining row matches.
Unmapped columns therefore have no effect on row matching. They remain available in the comparison view and can still be included in update operations after matching has been completed.
Related Information
Rons Data Compare