BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Каталоги Iceberg: Руководство для инженеров по обработке данных

Каталоги Iceberg: Руководство для инженеров по обработке данных

Изучите различные варианты, доступные для каталогов Iceberg как в решениях с открытым исходным кодом, так и в коммерческих решениях, и используйте рекомендации с учетом конкретных ситуаций.

В мире хранилищ данных Apache Iceberg стал популярным инструментом для гибкого и масштабируемого управления большими наборами данных. Каталоги занимают центральное место в функциональности Iceberg, которая жизненно важна для организации таблиц, обеспечения согласованности и управления метаданными. В этой статье мы рассмотрим, что такое каталоги Iceberg, их различные реализации, варианты использования и конфигурации, а также рассмотрим наиболее подходящие решения для каталогов в различных случаях использования.

 

Что такое каталог Iceberg?

В Iceberg каталог отвечает за управление путями к таблицам, указывая на текущие файлы метаданных, которые представляют состояние таблицы. Эта архитектура важна, поскольку она обеспечивает атомарность, согласованность и эффективность запросов, гарантируя, что все считывающие и записывающие устройства получают доступ к одному и тому же состоянию таблицы. Различные реализации каталогов хранят эти метаданные различными способами, от файловых систем до специализированных служб хранения данных.

 

Основные функции каталога Iceberg

Основными функциями каталога Iceberg являются:

  • Отображение путей к таблицам: Привязка пути к таблице (например, “db.table”) к соответствующему файлу метаданных.
  • Поддержка атомарных операций: обеспечение согласованности состояния таблицы при одновременном чтении/записи.
  • Управление метаданными: Хранение и управление метаданными, обеспечение доступности и согласованности.

 

Каталоги Iceberg предлагают различные реализации для удовлетворения различных системных архитектур и требований к хранилищу. Давайте рассмотрим эти реализации и их пригодность для различных сред.

 

 

Типы каталогов Iceberg

1. Каталог Hadoop

Каталог Hadoop, как правило, самый простой в настройке, для него требуется только файловая система. Этот каталог управляет метаданными путем поиска самого последнего файла метаданных в каталоге таблицы на основе временных меток файлов. Однако из-за своей зависимости от атомарных операций на уровне файлов (чего нет в некоторых системах хранения, таких как S3), каталог Hadoop может не подходить для производственных сред, где распространены параллельные операции записи.

 

Пример конфигурации

Как настроить каталог Hadoop с помощью Apache Spark:

spark-sql --packages org.apache.iceberg:iceberg-spark-runtime-3.3_2.12:0.14.0 \
  --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
  --conf spark.sql.catalog.my_catalog=org.apache.iceberg.spark.SparkCatalog \
  --conf spark.sql.catalog.my_catalog.type=hadoop \
  --conf spark.sql.catalog.my_catalog.warehouse=file:///D:/sparksetup/iceberg/spark_warehouse

 

другой способ задать каталог в самом задании spark:

        SparkConf sparkConf = new SparkConf()
                .setAppName("Example Spark App")
                .setMaster("local[*]")
                .set("spark.sql.extensions","org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions")
                .set("spark.sql.catalog.local","org.apache.iceberg.spark.SparkCatalog")
                .set("spark.sql.catalog.local.type","hadoop")
                .set("spark.sql.catalog.local.warehouse", "file:///D:/sparksetup/iceberg/spark_warehouse")

 

В приведенном выше примере мы присвоили каталогу имя “local”, как это было настроено в spark “spark.sql.catalog.локальный". Это может быть выбор вашего имени.

 

Плюсы:

  • Простая настройка, не требуется внешнее хранилище данных.
  • Идеально подходит для сред разработки и тестирования.

 

Минусы

  • Ограничено отдельными файловыми системами (например, одним пакетом S3).
  • Не рекомендуется для использования в рабочей среде

 

2. Каталог Hive

