1. A method of estimating a number of distinct data blocks in a dataset for data deduplication prior to performing a data deduplication process on the dataset, the method comprising: scanning, by a data processing system, multiple fingerprints associated with a dataset, wherein the dataset has been chunked into multiple data blocks, and wherein each of the multiple fingerprints is associated with one of the multiple data blocks; selecting, by the data processing system, a subset of the multiple fingerprints in accordance with a sampling condition specifying a subset of all possible fingerprint values to produce a content-based sample of fingerprints; and determining, by the data processing system, an estimated number of distinct data blocks in the dataset by determining a number of distinct fingerprints in the content-based sample of fingerprints, wherein the estimated number of distinct data blocks in the dataset is determined prior to performing a data deduplication process on the dataset.