How would you design a batch data pipeline that ingests, validates, and transforms data from multiple sources?