Flink and spark are both powerful distributed query engines. The primary difference between both the tools are

1. Spark is used to process the batch data, whereas flink process the real-time data.

2. flink Programming Model based on Cyclic dataflows whereas spark model works on RDD

3. The optimiser in flink does a great job compared to the spark optimiser.

4. Flink engine performs better compared to spark engine.

5. Flink is relatively new and has less community support, whereas spark has an extensive community.

6. Both spark and flink support SQL language through SQL API.