TGViewer
дата инженеретта дата инженеретта @data_engineerette · 3.43K subscribers
Post #578 2.38K
Одна из оптимизаций адаптивки

У меня есть много запросов вида "select ... from ... order by". В какой-то момент я заметила, что иногда джобы стартуют, а иногда нет, но считается все нормально. Но разобраться-то все равно интересно)

☕️ Я смотрю план запроса у таблиц. Initial Plan у них одинаковый - чтение, селект, сортировка:


== Initial Plan ==
Sort
+- Exchange
+- Project
+- BatchScan catalog.schema.table


☕️ Смотрю финальный план

1 таблица (запускает джобу):


== Final Plan ==
AQEShuffleRead
+- ShuffleQueryStage, Statistics(sizeInBytes=368.0 B, rowCount=1)
+- Exchange
+- * Project
+- BatchScan catalog.schema.table1


Длительность - 4с

2 таблица (не запускает джобу):


== Final Plan ==
LocalTableScan


Длительность - 10мс
И причем тут LocalTableScan?

☕️ Прикол в том, что во второй табличке 0 строк. И включена адаптивка (spark.sql.adaptive.enabled = true). Адаптивка в спарке понимает, что бессмысленно шафлить 0 строк данных, и возвращает результат за несколько мс

@data_engineerette
  • 🔥 15
More from @data_engineerette
  1. Sep 22, 20265 октября начнется 19-й поток программы Data Engineer от Newprolab Программа для junior- и…
  2. Sep 15, 2026Каким должен быть хороший DE? Меня однажды спросили на собесе: 🤩Какие 3 качества важны дл…
  3. Sep 12, 2026Mermaid-диаграммы Наконец-то дошли руки поковыряться в mermaid-диаграммах, это что за имба…
  4. Sep 2, 2026Iceberg — это внезапный бум или планомерная подготовка? Заметили, как с определенного моме…
  5. Aug 25, 2026Как забытый ON CLUSTER поставил меня в тупик Я создала таблицу ReplicatedReplacingMergeTre…
  6. Aug 20, 2026В начале лета я рассказывала, как начала проходить курс по алгосам, сейчас делюсь с вами п…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →