Истории

Databricks — альтернативная технология хранения большого количества данных

Истории
Елена Лиханова
Елена Лиханова

Старший редактор RB.RU

Елена Лиханова

Современный мир во многом зависит от данных и информации. И чем больше данных появляется, тем сложнее хранить, анализировать и обрабатывать их. Именно эту проблему решает Databricks — аналитическая платформа на базе опен-сорс продукта Apache Stark, которая пытается объединить данные, ИИ и аналитику. В материале — об истории компании и ее продукте.

Databricks — альтернативная технология хранения большого количества данных

Содержание

История компании

Али Годси увлекся программированием в 8 лет, когда родители купили ему подержанный Commodore 64. Он получил высшее образование в области вычислительной техники и Ph.D.в области распределенных вычислений. В 2009 году, объединившись с Ионом Стойкой, они создали Spark — движок для параллельной или распределенной обработки данных. Идею предложил Матей Захария.

Затем вместе с другой командой, которая работала над машинным обучением, они выпустили на рынок Apache Spark — опен-сорс платформу для обработки и анализа данных.

Как рассказывает Али Годси, в 2009 году они видели, как Google и Facebook занимаются машинным обучением на огромных массивах данных. Но большинство их проектов были секретными, и это противоречило духу опен-сорс сообщества. Поэтому они решили разработать аналог с открытым кодом.

Они создали программу, выложили ее в интернете, но никто ее не скачивал. Компании, которым предлагали Spark, называли технологию слишком академичной и непонятной.

«Мы буквально отдавали программу даром, и никто не хотел ее брать», — вспоминает Годси.

В 2013 году они решили создать собственную компанию. Вдохновителем стал Бен Хоровиц (сооснователь венчурной компании Andreessen Horowitz), который инвестировал $14 млн. Так появилась Databricks.

Хочешь быстро стартовать в IT? Выбирай направление для обучения в каталоге курсов программирования.

Основатели проекта — ученые и бывшие студенты Калифорнийского университета в Беркли.

  • Али Годси — сооснователь и CEO Databricks, а также один из создателей Spark. Занимал пост профессора Калифорнийского университета и членом совета директоров RISELab. Он несет основную ответственность за рост и мировую экспансию Databricks.
  • Ион Стойка — сооснователь, первый CEO и президент Databricks, профессор Калифорнийского университета и соруководитель лаборатории по аналитике больших данных AMPLab, преемником которой стала RISELab. Кроме того, он — сооснователь стартапа видеодистрибьюции Conviva.
  • Матей Захария — сооснователь и главный технолог Databricks. Ранее участвовал в проекте Spark, а сейчас является вице-президентом Apache Foundation. В 2014 году получил премию ACM Doctoral Dissertation за исследование крупномасштабных компьютерных систем.
  • Патрик Уэнделл — сооснователь и вице-президент по разработке в Databricks, сыграл важную роль в операционном бизнесе Spark.
  • Рейнольд Син — сооснователь и главный архитектор. Также управляет техническими операциями в Apache Spark.
  • Энди Конвински — сооснователь и вице-президент по менеджменту, его зона ответственности в Databricks — искусственный интеллект. Ранее управлял маркетинговым направлением бизнеса и организовывал Spark Summit.
  • Арсалан Таваколи-Шираджи — сооснователь и старший вице-президент по полевому инжинирингу в Databricks.

Первые годы Databricks были непростыми. Спустя два года после запуска компании она по-прежнему не могла привлечь новых инвесторов. Наконец в 2015 году партнер NEA Пит Сонсин вложил в Databricks дополнительные $30 млн, а CEO Ион Стойка согласился покинуть свой пост и вернуться к преподаванию в Беркли.

Новым гендиректором компании по настоянию Стойки и двух сооснователей стал Али Годси. Решение встретили скептически и установили испытательный срок в один год.

Позже Бен Хоровиц признал: Годси оказался лучшим CEO в портфеле Andreessen Horowitz, которое насчитывает сотни компаний. Под его руководством оценка Databricks выросла почти в 150 раз до $38 млрд.

К 2017 году компания оценивалась уже в $500 млн, но годовая выручка была менее $1 млн. Тогда в Databricks поменяли подход к найму персонала и начали создавать программы с функциями, которые запрашивали крупные предприятия. И с тех пор рост компании был исключительно вертикальным.

Databricks приобрела две компании. Сумма сделок не раскрывается.

  • В 2020 году — Redash, сервис, который помогает ученым и аналитикам визуализировать данные и создавать дашборды.
  • В 2021 году — 8080 Labs, которая работает в сфере low-code/no-code.

Что такое инженерия данных?

Инженерия данных (data engineering) — это разработка и создание систем для сбора, хранения и анализа больших объемов данных. Это широкое направление, которое имеет применения практически в каждой отрасли. Организации могут собирать гигантские массивы данных, и им нужны люди и технологии, которые гарантируют, что дата-сайентисты и аналитики смогут применить эти данные.

