1. Introduction
2. Federated Learning
2.1. Horizontal Federated Learning
2.2. Vertical Federated Learning
3. Categories of Non-IID Data
3.1. Attribute skew
3.2. Label skew
3.3. Temporal skew
3.4. Other scenarios
4. Challenges of Non-IID Data to Model Training
4.1. Horizontal federated learning
4.2. Vertical federated learning
5. Main Approaches to Handling Non-IID Data
5.1. Data-based approach
5.2. Algorithm-based approach
5.3. System-based approach
6. Remaining Challenges and Future Directions
7. Conclusion