Files
mini-lakehouse-lab/docs/glossary.md
T

11 KiB
Raw Blame History

Глоссарий курса

Краткий справочник терминов, сгруппированных по темам. Если нужен полный технический reference стенда, используй stack_reference.md.

Архитектура Lakehouse

Storage

Физическое хранилище файлов. Хранит data files, metadata-файлы Iceberg и raw-данные.

В этом курсе: MinIO (s3a://lakehouse/). Параллель с DWH: каталог pg_data в PostgreSQL, только вынесенный за пределы СУБД. Где в курсе: Модули 1, 2, 3.

Catalog

Реестр метаданных таблиц: какие таблицы существуют, где лежат их данные, какова текущая схема. Не хранит сами данные.

В этом курсе: PostgreSQL (JDBC catalog lakehouse). Параллель с DWH: системный каталог pg_catalog в PostgreSQL. Где в курсе: Модули 2, 4, 6.

Compute

Вычислительный движок, который читает метаданные из каталога и данные из хранилища для выполнения запросов. Не владеет ни данными, ни метаданными.

В этом курсе: Spark (запись и чтение), Trino (чтение и ad hoc SQL). Параллель с DWH: процесс СУБД PostgreSQL/Greenplum, но в Lakehouse движков может быть несколько одновременно. Где в курсе: Модули 1, 2, 6.

Table format

Спецификация, определяющая, как таблица организована на уровне файлов: какие data files входят в таблицу, где лежат метаданные, как работают snapshot-ы. Это не база данных и не хранилище — это набор правил.

В этом курсе: Apache Iceberg. Параллель с DWH: ближайший аналог — формат хранения таблицы (heap / AppendOnly в Greenplum), но table format в Lakehouse делает больше: он управляет историей, схемой и файлами. Где в курсе: Модули 2, 4.

Decoupled compute

Принцип, при котором вычислительные движки не зависят друг от друга и от хранилища. Один движок может писать, другой — читать те же данные без копирования, потому что оба обращаются к общему каталогу и хранилищу.

В этом курсе: Spark пишет таблицу, Trino читает ту же таблицу через общий JDBC-каталог. Параллель с DWH: в классическом DWH вычислитель один, поэтому проблема не возникает. Где в курсе: Модуль 6.

Spark-сессия и выполнение

SparkSession

Точка входа в DataFrame и Spark SQL: объект spark в ноутбуке. Builder задаёт параметры, а getOrCreate() создаёт сессию или возвращает уже работающую.

SparkContext

Связывает Spark-приложение с вычислительными ресурсами. Через spark.sparkContext можно проверить фактические master, appName и applicationId. Повторный builder не заменяет работающий контекст.

Driver и executors

Driver управляет приложением: выполняет код ноутбука, строит план и отправляет задания. Executors выполняют задания и читают данные. В нашем стенде driver работает в jupyter, executors запускаются на Spark worker-ах. Master выделяет приложению ресурсы worker-ов.

Где в курсе: Модуль 3.

Структура Iceberg-таблицы

Namespace

Логическая группа таблиц внутри каталога. Используется для организации таблиц по слоям или доменам.

В этом курсе: bronze, silver, default — namespace-ы внутри каталога lakehouse. Параллель с DWH: schema в PostgreSQL. Где в курсе: Модули 4, 5.

Metadata

JSON-файлы, описывающие текущее состояние таблицы: схему, свойства, список snapshot-ов. Лежат в каталоге metadata/ рядом с data files в хранилище.

В этом курсе: файлы в s3a://lakehouse/warehouse/<namespace>/<table>/metadata/. Параллель с DWH: системные таблицы pg_catalog, но вынесенные в файлы. Где в курсе: Модули 2, 4.

Manifest

Avro-файл со списком data files и их статистиками (количество строк, диапазоны значений колонок). Позволяет движку пропускать ненужные файлы при чтении.

В этом курсе: видны при осмотре структуры таблицы в MinIO. Где в курсе: Модуль 4.

Manifest list

Avro-файл со списком manifest-ов, составляющих один snapshot. Каждый snapshot ссылается на свой manifest list.

В этом курсе: видны как часть внутренней структуры Iceberg при исследовании MinIO. Где в курсе: Модуль 4.

Snapshot

Неизменяемая версия таблицы, зафиксированная в момент операции с данными (INSERT, overwrite, delete). Каждый snapshot определяет, какие data files составляли таблицу в конкретный момент. Как коммит в git.

В этом курсе: SELECT * FROM table.snapshots показывает историю snapshot-ов. Параллель с DWH: бэкап или PITR (Point-In-Time Recovery), но значительно легче: snapshot-ы создаются автоматически и не требуют копирования данных. Где в курсе: Модули 4, 7, 8.

Операции

Time travel

Чтение таблицы в состоянии на момент определённого snapshot-а. Позволяет сравнить текущие данные с предыдущими или восстановить потерянную информацию. В Spark: VERSION AS OF <snapshot_id>, в Trino: FOR VERSION AS OF <snapshot_id>.

В этом курсе: демонстрация на демо-таблице в Модуле 7. Параллель с DWH: восстановление из бэкапа (pg_dump / PITR), но без остановки сервиса и без восстановления всей базы целиком. Где в курсе: Модуль 7.

Schema evolution

Изменение схемы таблицы (добавление, переименование, удаление колонок) без перезаписи data files. Метаданные обновляются, данные остаются на месте.

В этом курсе: ALTER TABLE ADD COLUMNS, ALTER TABLE RENAME COLUMN. Параллель с DWH: ALTER TABLE в PostgreSQL, но в Iceberg старые data files не перезаписываются — новые колонки возвращают NULL для существующих строк. Где в курсе: Модули 7, 8.

Compaction (rewrite_data_files)

Объединение множества мелких data files в меньшее количество крупных. Решает проблему деградации чтения после множества мелких INSERT-ов. Данные не меняются, только реорганизуются файлы.

В этом курсе: CALL lakehouse.system.rewrite_data_files(table => '...'). Параллель с DWH: ALTER TABLE ... REORGANIZE в Greenplum AppendOnly. Где в курсе: Модуль 8.

Vacuum (expire_snapshots)

Удаление старых snapshot-ов и связанных с ними data files из хранилища. Освобождает место, но делает невозможным time travel к удалённым snapshot-ам. Необратимая операция.

В этом курсе: CALL lakehouse.system.expire_snapshots(table => '...', retain_last => N). Параллель с DWH: VACUUM в PostgreSQL/Greenplum (удаление мёртвых строк). Где в курсе: Модуль 8.

Слои данных

Raw

Неизменяемые исходные файлы, загруженные из внешнего источника. Хранятся в S3 как обычные файлы (Parquet, CSV), а не как Iceberg-таблицы. Точка воспроизводимости: если что-то пошло не так на следующих слоях, всегда можно перестроить пайплайн от raw.

В этом курсе: s3a://lakehouse/raw/nyc_taxi/ — Parquet-файлы NYC Taxi. Параллель с DWH: staging-зона (stg), внешние таблицы. Где в курсе: Модуль 3.

Bronze / Silver

Управляемые Iceberg-таблицы с разным уровнем обработки. Bronze — данные «как есть» из raw, загруженные в Iceberg-таблицу. Silver — очищенные и трансформированные данные, готовые для анализа.

В этом курсе: lakehouse.bronze.nyc_taxi_yellow (bronze), lakehouse.silver.nyc_taxi_yellow (silver). Параллель с DWH: ODS (bronze) / DDS (silver). Где в курсе: Модули 4 (bronze), 5 (silver), 8 (финальная практика).