Hive Metastore на собеседовании Data Engineer

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Зачем спрашивают на собесе DE

HMS — стандарт для централизованной schema БД для lake / lakehouse. На собесе DE: «зачем HMS», «отличие от Glue», «нужен ли при Iceberg».

Что такое Hive Metastore

Сервис, хранящий метаданные таблиц (schema, location, partitions) для систем, работающих с файлами в lake (Hive, Spark, Presto/Trino).

Сам lake — Parquet / ORC / Avro файлы в S3 / HDFS / GCS.

HMS говорит: «есть таблица events, columns такие-то, файлы лежат в s3://bucket/events/ партиционирована по event_date».

Без HMS каждый engine читает только raw файлы — нет общего понимания структуры.

Что хранится

  • Database (= schema).
  • Table — name, owner, location, format (Parquet / ORC / etc), columns с типами.
  • Partitions — список ключей и locations.
  • Properties — comments, tags, owner.
  • Statistics — row count, size, NDV (для cost-based optimizer).

Хранится в RDBMS (Postgres / MySQL) под HMS-сервисом.

Интеграция с Spark / Trino

Spark.

spark.sql("SELECT * FROM hms.events WHERE event_date = '2026-05-01'")

Spark подключается к HMS, получает schema + partition locations, читает файлы напрямую.

Trino / Presto.

SELECT * FROM hive.default.events;

Catalog hive указывает на HMS. Federated queries — несколько catalogs в одном запросе.

dbt. Может работать с Spark / Trino, всё через HMS.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

AWS Glue Catalog и альтернативы

Glue Catalog — managed HMS-совместимый сервис на AWS. Не нужно хостить.

Source data in S3 → Glue Crawler → Glue Catalog → Athena / Redshift Spectrum / EMR

Альтернативы:

  • Unity Catalog (Databricks) — современная alternative.
  • OpenMetadata — open source.
  • Polaris (Snowflake) — Iceberg-native catalog.
  • Project Nessie — git-style catalog для Iceberg.

Iceberg / Delta — нужен ли HMS

Iceberg имеет свой metadata format (manifest files в S3). HMS не обязателен — Iceberg может хранить metadata в:

  • HMS (legacy compat).
  • AWS Glue.
  • Nessie.
  • REST catalog.
  • File-based (только для тестов).

Delta Lake — metadata в _delta_log поверх Parquet файлов. HMS — optional, для discovery.

В современных lakehouse Iceberg + Glue / Nessie популярнее, чем Hive table + HMS. HMS остаётся в legacy / Hive-окружениях.

Частые ошибки

Single point of failure. HMS падает — все queries падают. HA setup обязателен в проде.

Long table names. Hive таблицы chunked по 128 чарам. Используй short names + comments.

Mass ALTER TABLE без partitions. Изменение schema на 100k partitions — медленно. Лучше партиции реже.

Игнорировать stats. Без ANALYZE TABLE cost-based optimizer Trino / Spark делает плохие planы.

Мульти-cloud setup. HMS в одном регионе, S3 в другом — latency. Co-locate.

Связанные темы

FAQ

Hive Metastore Service vs HiveServer2?

HMS — каталог metadata. HiveServer2 — engine, выполняющий Hive SQL queries. Разные сервисы, оба часть Hive ecosystem.

Можно ли использовать без Hive?

Да. Spark, Trino, Iceberg — все умеют использовать HMS без Hive engine.

Это официальная информация?

Нет. Статья основана на документации Apache Hive, AWS Glue, Apache Iceberg.


Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.