Что такое Apache Iceberg?

Apache Iceberg – это распределенный, управляемый сообществом формат таблиц данных с лицензией Apache 2.0 и полностью открытым исходным кодом, который упрощает обработку больших массивов данных, хранящихся в озерах данных. Инженеры по обработке данных используют Apache Iceberg, потому что он работает быстро, эффективно и надежно в любом масштабе и ведет учет изменений наборов данных с течением времени. Apache Iceberg предлагает простую интеграцию с популярными фреймворками обработки данных, такими как Apache Spark, Apache Flink, Apache Hive, Presto и другими.

Что такое озеро транзакционных данных?

Озеро данных – это централизованное хранилище, в котором можно хранить все структурированные и неструктурированные данные в любом масштабе. Транзакция данных – это серия обменов данными, выполняемых за одну операцию. Например, когда клиент снимает деньги с банковского счета, банк одновременно выполняет несколько обменов данными в рамках одной транзакции данных: проверяет достаточность баланса, личность и списывает средства со счета. Озеро транзакционных данных – это озеро данных, которое не только хранит данные в нужном масштабе, но и поддерживает транзакционные операции, обеспечивает точность и согласованность данных, а также дает возможность отслеживать изменения данных и структуры данных с течением времени. Эти свойства в совокупности известны как атомарность, согласованность, изоляция и надежность (ACID).

  • Атомарность гарантирует, что каждая транзакция – это отдельное событие, которое либо успешно, либо полностью провалилось; промежуточного статуса не существует. 
  • Согласованность обеспечивает достоверность всех записанных данных в соответствии с определенными правилами озера данных, а также их точность и надежность. 
  • Изоляция обеспечивает одновременное выполнение нескольких транзакций так, чтобы эти процессы не влияли друг на друга и были независимыми.
  • Надежность означает, что данные не теряются или не повреждаются после отправки транзакции. Данные можно восстановить в случае сбоя системы, например отключения электроэнергии.

Каковы преимущества использования Apache Iceberg?

Ниже приведены некоторые из ключевых преимуществ использования Apache Iceberg для транзакционных озер данных.

  • Схожесть с SQL. Язык структурированных запросов (SQL) – популярный язык запросов, который часто используется во всех типах приложений. Аналитики данных и разработчики изучают и используют SQL, потому что он хорошо интегрируется с различными языками программирования, а также довольно прост в освоении, поскольку в его формулировках используются общие английские ключевые слова. Apache Iceberg позволяет любому, кто знаком с языком структурированных запросов (SQL), создавать озера данных и выполнять большинство операций с озерами данных без необходимости изучать новый язык.
  • Консистенция данных. Apache Iceberg обеспечивает согласованность данных, гарантируя, что любой пользователь, читающий и записывающий данные, видит одну и ту же информацию. 
  • Структура данных. Apache Iceberg позволяет легко вносить изменения в структуру данных, что также называется эволюцией схемы. Это означает, что пользователи могут добавлять, переименовывать или удалять столбцы из таблицы данных, не нарушая работу базовых данных.
  • Управление версиями данных. Apache Iceberg поддерживает управление версиями данных, благодаря чему пользователи могут отслеживать изменения данных со временем. Это позволяет использовать функцию путешествий во времени, благодаря которой пользователи могут получать доступ к историческим версиям данных, запрашивать их и анализировать изменения, внесенные в результате действий обновления и удаления.
  • Кроссплатформенная поддержка. Apache Iceberg поддерживает множество различных систем хранения и движков запросов, включая Apache Spark, Apache Hive и Presto. Это упрощает использование Iceberg в различных средах обработки данных.
  • Инкрементная обработка. Iceberg поддерживает инкрементную обработку, благодаря чему пользователи могут обрабатывать только те данные, которые изменились с момента последнего запуска. Она также известная как CDC (Change Data Capture). Это может помочь повысить эффективность и производительность обработки данных.

