Перейти к главному контенту

Что такое Apache Iceberg?

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

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

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

  • Atomicity гарантирует, что каждая транзакция — это отдельное событие, которое либо успешно завершается, либо полностью проваливается; промежуточного статуса не существует.

  • Согласованность обеспечивает достоверность всех записанных данных в соответствии с определенными правилами озера данных, а также точность и надежность данных.

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

  • Надежность означает, что данные не будут потеряны или повреждены после отправки транзакции. Данные могут быть восстановлены в случае сбоя системы, например отключения электроэнергии.

Каковы преимущества использования 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?

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

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

Apache Iceberg предлагает быстрый и эффективный способ масштабной обработки больших наборов данных. Это дает следующие преимущества:

  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 Redshift , Amazon Athena , Amazon EMR , AWS Glue и Amazon Data Firehose , включают встроенную поддержку Фреймворки транзакционных озер данных, включая Apache Iceberg. Apache Iceberg в сочетании с поддерживаемыми сервисами AWS создают озеро транзакционных данных, часто основанное на хранилище в S3.

  • Amazon Redshift — это полностью управляемый сервис аналитики и хранения данных SQL на базе искусственного интеллекта, позволяющий клиентам быстро и экономично принимать бизнес-решения. Amazon Redshift предлагает многокластерную и бессерверную архитектуру с массово-параллельной обработкой (MPP) и возможностями интеграций с нулевым использованием ETL, которые обеспечивают аналитику, близкую к реальному времени. Кроме того, с помощью этого сервиса можно реализовывать сценарии использования искусственного интеллекта и машинного обучения с общим доступом к данным. Клиенты могут использовать Amazon Redshift для запросов к таблицам Apache Iceberg в озере данных, доступ к которым осуществляется через каталог данных AWS Glue, и объединять их со своими таблицами в хранилище данных для комплексной аналитики.

  • 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 — это бессерверный сервис интеграции данных, который упрощает поиск, подготовку, перемещение и интеграцию данных из нескольких источников для аналитики, машинного обучения (ML) и разработки приложений.  AWS Glue 3.0 и более поздние версии поддерживают фреймворк Apache Iceberg для озер данных. AWS Glue можно использовать для выполнения операций чтения и записи таблиц Iceberg в Amazon S3 или для работы с таблицами Iceberg с помощью каталога данных AWS Glue. Также поддерживаются дополнительные операции, включая вставку, обновление и все запросы Spark, запись в Spark.

  • Amazon Data Firehose — это полностью управляемый бессерверный сервис для доставки потоковых данных в реальном времени таким адресатам, как Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Amazon OpenSearch Serverless, Splunk, Snowflake, Apache Iceberg Tables, а также любым настраиваемым конечным точкам HTTP или конечным точкам HTTP, принадлежащим поддерживаемым сторонним поставщикам услуг, включая Datadog, Dynatrace, LogicMonitor, MongoDB, New Relic, Коралогикс и эластик. При работе с Данными Amazon Firehose вам не требуется разрабатывать какие-либо приложения и контролировать ресурсы. Достаточно настроить источники данных на отправку в сервис «Данные Amazon Firehose», и он автоматически будет доставлять данные в указанное назначение. Можно также настроить Amazon Data Firehose для преобразования данных перед их доставкой.