State what one fact row means before drawing joins. An order, an order line, and a payment attempt are different grains. If you join them without controlling the relationship, a three-line order with two payment attempts can turn into six rows. A sum over that join may look plausible and still be wrong.
Partitioning helps the engine skip data, while clustering or sorting helps it find records inside a partition. Use the filter patterns the workload gives you. A daily dashboard usually benefits from a date partition; making a separate partition for each customer can create tiny files and expensive metadata. Historical reporting adds another decision: whether a dimension describes today's value or the value when the event happened. You must also agree on the reporting time zone before assigning a late-night event to a date.