Apache Hudi Lakehouse
Обзор
- Развертывание Object Storage, Apache Spark, Hudi и Selena с использованием Docker compose
- Загрузка небольшого набора данных в Hudi с помощью Apache Spark
- Настройка Selena для доступа к Hive Metastore с использованием внешнего каталога
- Запросы к данным с помощью Selena непосредственно там, где они находятся

Помимо эффективной аналитики локальных данных, Selena может работать как вычислительный движок для анализа данных, хранящихся в озёрах данных, таких как Apache Hudi, Apache Iceberg и Delta Lake. Одной из ключевых особенностей Selena является внешний каталог, который служит связующим звеном с внешним metastore. Эта функциональность предоставляет пользователям возможность бесшовно выполнять запросы к внешним источникам данных, устраняя необходимость в миграции данных. Таким образом, пользователи могут анализировать данные из различных систем, таких как HDFS и Amazon S3, в различных форматах файлов, таких как Parquet, ORC, CSV и др.
На приведённом рисунке показан сценарий аналитики озера данных, где Selena отвечает за вычисления и анализ данных, а озеро данных — за хранение, организацию и обслуживание данных. Озёра данных позволяют пользователям хранить данные в открытых форматах хранения и использовать гибкие схемы для создания отчётов на основе «единого источника истины» для различных сценариев использования BI, AI, ad-hoc и отчётности. Selena в полной мере использует преимущества своего векторизованного движка и CBO, значительно повышая производительность аналитики озёр данных.
Предварительные требования
Репозиторий demo Selena
Клонируйте репозиторий demo Selena на ваш локальный компьютер.
Все шаги в этом руководстве будут выполняться из директории demo/documentation-samples/hudi/ в директории, куда вы клонировали GitHub-репозиторий demo.
Docker
- Настройка Docker: Для Mac следуйте шагам, описанным в Install Docker Desktop on Mac. Для выполнения запросов Spark-SQL убедитесь, что Docker выделено не менее 5 ГБ памяти и 4 CPU (см. Docker → Preferences → Advanced). В противном случае запросы spark-SQL могут быть завершены из-за проблем с памятью.
- 20 ГБ свободного дискового пространства, выделенного для Docker
SQL-клиент
Вы можете использовать SQL-клиент, предоставленный в среде Docker, или использовать клиент на вашей системе. Многие MySQL-совместимые клиенты будут работать.
Конфигурация
Перейдите в директорию demo/documentation-samples/hudi и просмотрите файлы. Это не руководство по Hudi, поэтому не каждый конфигурационный файл будет описан; но ва жно, чтобы читатель знал, где искать информацию о настройке. В директории hudi/ вы найдете файл docker-compose.yml, который используется для запуска и настройки сервисов в Docker. Вот список этих сервисов и краткое описание:
Сервисы Docker
| Сервис | Назначение |
|---|---|
selena-fe | Управление метаданными, клиентские подключения, планы и расписание запросов |
selena-be | Выполнение планов запросов |
metastore_db | Postgres DB для хранения метаданных Hive |
hive_metastore | Предоставляет Apache Hive metastore |
minio и mc | MinIO Object Storage и клиент командной строки MinIO |
spark-hudi | Распределенные вычисления и транзакционная платформа data lake |