Determines appropriate ShardSpecs for a job by determining whether or not partitioning is necessary, and if so,
choosing the best dimension that satisfies the criteria:
Must have exactly one value per row.
Must not generate oversized partitions.
SegmentInputRow serves as a marker that these InputRow instances have already been combined
and they contain the columns as they show up in the segment after ingestion, not what you would see in raw
data.