Adaptive Query Execution в Spark 3: как умная оптимизация покончила с ручными танцами с бубном

Представим ситуацию: мы спланировали маршрут до точки назначения, предположили, по какой дороге будет быстрее добраться, даже вспомнили, где обычно бывают пробки, чтобы их объехать. Но, неожиданно, на самом свободном участке образовался затор из‑за аварии в правом ряду. В этот момент понимаем, что лучше бы мы ехали по навигатору, и какая‑нибудь «Анфиса» предупреждала о дорожной ситуации, чтобы в определенный момент можно было изменить траекторию движения. Именно так годами чувствовали себя пользователи Spark, когда их красиво оптимизированные запросы наталкивались на суровую реальность распределенных данных.
















