Как Apache Iceberg победил в войне за открытые таблицы
Apache Iceberg сравнительно недавно стал стандартом открытых таблиц для крупных наборов данных. Он может похвастаться активным сообществом и поддержкой многих ведущих поставщиков инфраструктуры данных. Но почему именно Iceberg стал самым популярным форматом? И что нужно знать, прежде чем погружаться в него?
Iceberg - это высокопроизводительный формат таблиц, который обеспечивает надежность и простоту таблиц SQL для анализа крупномасштабных данных. Его экосистема развивается быстро, предлагая надежные инструменты и поддержку со стороны таких движков, как Apache Spark, Trino и Apache Flink, а также таких вендоров (Snowflake, Amazon, Dremio и Confluent). Даже Databricks делает ставку на Iceberg, потратив более 1 млрд долларов на Tabular, стартап, соучредителями которого являются некоторые из соавторов Iceberg.
Чтобы понять, почему данный формат таблиц привлек столько внимания, давайте подумаем о сложной реальности современных корпоративных сред данных. Как бы мы ни любили говорить об элегантности современных решений, таких как облачные озера данных и облачные хранилища данных, эти технологии не существуют сами по себе. Вместо этого большинство крупных предприятий представляют собой лоскутное одеяло из несовместимых хранилищ данных и приложений для работы с данными от нескольких поставщиков.
Как мы сюда попали
В свое время базы данных с онлайн обработкой транзакций (OLTP) были доминирующей архитектурой для хранения и анализа данных. Затем они уступили свое место хранилищам данных и онлайн системам аналитической обработки (OLAP), которые позволяли проводить более высокопроизводительную аналитику, но были дорогостоящими и трудно масштабируемыми. Чуть позже появилось озеро данных, обеспечивающее объединение структурированных и неструктурированных данных в одном месте.
Большим преимуществом озер данных является предоставление единого пула данных в архитектуре, которая отделяет хранение от вычислений, что делает масштабирование экономически эффективным. Широкое распространение Apache Parquet, формата колоночного хранения данных с открытым исходным кодом, позволяет еще больше снизить затраты на хранение благодаря эффективным схемам сжатия и кодирования данных.
Все это хорошо, но, как мы знаем, существующие технологии имеют привычку задерживаться, поэтому многие из этих архитектур существуют бок о бок на одном и том же предприятии. Iceberg вышел на первый план, потому что он позволяет элегантно соединить эти совершенно разные миры.
Раздрозненная реальность, в которой живет большинство предприятий, не обязательно обусловлена неправильным принятием решений. За последние несколько лет произошел всплеск слияний и поглощений, что привело к тому, что в одной компании сосуществуют разные технологические платформы. Человеческая природа также играет свою роль: одна команда инженеров может страстно верить в Databricks, в то время как другая может любить Snowflake, (возможно, основывась на положительном опыте работы в предыдущей компании). Такие привязанности могут еще больше усложнить реальность корпоративных архитектур данных.
Независимо от причины, такие разрозненные среды приводят к проблемам с доступом к данным и управлением ими. Команды по работе с данными часто хотят объединить данные из разных систем, где бы они ни хранились, а несовместимые системы делают этот союз непрактичным и дорогостоящим. Они могут копировать нужные им наборы данных в другой формат, чтобы обеспечить доступ, но это слишком дорого, да и копии данных редко остаются актуальными в течение долгого времени.
Почему именно Iceberg оказался на высоте
Iceberg не обязательно превосходит другие открытые форматы файлов в технологическом плане - все, что делает рабочая группа Iceberg, находится на виду и может быть скопировано другими проектами. Но Iceberg - это действительно открытый стандарт, получивший поддержку таких крупных компаний, как Confluent, Amazon, Snowflake и Databricks. Не факт, что Iceberg - единственный формат, который мог бы привлечь массу пользователей и поддержку индустрии, но сделал это именно он. И он действительно очень хорошо выполняет свою задачу.
Если Ваша организация использует Iceberg, Вы можете подключить любой механизм обработки, совместимый с Iceberg, и выполнять самые различные задачи, например, изменять файлы в режиме реального времени или уплотнять таблицы для повышения производительности чтения. Iceberg обеспечивает чистое разделение данных и слоя данных (состоящего из хранилища, управления и оптимизации) от движка обработки, который будет записывать, запрашивать и обновлять данные.
Самое лучшее в Iceberg - это то, что он позволяет управлять данными отдельно от движков запросов и обработки. Он является частью «архитектуры безголовых данных», где данные доступны как в виде таблиц, так и в виде потоков, и Вы можете использовать любой из них (или оба) для аналитики, операций и всего, что находится между ними. Iceberg предоставляет надежную, широко распространенную и производительную технологию, обеспечивающую простоту записи, обнаружения и использования данных, независимо от сценария использования.
Вам все еще есть, над чем поработать
Хотя Apache Iceberg и обладает множеством преимуществ, он все же не является исчерпывающим продуктом, предлагающим все и сразу прямо из коробки. Если Вы решите внедрять технологии самостоятельно, а не с помощью управляемой службы, Вам придется создавать некоторые вещи с нуля.
- В Iceberg отсутствуют некоторые базовые функции обслуживания, которые есть в других коммерческих или управляемых предложениях. Например, в нем нет готовой реализации уплотнения данных, моментальных снимков мира с истекающим сроком действия и других рутинных функций обслуживания. API существуют и являются частью Iceberg, но они должны быть созданы и управляться разработчиком. (Обратите внимание, что одним из ценных предложений Tabular было и есть предоставление именно такой функциональности - ожидайте, что в будущем появится больше сервисов Iceberg, предлагающих то же самое).
- Iceberg не оснащен предусмотренным способом обработки безопасности и управления, поэтому разработчику придется интегрировать его таким образом, чтобы он мог дать разрешение процессорам, которые будут его использовать.
- Пока все еще нет согласованного стандарта для каталога метаданных. Совсем недавно компания Snowflake открыла свой каталог Polaris, а Databricks приобрела компанию Tabular и сделала то же самое. Однако четкого стандарта де-факто для каталога Iceberg пока не существует.
С учетом мозаики из конфигураций OLTP, OLAP и озер данных перспективы Iceberg заключаются в его способности вносить порядок в хаос, обеспечивая тем самым доступ к данным, где бы они ни находились, без необходимости создавать слабые одноразовые соединения. Несмотря на простоту интеграции и широкую поддержку, открытый формат таблиц еще не является «plug and play», но он продолжает развиваться и закладывает основу для устойчивых стратегий работы с данными, которые могут видоизменяться и масштабироваться в зависимости от потребностей бизнеса.




