awesome-everything EN
↑ Обратно к восхождению

Data engineering

Materialized views: тест на припоминание

Суть Промпты на свободное припоминание по всему юниту. Сначала ответьте по памяти, затем раскройте модельный ответ и сравните.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 14 min

Припоминание сильнее перечитывания. Для каждого промпта проговорите или запишите полный ответ по памяти, прежде чем открыть модельный — именно усилие припоминания закрепляет компромиссы к моменту, когда вы окажетесь на дизайн-ревью.

Цель

Восстановите ключевые механизмы юнита — что даёт materialized view, лестницу refresh, скрытые издержки CONCURRENTLY, incremental maintenance, streaming MV и режим отказа со staleness — не подглядывая в урок.

Вспомните перед уходом
  1. 01
    Что на самом деле даёт materialized view по сравнению с обычным view и какое одно решение становится главным, когда он у вас есть?
  2. 02
    Сравните обычный REFRESH MATERIALIZED VIEW и REFRESH ... CONCURRENTLY, включая требования и издержки CONCURRENTLY.
  3. 03
    Что такое incremental view maintenance, как pg_ivm реализует его в Postgres и когда он окупается, а когда вредит?
  4. 04
    Как streaming materialized views (ClickHouse, Materialize) меняют модель и какой подвох должен усвоить senior для каждого?
  5. 05
    Коллега предлагает materialized view с ночным refresh, чтобы ускорить медленный отчёт. Какие три риска вы поднимаете до одобрения?
  6. 06
    Упорядочьте решения, которые senior принимает, берясь за materialized view, и скажите, почему ответственность идёт последней, но важнее всего.
Итог

Если вы смогли восстановить каждый ответ по памяти, вы держите хребет юнита: materialized view обменивает свежесть на скорость чтения, поэтому refresh — единственное значимое решение; обычный refresh блокирует чтения блокировкой ACCESS EXCLUSIVE, тогда как CONCURRENTLY избегает этого ценой уникального индекса, более медленных diff-ов и ожидания старых транзакций; pg_ivm даёт почти нулевой staleness, но облагает каждую запись, поэтому подходит только для read-heavy таблиц с малой записью; streaming MV убирают refresh-задачу, но добавляют систему и модель согласованности; а сквозной режим отказа везде один — неотслеживаемый refresh отдаёт устаревшие данные, пока всё выглядит зелёным — поэтому владейте refresh, ограничивайте окно staleness и алертите на него.

Продолжить восхождение ↑Materialized views: чтение SQL и refresh
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.