1. A computer-implemented method for automatically generating one or more Extract, Transform and Load (ETL) jobs comprising: receiving a data set including input data in a source format and output data in a target format; analyzing the data set to generate a schema using the input data and output data and determine properties and relationships between the input data and output data using the generated schema; automatically generating a plurality of mapping models from the analyzing using the determined properties and relationships between the input data and output data, wherein each of the mapping models describes a different mapping and transformation of the input data to the output data; generating a plurality of ETL jobs each using a different one of the mapping models; executing each of the ETL jobs using the input data and comparing the results of each of the executed ETL jobs to the output data; and selecting the ETL job for use from among the plurality of ETL jobs based on a combination of metrics pertaining to accuracy determined from the comparing and computing resource utilization.