Hive vs HMS
Я долгое время вообще не знала про существование HMS. Для меня HMS и Hive шли неразрывно, и я не отличала одно от другого. Я же такая не одна, да?🌸
Но в один момент до меня дошло, что:
🤩Hive - это движок, который через синтаксис SQL (HiveQL) умеет ходить к данным. Мы пишем запросы как будто в обычной бд, но они становятся MapReduce/Tez/Spark задачами и ходят в файлики
🤩HMS - это каталог метаданных: схема таблиц, пути к файлам, типы данных, партиции и т.д. Ему для работы нужна бд. Чаще всего это PostgreSQL, MySQL
Для работы Hive обязательно нужен HMS
А вот сам HMS может использоваться и отдельно - с тем же Spark, Trino, Impala
🧊В контексте Iceberg мы используем HMS как технический каталог. Например, чтобы понимать, что таблице db.orders соответствует файл 000-asdkd27sn.metadata.json
Подробнее про внутрянку hms я рассказывала здесь
Про каталоги — тут
@data_engineerette
HMS - Hive Metastore
Я долгое время вообще не знала про существование HMS. Для меня HMS и Hive шли неразрывно, и я не отличала одно от другого. Я же такая не одна, да?🌸
Но в один момент до меня дошло, что:
🤩Hive - это движок, который через синтаксис SQL (HiveQL) умеет ходить к данным. Мы пишем запросы как будто в обычной бд, но они становятся MapReduce/Tez/Spark задачами и ходят в файлики
🤩HMS - это каталог метаданных: схема таблиц, пути к файлам, типы данных, партиции и т.д. Ему для работы нужна бд. Чаще всего это PostgreSQL, MySQL
Для работы Hive обязательно нужен HMS
А вот сам HMS может использоваться и отдельно - с тем же Spark, Trino, Impala
🧊В контексте Iceberg мы используем HMS как технический каталог. Например, чтобы понимать, что таблице db.orders соответствует файл 000-asdkd27sn.metadata.json
Подробнее про внутрянку hms я рассказывала здесь
Про каталоги — тут
@data_engineerette