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: инструкция для дата-инженеров

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

 

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

 

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

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

 

Ключевые функции каталога Iceberg

За что ответственны каталоги Iceberg:

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

 

Каталоги 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.local». Вы можете использовать любое другое имя.

 

За:

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

 

Против:

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

 

2. Каталог Hive

Каталог Hive использует метахранилище Hive для управления размещением метаданных, что делает его совместимым с многочисленными инструментами для работы с большими данными. Этот каталог широко используется в производстве благодаря его интеграции с существующей инфраструктурой на базе 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 - это управляемый каталог метаданных, предоставляемый AWS, что делает его идеальным для организаций, активно инвестирующих в экосистему AWS. Он обрабатывает метаданные таблиц Iceberg как свойства таблиц в AWS Glue, обеспечивая бесшовную интеграцию с другими сервисами AWS.

 

Пример настройки

Для настройки  AWS Glue с помощью Iceberg в Spark воспользуйтесь следующей командой:

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 позволяет свлоим пользователям управлять ветвями данных по аналогии с исходным кодом. Она обеспечивает надежную основу для работы с несколькими таблицами и транзакциями.

 

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

Настройка 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, позволяя пользователям использовать платформу Snowflake в качестве каталога Iceberg. Эта интеграция сочетает в себе производительность и семантику запросов Snowflake с гибкостью открытого формата таблиц Iceberg, что позволяет эффективно управлять большими массивами данных, хранящимися во внешних облачных хранилищах. 

 

За:

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

 

Против:

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

 

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

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

 

Трудности, связанные с традиционными каталогами

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

 

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

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

 

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

  • Gravitino: REST-каталог Iceberg с открытым исходным кодом, который облегчает интеграцию со Spark и другими процессорами, предлагая простую настройку для управления таблицами Iceberg.

 

  • Tabular: Управляемый сервис, предоставляющий интерфейс REST-каталога, позволяющий организациям использовать возможности Iceberg без лишних затрат на управление инфраструктурой каталога. 

 

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

 

Один из моих любимых и простых способов попробовать REST-каталог с таблицами Iceberg - использовать простую реализацию REST на Java. Ссылка на Github.

 

Заключение

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

  • Каталог Hadoop: Благодаря своей простоте лучше всего подходит для сред разработки и тестирования. Однако в производственных сценариях с одновременной записью могут возникнуть проблемы с согласованностью.

 

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

 

  • Каталог AWS Glue: Это оптимальный вариант для тех, кто активно инвестирует в экосистему AWS. Он обеспечивает бесшовную интеграцию с сервисами AWS и снижает потребность в самоуправляемых службах метаданных. Однако он специфичен для AWS, что может ограничить гибкость при работе с разными облаками.

 

  • Каталог JDBC: Подходит для сред, предпочитающих реляционные базы данных для хранения метаданных, позволяя использовать любую JDBC-совместимую базу данных. Это обеспечивает гибкость и использование существующей инфраструктуры РСУБД, но может создавать дополнительные зависимости и требовать тщательного управления соединениями с базами данных.

 

  • REST-каталог: Это идеальный вариант для сценариев, требующих стандартизированного API для операций с каталогом, что повышает совместимость различных процессоров и языков. Он отделяет детали реализации каталога от клиентов, но требует настройки REST-сервиса для обработки операций с каталогом, что может усложнить первоначальную настройку.

 

  • Каталог Nessie: Это идеальный вариант для организаций, которым необходим контроль версий данных, подобный Git. Он поддерживает ветвление, тегирование и многотабличные транзакции. Он обеспечивает надежные возможности управления данными, но требует развертывания и управления службой Nessie, что может привести к дополнительным операционным издержкам.

 

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

 

 

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

← Предыдущая статья
Лучшие практики DWH
Следующая статья →
Как я создал целую платформу данных всего за одну неделю
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

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

loading...

Решения

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

Клиенты
  • Русклимат
    Русклимат — международный торгово-производственный холдинг, концентрирующий опыт ведущих мировых производителей индустрии климата, мощный потенциал конструкторских бюро и лабораторий индустриального дизайна.
     
    Компания образована в 1996 году. За более чем двадцатилетнюю историю Русклимат прошел путь от локальной компании до мощной вертикально-интегрированной многопрофильной структуры.
     
  • С объединением компании Savencia Fromage & Dairy и молочного комбината в г.Белебей, одного из лидеров по производству твердых сычужных сыров в России, Savencia выходит на российский рынок не только как импортер, но и как производитель молочной продукции.

  • ГК «Агропромкомплектация-Курск» - одна из ведущих в Российской Федерации агропромышленных компаний с полным производственным циклом "от поля до прилавка". За 32 года работы на рынке компания заслуженно завоевала репутацию одного из лидеров страны в производстве свинины и молока.

  •  ООО «ММК-Информсервис» создает высокотехнологичные решения для эффективной работы предприятий. Разрабатывают и внедряют телекоммуникационные и бизнес-приложения, автоматизируют производство, выстраивают и поддерживают корпоративную IT-инфраструктуру.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • 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 и политикой конфиденциальности.