Каталог Hive использует хранилище метаданных Hive metastore для управления расположением метаданных, что делает его совместимым с многочисленными инструментами обработки больших данных. Этот каталог широко используется в производственных целях благодаря его интеграции с существующей инфраструктурой на базе Hive и совместимости с несколькими механизмами обработки запросов.

 

Пример конфигурации

Как использовать каталог Hive в Spark:

 

spark-sql --packages org.apache.iceberg:iceberg-spark-runtime-3.3_2.12:0.14.0 \
  --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
  --conf spark.sql.catalog.my_catalog=org.apache.iceberg.spark.SparkCatalog \
  --conf spark.sql.catalog.my_catalog.type=hive \
  --conf spark.sql.catalog.my_catalog.uri=thrift://<metastore-host>:<port>

 

 

Плюсы:

  • Высокая совместимость с существующими инструментами обработки больших данных.
  • Не зависит от облака и гибко настраивается как локально, так и в облаке.

 

Минусы:

  • Требуется поддержка хранилища данных Hive, что может усложнить работу.
  • Отсутствует поддержка транзакций с несколькими таблицами, что ограничивает атомарность операций между таблицами​

 

3. Каталог AWS Glue

AWS Glue Catalog - это каталог управляемых метаданных, предоставляемый AWS, что делает его идеальным для организаций, активно инвестирующих в экосистему AWS. Он обрабатывает метаданные таблицы Iceberg как свойства таблиц в AWS Glue, обеспечивая плавную интеграцию с другими сервисами AWS.

 

Пример конфигурации

spark-sql --packages org.apache.iceberg:iceberg-spark-runtime-x.x_x.xx:x.x.x,software.amazon.awssdk:bundle:x.xx.xxx \
  --conf spark.sql.catalog.my_catalog=org.apache.iceberg.spark.SparkCatalog \
  --conf spark.sql.catalog.my_catalog.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog \
  --conf spark.sql.catalog.my_catalog.io-impl=org.apache.iceberg.aws.s3.S3FileIO \
  --conf spark.hadoop.fs.s3a.access.key=$AWS_ACCESS_KEY \
  --conf spark.hadoop.fs.s3a.secret.key=$AWS_SECRET_ACCESS_KEY

 

Плюсы:

  • Управляемый сервис, снижающий затраты на инфраструктуру и техническое обслуживание.
  • Сильная интеграция с сервисами AWS.

 

Минусы:

  • Специфичен для AWS, что ограничивает гибкость взаимодействия между облаками.
  • Нет поддержки транзакций с несколькими таблицами

 

4. Каталог Project Nessie

Project Nessie предлагает подход “данные как код”, позволяющий управлять версиями данных. Благодаря своим возможностям ветвления и тегирования, подобным Git, Nessie позволяет пользователям управлять ветвлениями данных аналогично исходному коду. Это обеспечивает надежную основу для транзакций с несколькими таблицами и несколькими операторами.

 

Пример конфигурации

spark-sql --packages "org.apache.iceberg:iceberg-spark-runtime-x.x_x.xx:x.x.x" \
  --conf spark.sql.catalog.my_catalog=org.apache.iceberg.spark.SparkCatalog \
  --conf spark.sql.catalog.my_catalog.catalog-impl=org.apache.iceberg.nessie.NessieCatalog \
  --conf spark.sql.catalog.my_catalog.uri=http://<host>:<port>

 

Плюсы:

  • Предоставляет функциональные возможности “данные в виде кода” с контролем версий.
  • Поддерживает транзакции с несколькими таблицами.

 

Минусы:

  • Требуется самостоятельный хостинг, что усложняет инфраструктуру.
  • Поддержка инструментов ограничена по сравнению с Hive или AWS Glue

 

5. Каталог JDBC

Каталог JDBC позволяет хранить метаданные в любой базе данных, совместимой с JDBC, такой как PostgreSQL или MySQL. Этот каталог не зависит от облака и обеспечивает высокую доступность благодаря использованию надежных систем СУБД.

 

Пример конфигурации

