Ditching Denormalization in Real-time Analytics: How StarRocks Delivers Superior JOIN Performance