A computer-implemented method comprising: programmatically analyzing first data from a first data source to determine a first schema of the first data source, the first schema including one or more dimensions of the first data from the first data source, which include a first time dimension of the first data source, wherein the first data from the first data source is samplable based on the first time dimension; programmatically analyzing second data from a second data source to determine a second schema of the second data source, the second schema including one or more dimensions of the second data from the second data source, which include a second time dimension of the second data source, wherein the second data from the second data source is samplable based on the second time dimension; sampling a first metric based on the first time dimension of the first data source to generate a plurality of values for the first metric that form a first time data series; sampling a second metric based on the second time dimension of the second data source to generate a plurality of values for the second metric that form a second time data series; generating a first two-dimensional aggregation of the first time data series having a time dimension and a dimension corresponding to aggregated values of the first metric; generating a second two-dimensional aggregation of the second time data series having a time dimension and a dimension corresponding to aggregated values of the second metric; computing a correlation value between the first two-dimensional aggregation and the second two-dimensional aggregation; and if the correlation value meets a threshold, providing an indication of duplicated data between the first data source and the second data source and reducing storage space utilized for storage of the first data and of the second data by deleting the duplicated data. programmatically analyzing first data from a first data source to determine a first schema of the first data source, the first schema including one or more dimensions of the first data from the first data source, which include a first time dimension of the first data source, wherein the first data from the first data source is samplable based on the first time dimension; programmatically analyzing second data from a second data source to determine a second schema of the second data source, the second schema including one or more dimensions of the second data from the second data source, which include a second time dimension of the second data source, wherein the second data from the second data source is samplable based on the second time dimension; sampling a first metric based on the first time dimension of the first data source to generate a plurality of values for the first metric that form a first time data series; sampling a second metric based on the second time dimension of the second data source to generate a plurality of values for the second metric that form a second time data series; generating a first two-dimensional aggregation of the first time data series having a time dimension and a dimension corresponding to aggregated values of the first metric; generating a second two-dimensional aggregation of the second time data series having a time dimension and a dimension corresponding to aggregated values of the second metric; computing a correlation value between the first two-dimensional aggregation and the second two-dimensional aggregation; and if the correlation value meets a threshold, providing an indication of duplicated data between the first data source and the second data source and reducing storage space utilized for storage of the first data and of the second data by deleting the duplicated data.