Сегодня мы используем Hive в качестве нашего хранилища данных, которое в основном используется для пакетной / массовой обработки данных - аналитических запросов / объединений Hive и т. Д. - конвейер ETL
Недавно мы столкнулись с проблемой, когда мы пытаемся представить наш конвейер ETL на основе куста как услугу. Проблема связана с фиксированной структурой схемы таблиц улья. У нас есть ситуация, когда схема таблицы не фиксирована, она может измениться, например: новые столбцы могут быть добавлены (в любой позиции в схеме, не обязательно в конце), удалены и переименованы.
В Hive, как только разделы созданы, я думаю, их нельзя изменить, т.е. мы не можем добавить новый столбец в старый раздел и заполнить только этот столбец данными. Нам нужно воссоздать раздел с новой схемой и заполнить данные во всех столбцах. Однако новые разделы могут иметь новую схему и содержать данные для нового столбца (не уверены, можно ли вставить новый столбец в любую позицию в схеме?). Попытка прочитать значение нового столбца из старого раздела (неизмененного) вернет NULL.
Я хочу знать, могу ли я использовать HBase в этом сценарии и решит ли это мои проблемы, указанные выше? 1. вставьте новые столбцы в любую позицию в схеме, удалите столбец, переименуйте столбец 2. данные обратной засыпки в новом столбце, т.е. для более старых данных (в старых разделах) заполните данные только в новом столбце без повторного создания раздела / повторного заполнения данных в другие столбцы.
Я понимаю, что Hbase не имеет схемы (без схемы), т.е. каждая запись / строка может иметь разное количество столбцов. Не уверены, есть ли в HBase концепция разделов?