spark-sql --packages org.apache.iceberg:iceberg-spark-runtime-x.x_x.xx:x.x.x \
  --conf spark.sql.catalog.my_catalog=org.apache.iceberg.spark.SparkCatalog \
  --conf spark.sql.catalog.my_catalog.catalog-impl=org.apache.iceberg.jdbc.JdbcCatalog \
  --conf spark.sql.catalog.my_catalog.uri=jdbc:<protocol>://<host>:<port>/<database> \
  --conf spark.sql.catalog.my_catalog.jdbc.user=<username> \
  --conf spark.sql.catalog.my_catalog.jdbc.password=<password>

 

Плюсы:

  • Простая настройка с использованием существующей инфраструктуры СУБД.
  • Высокая доступность и независимость от облака.

 

Минусы:

  • Нет поддержки транзакций с несколькими таблицами.
  • Увеличивает зависимость от драйверов JDBC для всех инструментов доступа​

 

6. Каталог Snowflake

Snowflake обеспечивает надежную поддержку Apache Iceberg tables, позволяя пользователям использовать платформу Snowflake в качестве каталога Iceberg. Эта интеграция сочетает производительность Snowflake и семантику запросов с гибкостью формата открытых таблиц Iceberg, что позволяет эффективно управлять большими наборами данных, хранящимися во внешнем облачном хранилище. Обратитесь к документации snowflake для дальнейшей настройки по ссылке

 

Плюсы:

  • Полная поддержка платформы: Обеспечивает всесторонний доступ для чтения и записи, а также такие функции, как транзакции ACID, эволюция схемы и перемещение во времени.
  • Полная интеграция: Производительность Snowflake и возможности обработки запросов сочетаются с форматом открытых таблиц Iceberg, что облегчает эффективное управление данными.
  • Упрощенное обслуживание: Snowflake выполняет задачи жизненного цикла, такие как уплотнение и сокращение операционных издержек.

 

Минусы:

  • Ограничения, связанные с облаком и регионом: Внешний том должен быть подключен к тому же облачному провайдеру и в том же регионе, что и учетная запись Snowflake, что ограничивает возможности конфигурирования в разных облаках или регионах.
  • Ограничение формата данных: Поддерживается только формат файла Apache Parquet, который может не соответствовать всем предпочтениям организации в отношении формата данных.
  • Ограничения сторонних клиентов: Не позволяет сторонним клиентам изменять данные в таблицах Iceberg, управляемых Snowflake, что может повлиять на рабочие процессы, которые зависят от внешних инструментов.

 

7. Каталоги на основе Rest

Iceberg поддерживает каталоги на основе REST для решения ряда проблем, связанных с традиционными реализациями каталогов.

 

Проблемы, связанные с традиционными каталогами:

  • Сложность на стороне клиента: Традиционные каталоги часто требуют конфигураций и зависимостей на стороне клиента для каждого языка (Java, Python, Rust, Go), что приводит к несогласованности между различными языками программирования и процессорами обработки. Подробнее об этом читайте здесь
  • Ограничения масштабируемости: Управление метаданными и табличными операциями на клиентском уровне может создавать проблемы, влияющие на производительность и масштабируемость в крупномасштабных средах обработки данных.

 

Преимущества использования каталога REST:

  • Упрощенная интеграция с клиентами: Клиенты могут взаимодействовать с каталогом REST, используя стандартные протоколы HTTP, что устраняет необходимость в сложных конфигурациях или зависимостях.
  • Масштабируемость: Серверная архитектура каталога REST обеспечивает масштабируемое управление метаданными, адаптируя растущие наборы данных и схемы параллельного доступа.
  • Гибкость: Организации могут внедрять пользовательскую логику каталога на стороне сервера, адаптируя каталог REST к конкретным требованиям без изменения клиентских приложений.

 