Дата-инженер не просто упрощает работу этих специалистов, но и дает компании преимущество в мире, где к 2025 году в день будет производиться 463 эксабайта данных — это единица, после которой идет восемнадцать нулей.

Чем занимается Databricks?

Databricks поставляет среду для хранения и обработки данных, в которой могут работать дата-сайентисты, дата-инженеры и аналитики.

Она объединяет методы «хранилище данных» (Data Warehouse) и «озеро данных» (Data Lake). 

Гибридный подход «хранилище и озеро данных» (Data Lakehouse) предполагает обработку неструктурированных и структурированых больших данных в единой облачной платформе.

Платформа Databricks состоит из нескольких слоев.
  1. Delta Lake — слой хранения, который обеспечивает надежность озер данных. Слой полностью может работать на базе существующего озера данных или подключаться к таким популярным облачным хранилищам, как AWS S3 и Google Cloud.
  2. Delta Engine — оптимизированная система обработки запросов для работы с данными, хранящимися в Delta Lake.

Также в платформу встроены несколько инструментов для поддержки дата-сайенс, BI-отчетности и MLOps.

Все компоненты интегрированы в единое рабочее пространство. Интерфейс можно настроить для любого облака.

Главным конкурентом Databricks называют Snowflake. Однако Snowflake использует традиционный подход «хранилища данных» и изначально создавалась как облачная платформа, тогда как Databricks распространялась по модели открытого ядра.

К аналогам сервиса также относят Cloudera, Datastax, Qubole, MATLAB, Alteryx, Dremio и Intellicus.

Откуда можно получить данные?

Технический директор Матей Захария рассказывает, что на платформу Databricks переходят по разным причинам, но часто это продиктовано требованиями бизнеса, который все чаше ориентируется на работу с облачными сервисами.

Соучредитель и CEO Databricks Али Годси комментирует: «Озеро данных сегодня есть почти у каждой компании. Они пытаются добыть из него информацию, но ее ценность и надежность часто вызывает сомнения. Delta Lake устраняет эти проблемы — об этом говорит интерес к этому решению сотен предприятий. Учитывая, что Delta Lake обладает открытым кодом, разработчики смогут беспрепятственно создавать надежные озера данных».

Озеро данных Delta Lake располагается поверх системы хранения данных клиента (но не заменяет ее) и предлагает транзакционный уровень хранения как в формате HDFS, так и в формате BLOB-объектов Azure, хранящихся в облачном хранилище, к примеру, S3. Пользователи могут скачать Delta Lake и совмещать его с HDFS в версии on-premise.

Данные можно считывать из любой системы хранения, которая поддерживает источники данных Apache Spark, и записывать в Parquet — формат хранения, который понимает Delta Lake. Он был выбран потому, что изначально создавался для экосистемы Hadoop и не зависит от выбора среды обработки данных. Delta Lake выступает в качестве слоя поверх поддерживаемых форматов хранения данных.

Роль транзакционной поддержки для обеспечения надежности данных

Среди преимущества Delta Lake — возможность получить доступ к ранним версиям данных для сверки, производить откат транзакций или репродуцировать эксперименты по машинному обучению.

Delta Lake обеспечивает поддержку транзакций на уровне ACID (Atomicity, Consistency, Isolation, Durability — атомарность, согласованность, изолированность, долговечность) с помощью управления оптимистичным параллелизмом (optimistic concurrency control) записей, изолирует моментальные снимки (чтобы скрыть во время записи мусорные данные), задает параметры версионности, делает откат данных, а также применяет схемы для лучшей обработки типов данных.

Все это помогает стандартизировать большие данные и подготовить их для аналитики и машинного обучения.

Пользователи Delta применяют эти функции с момента выхода платформы в 2017 году, когда еще она была проприетарной. Тогда же было заявлено о намерениях открыть ее код. Несмотря на то, что этого момента пришлось ждать два года, Databricks все это время снабжала Spark в облаке «новыми транзакциями и метаданными».

Сферы применения Delta Lake

Delta Lake применяется в таких организациях, как Viacom, Edmunds, Riot Games, Alibaba Group, Conde Nast, Tableau, Ebay и другими предприятиями по всему миру. Databricks надеется, что Delta Lake станет стандартом для хранения больших данных и стремится создать вокруг проекта процветающее сообщество разработчиков Open Source.

По словам Захарии, целевая аудитория Delta Lake на 80% состоит из клиентов, которые занимаются дата-сайенс или машинным обучением и нуждаются в инструменте, который с течением времени может не только накапливать данные, но и обеспечивать их сохранность и видимость.

