Hudi — это формат таблиц data lake, который предоставляет возможность обновлять и удалять данные, а также потреблять новые данные в HDFS. Он поддерживает несколько вычислительных движков и предоставляет интерфейсы вставки, обновления и удаления (IUD) и потоковые примитивы, включая upsert и incremental pull, над наборами данных в HDFS.
Чтобы использовать Hudi, убедитесь, что сервис Spark2x установлен в кластере MRS.
Рисунок 1 Базовая архитектура Hudi

Таблицы copy-on-write также называют COW‑таблицами. Для хранения данных используются файлы Parquet, а внутренние операции обновления необходимо выполнять путём перезаписи оригинальных файлов Parquet.
Таблицы merge-on-read также называют MOR‑таблицами. Для хранения данных используется комбинация колонно‑ориентированного формата Parquet и строкового формата Avro. Файлы Parquet используются для хранения базовых данных, а файлы Avro (также называемые лог‑файлами) — для хранения инкрементальных данных.
Предоставляет последние снимки данных текущей таблицы Hudi. То есть после записи последних данных в таблицу Hudi новые записанные данные можно запросить через это представление.
И COW, и MOR‑таблицы поддерживают эту возможность представления.
Обеспечивает возможность инкрементного запроса. Инкрементные данные после указанного коммита можно запросить. Это представление можно использовать для быстрого получения инкрементных данных.
COW‑таблицы поддерживают эту возможность представления. MOR‑таблицы также поддерживают эту возможность представления, но возможность инкрементного представления исчезает после выполнения операции уплотнения.
Предоставляет только данные, хранящиеся в последнем файле Parquet.
Этот просмотр отличается для таблиц COW и MOR.
Для таблиц COW возможности просмотра такие же, как у real-time view. (Таблицы COW используют только файлы Parquet для хранения данных.)
Для таблиц MOR доступны только базовые файлы, и предоставляются данные из указанных фрагментов файлов, начиная с последней compact operation. Это можно просто понять так: данный просмотр предоставляет только данные, хранящиеся в файлах Parquet таблиц MOR, а данные в лог‑файлах игнорируются. Предоставляемые этим просмотром данные могут быть не самыми последними. Однако после выполнения compact operation для таблиц MOR инкрементальные данные журналов объединяются с базовыми данными. В этом случае данный просмотр обладает теми же возможностями, что и real-time view.