Появилось несколько реализаций каталога REST, каждая из которых отвечает конкретным потребностям организации:

  • Gravitino - это сервис каталогов Iceberg REST с открытым исходным кодом, который облегчает интеграцию со Spark и другими системами обработки данных и предлагает простую настройку для управления таблицами Iceberg.
  • Tabular - Управляемый сервис, предоставляющий интерфейс каталога REST, позволяющий организациям использовать возможности Iceberg без затрат на управление инфраструктурой каталога. Подробнее читайте в таблице
  • Apache Polaris: Полнофункциональный каталог Apache Iceberg с открытым исходным кодом, реализующий REST API для обеспечения бесперебойной работы нескольких движков на таких платформах, как Apache Doris, Apache Flink, Apache Spark, StarRocks и Trino. ознакомьтесь с подробностями на GitHub.

 

Один из моих любимых и простых способов опробовать каталог Rest с таблицами Iceberg - это использовать простую реализацию Rest на Java. Пожалуйста, ознакомьтесь со ссылкой на GitHub здесь

 

Вывод

Выбор подходящего каталога Apache Iceberg имеет решающее значение для оптимизации вашей стратегии управления данными. Вот краткий обзор, который поможет вам принять решение:

  • Каталог Hadoop: благодаря своей простоте лучше всего подходит для сред разработки и тестирования. Однако в производственных сценариях с одновременной записью могут возникнуть проблемы с согласованностью.
  • Каталог Hive Metastore: Он идеально подходит для организаций с существующей инфраструктурой Hive. Он обеспечивает совместимость с широким спектром инструментов обработки больших данных и поддерживает сложные операции с данными. Однако поддержка службы Hive Metastore может усложнить работу.
  • Каталог AWS Glue: Это оптимально для тех, кто активно инвестирует в экосистему AWS. Это обеспечивает бесперебойную интеграцию с сервисами AWS и снижает потребность в автономных службах метаданных. Однако это специфично для AWS, что может ограничивать гибкость взаимодействия между облаками.
  • Каталог JDBC: Подходит для сред, предпочитающих реляционные базы данных для хранения метаданных, позволяя использовать любую базу данных, совместимую с JDBC. Это обеспечивает гибкость и использует существующую инфраструктуру СУБД, но может создавать дополнительные зависимости и требовать тщательного управления подключениями к базе данных.
  • Каталог REST: Это идеальное решение для сценариев, требующих стандартизированного API для работы с каталогами, улучшающее взаимодействие между различными механизмами обработки и языками. Оно отделяет детали реализации каталога от клиентов, но требует настройки службы REST для обработки операций с каталогом, что может усложнить первоначальную настройку.
  • Каталог Project Nessie: Он идеально подходит для организаций, которым требуется контроль версий своих данных, аналогичный Git. Он поддерживает ветвление, тегирование и транзакции с несколькими таблицами. Он предоставляет надежные возможности управления данными, но требует развертывания службы Nessie и управления ею, что может увеличить операционные издержки.

 

Понимание этих параметров каталога и их конфигураций позволит вам сделать осознанный выбор и оптимизировать настройку data lake или lakehouse в соответствии с конкретными потребностями вашей организации.

 

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
От архитектуры Lakehouse к data mesh
Следующая статья →
Моя платформа управления данными
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Компания ООО "Комус" - один из лидеров российского рынка оптовых продаж офисных товаров и техники. Компания поставляет широкий ассортимент продукции - от канцелярских принадлежностей до компьютерной техники и офисной мебели.

  • KERAMA MARAZZI — международный бренд, входящий в число лидеров глобального рынка керамики. Бизнес компании охватывает весь процесс создания керамических изделий, от глиняных карьеров до фирменной розницы во всех крупных городах РФ и за рубежом.

  • ООО "Уральская транспортная компания" — это транспортно-логистическая компания, специализирующаяся на железнодорожных перевозках грузов, создана в 2009 году.

  • «Синтека» — ведущий разработчик инновационных сервисов для строительной отрасли, который решает ключевые задачи автоматизации службы снабжения строительных компаний.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.