Для обеспечения надежности данных предприятиям требуется качественная транзакционная поддержка, и это особенно характерно для больших объемов данных. Ее отсутствие — одна из болевых точек, которая мешает предприятиям получить максимальную отдачу от своих озер данных (data lake). Как сообщает портал ZDNet, эту проблему взялась решить компания Databricks, основанная разработчиками платформы для обработки неструктурированных данных Apache Spark.
В теории озеро данных выглядит как панацея от всех бед. Фактически оно представляет из себя единый репозиторий, который аккумулирует поступающие из множества источников данные, пригодные для дальнейшей обработки. Однако на практике все выглядит не так гладко: большинство предприятий накапливают данные бессистемно, превращая озера данных в болота. Databricks открыла код платформы Delta Lake с целью помочь предприятиям структурировать различные источники информации в озера с надежными и управляемыми данными.
Исторически так сложилось, что разработчики Hadoop не придавали слишком большого значения озерам данных. Первоначально Hadoop являлся онпремис-решением с файловой системой HDFS (Hadoop Distributed File System), которая предназначается для хранения больших кластеров данных. Выбор HDFS связан с тем, что она является экономически эффективным и надежным хранилищем данных всех форм и размеров, тогда как экосистема Hadoop предлагает множество вариантов обработки этих данных.
Тем не менее, со временем данные, а вместе с ними и озера данных, пережили эволюционные изменения. Основная идея состоит в том, что данные должны храниться в одном большом хранилище, но это не обязательно должно быть локальное хранилище, и не обязательно Hadoop. В современном виде Hadoop стремится стать базовой облачной технологией, и, соответственно, предложить технологию, которая бы позволила концентрировать информацию в едином облачном хранилище (озере данных).
Облачный слой хранения предлагает доступ к данным отовсюду
Как уже говорилось, Databricks имеет отношение к Apache Spark, однако компания в значительной степени модифицировала фреймворк, снабдив его более высоким уровнем абстракции API и более быстрой обработкой данных в памяти (in-memory processing), поэтому он не только дополняет возможности «традиционного» Hadoop, но и может выступать его заменой. Модификация Databricks — Delta Lake — это полностью управляемая Open Source-версия Spark, которая работает в облаке и поставляется с несколькими проприетарными расширениями.
Delta Lake — чисто облачный проект, который применяется рядом крупных клиентов по всему миру. По словам одного из создателей Apache Spark и технического директора Databricks Матея Захарии, клиенты мигрируют со Spark на платформу Databricks по разным причинам, но часто это продиктовано требованиями бизнеса, который все чаше ориентируется на работу с облачными сервисами. Желание клиентов связать озера данных, которые находятся как в облачном, так и в локальном хранилище, и стало для компании побудительным мотивом к созданию решения для обеспечения их надежности.
«Озеро данных сегодня есть почти у каждой компании. Они пытаются добыть из него информацию, но ее ценность и надежность часто вызывает сомнения. Delta Lake устраняет эти проблемы — об этом говорит интерес к этому решению сотен предприятий. Учитывая, что Delta Lake обладает открытым кодом, разработчики смогут беспрепятственно создавать надежные озера данных», — сказал соучредитель и генеральный директор Databricks Али Годси.
Он также пояснил, что из себя представляют «Delta-озера данных» и какие типы файловых систем и данных они поддерживают. «Delta Lake располагается поверх вашей СХД (но не заменяет ее) и предлагает транзакционный уровень хранения как в формате HDFS, так и в формате BLOB-объектов Azure, хранящихся в облачном хранилище, к примеру, S3. Пользователи могут скачать Delta Lake и совмещать его с HDFS в онпремис-варианте. Они также могут считывать данные из любой системы хранения, которая поддерживает источники данных Apache Spark, и записывать в Parquet — формат хранения, который понимает Delta Lake», — сказал Годси.
Databricks отдала предпочтение Apache Parquet, потому что этот колоночно-ориентированный (столбцовый) формат хранения данных изначально создавался для экосистемы Hadoop и не зависит от выбора среды обработки данных. Delta Lake выступает в качестве слоя поверх поддерживаемых форматов хранения данных.
Роль транзакционной поддержки для обеспечения надежности данных
Говоря о преимуществах Delta Lake, разработчик упоминает не только стандартные для систем хранения операции записи-чтения, но и то, что пользователи смогут получить доступ к более ранним версиям своих данных для сверки, производить откат транзакций или репродуцировать эксперименты по машинному обучению.
Так что же Delta Lake предлагает «из коробки», является ли решение новым стандартом данных, инструментом или и тем, и другим? По словам Годси, Delta Lake обеспечивает поддержку транзакций на уровне ACID (Atomicity, Consistency, Isolation, Durability — атомарность, согласованность, изолированность, долговечность) с помощью управления оптимистичным параллелизмом (optimistic concurrency control) записей, изолирует моментальные снимки (чтобы скрыть во время записи мусорные данные), задает параметры версионности, делает откат данных, а также применяет схемы для лучшей обработки типов данных.
«Эти возможности способствуют повышению надежности данных озер, при этом версионность и откат данных предлагаются „из коробки“. Delta Lake — полностью открытое решение и не требует какой-либо интеграции с другими решениями Databricks. Оно нацелено на стандартизацию форматов больших данных, которые хранятся как локально, так и в облаке. Это нужно для того, чтобы подготовить озера данных для аналитики и машинного обучения, поэтому мы выбрали для Delta Lake открытые формат хранения и протокол транзакций. Они предназначены для управления транзакциями, включая потоковые и пакетные курсоры чтения и записи для перемещения данных в Delta-озеро и обратно», — сказал Годси.
Пользователи Delta применяют эти функции с момента выхода платформы в 2017 г., когда еще она была проприетарной. Тогда же было заявлено о намерениях открыть ее код. Несмотря на то, что этого момента пришлось ждать два года, Databricks все это время снабжала Spark в облаке «новыми транзакциями и метаданными».
Сферы применения Delta Lake — наука о данных и машинное обучение
«Мы всегда придерживались той точки зрения, что инновации рождаются в атмосфере сотрудничества, а не в изоляции. Эти убеждения стали движущей силой, которая привела к созданию проектов Spark и MLflow. Delta Lake будет способствовать развитию сообщества разработчиков, которые работают над повышением надежности озер данных и ускорения инициатив в области машинного обучения», — сказал Годси. Delta Lake применяется в таких организациях, как Viacom, Edmunds, Riot Games и McGraw Hill. Databricks надеется, что Delta Lake станет стандартом для хранения больших данных и стремится создать вокруг проекта процветающее сообщество разработчиков Open Source.
По словам Захарии, целевая аудитория Delta Lake на 80% состоит из клиентов, которые занимаются наукой о данных или машинным обучением. Им нужен инструмент, который с течением времени может не только накапливать данные, но и обеспечивать их сохранность и видимость. Однако для корректной работы Delta Lake потребуется создание инструментов оркестровки.
«Как правило, к озерам данных подсоединены один или несколько конвейеров обработки данных, которые их одновременно считывают и записывают, но из-за отсутствия поддержки транзакций инженерам по данным приходится обеспечивать целостность информации вручную. Добавляя в ваши озера данных ACID-транзакции, Delta Lake обеспечивает последовательность операций, что гарантирует наивысший уровень изоляции и значительно упрощает работу по созданию конвейеров больших данных», — сказал Годси.
Delta Lake — это не единственный способ подключить к озерам данных поддержку транзакций. Еще одним решением является СУБД Apache Hive, которая позволяет выполнять запросы, агрегировать и анализировать данные на базе файловой системы HDFS. Однако это достигается комбинированием транзакций и унифицирующего формата данных. Попытку объединить облачное и локальное хранилища, включая поддержку транзакций между ними, предприняла Cloudera, но проект Ozone пока еще не готов к работе на предприятиях.
Понимание данных
Если ключом к пониманию данных является инженерия данных, то путь от конвейеров данных к науке о данных и машинному обучению лежит через транзакции. Добавление поддержки транзакций в озеро данных не гарантирует качественный дата-менеджмент, но Delta Lake должно стать вспомогательным средством на пути к пониманию данных.