Apache Iceberg Lakehouse
Обзор
- Развертывание Object Storage, Apache Spark, каталога Iceberg и Selena с помощью Docker compose
- Загрузка данных New York City Green Taxi за май 2023 года в озеро данных Iceberg
- Настройка Selena для доступа к каталогу Iceberg
- Запрос данных с помощью Selena там, где данные находятся

Помимо эффективной аналитики локальных данных, Selena может работать как вычислительный движок для анализа данных, хранящихся в озерах данных, таких как Apache Hudi, Apache Iceberg и Delta Lake. Одной из ключевых особенностей Selena является external catalog, который выступает в качестве связующего звена с внешне поддерживаемым метахранилищем. Эта функциональность предоставляет пользователям возможность беспрепятственно запрашивать внешние источники данных, устраняя необходимость в миграции данных. Таким образом, пользователи могут анализировать данные из различных систем, таких как HDFS и Amazon S3, в различных форматах файлов, таких как Parquet, ORC и CSV и т.д.
Предыдущий рисунок показывает сценарий аналитики озера данных, где Selena отвечает за вычисления и анализ данных, а озеро данных отвечает за хранение, организацию и обслуживание данных. Озера данных позволяют пользователям хранить данные в открытых форматах хранения и использовать гибкие схемы для создания отчетов на основе "единого источника истины" для различных случаев использования BI, AI, ad-hoc и отчетности. Selena полностью использует преимущества своего векторизационного движка и CBO, значительно улучшая производительность аналитики озера данных.
Предварительные требования
Docker
- Docker
- 5 ГБ оперативной памяти, выделенной для Docker
- 20 ГБ свободного дискового пространства, выделенного для Docker
SQL-клиент
Вы можете использовать SQL-клиент, предоставленный в среде Docker, или использовать клиент в вашей системе. Многие клиенты, совместимые с MySQL, будут работать, и это руководство охватывает настройку DBeaver и MySQL Workbench.
curl
curl используется для загрузки наборов данных. Проверьте, установлен ли он, выполнив curl или curl.exe в командной строке вашей ОС. Если curl не установлен, получите curl здесь.
Терминология Selena
FE
Frontend-узлы отвечают за управление метаданными, управление подключениями клиентов, планирование запросов и планирование выполнения запросов. Каждый FE хранит и поддерживает полную копию метаданных в своей памяти, что гарантирует одинаковые услуги среди всех FE.
BE
Backend (BE) узлы отвечают как за хранение данных, так и за выполнение планов запросов в ра звертываниях shared-nothing. Когда используется external catalog (например, каталог Iceberg, используемый в этом руководстве), BE-узлы могут кэшировать данные из внешнего каталога для ускорения запросов.
Среда
В этом руководстве используется шесть контейнеров (сервисов), и все они развертываются с помощью Docker compose. Сервисы и их обязанности:
| Сервис | Обязанности |
|---|---|
starrocks-fe | Управление метаданными, подключения клиентов, планы запросов и планирование |
starrocks-be | Выполнение планов запросов |
rest | Предоставление каталога Iceberg (служба метаданных) |
spark-iceberg | Среда Apache Spark для запуска PySpark |
mc | Настройка MinIO (клиент командной строки MinIO) |
minio | MinIO Object Storage |