A computer-implemented method of performing a fuzzy join operation to join data elements from two or more datasets stored in at least one data storage system, the method including: determining candidate matches between objects in data elements from a first dataset and objects in data elements from a second dataset based on a variant relation between the objects in the data elements from the first dataset and objects in the data elements from the second dataset; evaluating respective data elements having respective objects determined as candidate matches to determine which candidate matches to keep as matches, the evaluating including a comparison of objects in the respective data elements other than the respective objects determined as candidate matches; and performing a fuzzy join operation of data elements from the first dataset with data elements from the second dataset by using the kept objects as keys for the first and second datasets, the joined data elements having respective objects kept as matches based on the evaluation of data elements; wherein the data elements are records, the objects are values of fields in the records, and wherein the fuzzy join operation includes: for each of one or more records in the first dataset, based on the keys, joining fields of that record with fields of a respective record from the second dataset based on the kept matches and creating a joined record; and wherein the result of the fuzzy join operation is a list of joined records, wherein each joined record includes the field representing the key for the first and second records, the remaining fields of the first record and the remaining fields of the second record. determining candidate matches between objects in data elements from a first dataset and objects in data elements from a second dataset based on a variant relation between the objects in the data elements from the first dataset and objects in the data elements from the second dataset; evaluating respective data elements having respective objects determined as candidate matches to determine which candidate matches to keep as matches, the evaluating including a comparison of objects in the respective data elements other than the respective objects determined as candidate matches; and performing a fuzzy join operation of data elements from the first dataset with data elements from the second dataset by using the kept objects as keys for the first and second datasets, the joined data elements having respective objects kept as matches based on the evaluation of data elements; wherein the data elements are records, the objects are values of fields in the records, and wherein the fuzzy join operation includes: for each of one or more records in the first dataset, based on the keys, joining fields of that record with fields of a respective record from the second dataset based on the kept matches and creating a joined record; and wherein the result of the fuzzy join operation is a list of joined records, wherein each joined record includes the field representing the key for the first and second records, the remaining fields of the first record and the remaining fields of the second record. for each of one or more records in the first dataset, based on the keys, joining fields of that record with fields of a respective record from the second dataset based on the kept matches and creating a joined record; and wherein the result of the fuzzy join operation is a list of joined records, wherein each joined record includes the field representing the key for the first and second records, the remaining fields of the first record and the remaining fields of the second record.