Однако для корректной работы Delta Lake требуется создавать дополнительные инструменты оркестровки. Как объясняет Годси, к озерам данных обычно подсоединены один или несколько конвейеров обработки данных, которые их одновременно считывают и записывают, но из-за отсутствия поддержки транзакций инженерам по данным приходится обеспечивать целостность информации вручную.

Добавляя ACID-транзакции, Delta Lake обеспечивает последовательность операций, что гарантирует наивысший уровень изоляции и значительно упрощает работу по созданию конвейеров больших данных.

Delta Lake — это не единственный способ подключить к озерам данных поддержку транзакций. Еще одним решением является СУБД Apache Hive, которая позволяет выполнять запросы, агрегировать и анализировать данные на базе файловой системы HDFS. Однако это достигается комбинированием транзакций и унифицирующего формата данных. Попытку объединить облачное и локальное хранилища, включая поддержку транзакций между ними, предприняла Cloudera, но проект Ozone пока еще не готов к работе на предприятиях.

Delta Lake остается open-source технологией. Однако сегодня большинство коммерческих реализаций Delta Lake, готовых к корпоративному использованию, базируются именно на продукте Databricks.

Как работать с инструментом?

Настройка учетной записи Databricks

Для создания учетной записи перейдите по ссылке. Выберите версию Community Edition — она бесплатна, открывает доступ к хранилищу на 6 Гб и позволяет создать один базовый блокнот.

Используйте действующий email: он потребуется, чтобы подтвердить учетную запись.

Создание кластера

Кластер в Databricks — это набор конфигураций и вычислительных ресурсов, на которых выполняются задачи.

Скриншот: Biconsult

Для начала работы щелкните «Кластер» (New Cluster) и введите новое имя.

Затем выберите версию кластера. Для использования основных компонентов, которые работают на Databricks, подойдет Satabricks Runtime.

Скриншот: Biconsult

Через несколько минут на панели интрументов появится активный кластер.

Создание блокнота

Блокнотом называется интерфейс для запуска и визуализации кода. В Databricks он очень похож на Jupyter.

На вкладке «Рабочая область» (Workspace) в левой вертикальной строке меню нажмите «Создать» (Create) и выберите «Блокнот» (Notebook).

Скриншот: Biconsult

В диалоговом окне укажите имя блокнота, выберите язык (Python, Scala, SQL, R), имя кластера и нажмите кнопку «Создать» (Create). Новый блокнот появится в ранее созданном кластере Spark.

Загрузка данных в Databricks

Перейдите в раздел «Таблицы» (Tables) и нажмите «Создать таблицу» (Create Table).

Здесь можно загрузить файл и выбрать источник данных Spark или другую базу данных.

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

Следующий этап — установить заголовки столбцов, чтобы в них было легче сориентироваться. 

Получаем доступ к данным из блокнота

Загруженные данные представлены в табличном формате.

Чтобы прочитать их, потребуется SQL-запрос. Например, чтобы просмотреть первые 5 строк, можно запустить следующую команду: display(df.limit(5)), а чтобы отобразить столбцы целиком — введите команду df.columns.

Еще один способ — использовать гистограмму. Доступны разные схемы, в том числе круговая, столбчатая, точечная и прочие. Соответствующая иконка расположена под таблицей.

Также Databricks поддерживает инструменты визуализации matplotlib и ggplot.

Просмотр Spark UI

Чтобы просмотреть пользовательский интерфейс Spark, нужно перейти к панели в верхней части страницы, где располагаются вкладки «Файл» (File), «Просмотр» (View), «Разрешения» (Permissions) и другие.

Найдите название кластера и кнопку выпадающего списка. Выберите пункт «Просмотр Spark UI» (View Spark UI). Откроется новая вкладка с информацией о блокноте.

Эта вкладка содержит множество информации и полезна для поиска ошибок. Больше информации о Spark UI можно найти по ссылке.

Завершив работу с блокнотом, можно опубликовать его или экспортировать файл в разных форматах. 

При подготовке материала использованы следующие источники:

The Stack, Startup Talky, Freecodecamp, Coursera, Towardsdatascience, itWeek.

Фото на обложке: Gabby Jones / Bloomberg

Подписывайтесь на наш Telegram-канал, чтобы быть в курсе последних новостей и событий!

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 5 компаний, которым кризис пошел на пользу: что стоит почерпнуть из их опыта?
  2. 2 Рождение звука и инновации восприятия: история компании Dolby
  3. 3 130 лет Philips: от телевизоров и наушников до медицинского оборудования и нейросетей
  4. 4 От пространств для хипстеров к офисам «на районе»: история стартапа «Делатели офисов»
  5. 5 «Мы не делаем "Большого Брата"». Основатель VisionLabs о развитии компании, конкуренции и технологии распознавания лиц
FutureFood
Кто производит «альтернативную» еду
Карта