Каковы распространенные варианты использования Apache Iceberg?

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

  • Таблицы данных в озерах данных, требующие частого удаления, например, для соблюдения законов о конфиденциальности данных.
  • Таблицы данных в озере данных, требующие обновления на уровне записей. Это полезно, если ваш набор данных требует частого обновления после урегулирования данных. Например, данные о продажах могут меняться в связи с последующими событиями, такими как возврат товаров. Iceberg предоставляет возможность обновлять отдельные записи без необходимости повторной публикации всего набора данных.
  • Таблицы данных в озерах данных с непредсказуемыми изменениями, например таблицы медленно меняющихся размеров (SCD). Примером SCD является таблица записей клиентов, содержащая имя, местоположение и контактную информацию, которая может меняться время от времени, но как часто – не известно.
  • Если транзакции с озером данных требуют гарантированной достоверности, долговечности и надежности данных, для транзакций ACID можно использовать форматы таблиц Apache Iceberg.
  • Иногда необходимо обратиться к историческим версиям данных, чтобы проанализировать тенденции и изменения в данных за определенный период времени, а также восстановить данные или откатиться к предыдущей версии для устранения проблем.

Кто использует Apache Iceberg?

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

Почему стоит выбрать Apache Iceberg?

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

  1. Открытый исходный код: Apache Iceberg – это проект с открытым исходным кодом. Это означает, что его можно использовать бесплатно и настроить в соответствии с вашими конкретными потребностями. В нем также есть активное сообщество разработчиков, которые постоянно совершенствуют и добавляют новые функции в проект. 
  2. Масштабируемость: решение Apache Iceberg разработано для эффективной обработки больших наборов данных. Оно может разделять и организовывать данные по нескольким узлам, что помогает распределить рабочую нагрузку и ускорить обработку данных. 
  3. Производительность: Apache Iceberg имеет множество функций для оптимизации производительности запросов, включая столбчатое хранение и методы сжатия, такие как отправка предикатов и эволюция схемы. 
  4. Гибкость: Apache Iceberg позволяет изменить порядок организации данных, чтобы они могли со временем меняться и не нужно было переписывать запросы или перестраивать структуры. Он также поддерживает несколько форматов и источников данных, что упрощает интеграцию с существующими системами. 
  5. Надежность: Apache Iceberg обеспечивает согласованность и надежность данных благодаря поддержке транзакций. Вы можете отслеживать изменения данных с течением времени и возвращаться к историческим версиям, чтобы исправить проблемы.

Какие сервисы AWS поддерживают Iceberg?

Apache Iceberg поддерживает популярные платформы обработки данных, такие как Apache Spark, Apache Flink, Apache Hive и Presto. Сервисы AWS, такие как Amazon Athena, Amazon EMR и AWS Glue, включают встроенную поддержку фреймворков транзакционных озер данных, включая Apache Iceberg. Apache Iceberg в сочетании с поддерживаемыми сервисами AWS создают озеро транзакционных данных, часто основанное на хранилище в S3.

  • Amazon Athena – это бессерверный интерактивный аналитический сервис, построенный на базе фреймворков с открытым исходным кодом и поддерживающий форматы открытых таблиц и файлов. Athena предоставляет упрощенный и гибкий способ анализа петабайтов данных там, где они находятся. Athena обеспечивает встроенную поддержку запросов на чтение, перемещение во времени, запись и DDL для таблиц Apache Iceberg, использующих формат Apache Parquet для данных и каталог AWS Glue для хранения метаданных. 
  • Amazon EMR – решение для больших данных, способное обрабатывать петабайты данных, выполнять интерактивный анализ и машинное обучение на основе платформ с открытым исходным кодом, таких как Apache Spark, Hadoop, Presto и Hive. Начиная с Amazon EMR 6.5.0, вы можете использовать Apache Spark 3 в кластерах Amazon EMR в формате таблицы Iceberg. Фреймворки EMR, включая Spark, Trino, Flink и Hive, поддерживают Apache Iceberg.
  • AWS Glue — это бессерверный сервис интеграции данных, который упрощает поиск, подготовку, перемещение и интеграцию данных из множества источников для анализа, машинного обучения и разработки приложений.  AWS Glue 3.0 и более поздние версии поддерживают фреймворк Apache Iceberg для озер данных. AWS Glue можно использовать для выполнения операций чтения и записи таблиц Iceberg в Amazon S3 или для работы с таблицами Iceberg с помощью каталога данных AWS Glue. Также поддерживаются дополнительные операции, включая вставку, обновление и все запросы Spark, а также запись Spark. 

AWS: дальнейшие шаги

Дополнительные ресурсы к продукту
Просмотрите сервисы для аналитики  
Зарегистрировать бесплатный аккаунт

Получите мгновенный доступ к уровню бесплатного пользования AWS.

Регистрация 
Начать разработку в консоли

Начните разработку в Консоли управления AWS.

Вход