Инженерия данных становится одной из самых востребованных ролей в сфере технологий. Узнайте, как стать инженером по обработке данных с помощью Databricks, платформы данных для искусственного интеллекта и аналитики.

В предыдущей статье серии мы впервые познакомились с Azure Databricks. Мы ввели потребность в управлении большими объемами данных, что привело к появлению Apache Spark, платформы, на которой построен Azure Databricks. После этих кратких объяснений мы создали рабочую область и исследовали первый набор данных с помощью Spark Dataframes.

Теперь мы углубимся в характеристики рабочего пространства Azure Databricks. Мы изучим предлагаемые им инструменты и получим знания, которые позволят нам создавать аналитику, проводить эксперименты с машинным обучением и поддерживать конвейеры данных с использованием дельта-таблиц и SQL.

Концепции, представленные в этой статье, представляют собой краткий обзор. Если вы хотите узнать больше об этих темах и создать удивительные вещи с помощью Azure Databricks, вы можете найти более подробное объяснение в этой книге.

Давайте прыгнем в это.

Основные концепции

Чтобы в полной мере использовать преимущества работы с Databricks, есть несколько концепций, с которыми мы должны сначала ознакомиться. Вместе они определяют основные инструменты, которые Databricks предоставляет пользователю, и доступны как в пользовательском интерфейсе веб-приложения, так и в REST-API. Наиболее важные концепции:

  • Рабочие области. Рабочая область Azure Databricks - это среда, в которой пользователь может получить доступ ко всем своим активам: заданиям, записным книжкам, кластерам, библиотекам, данным и моделям. Все организовано в папки, что позволяет пользователю сохранять записные книжки и библиотеки и делиться ими с другими пользователями для совместной работы. Рабочее пространство используется для хранения записных книжек и библиотек, но не для подключения или хранения данных.
  • Записные книжки: записные книжки Databricks очень похожи на записные книжки Jupyter в Python. Это приложения с веб-интерфейсом, которые предназначены для запуска кода благодаря запускаемым ячейкам, которые работают с файлами и таблицами. Они также обеспечивают визуализацию и содержат повествовательный текст. Конечным результатом является документ с кодом, визуализациями и текстовой документацией, которым можно легко поделиться. Помимо записных книжек, мы можем запускать код в Azure Databricks через задания. В записных книжках есть набор ячеек, которые позволяют пользователю выполнять команды и могут содержать код на таких языках, как Scala, Python, R, SQL или Markdown. Чтобы иметь возможность выполнять команды, они должны быть подключены к кластеру, но это соединение не обязательно является постоянным. Это позволяет нам легко делиться этими записными книжками через Интернет или на локальном компьютере. Блокноты можно планировать и запускать как задания для создания конвейера данных, запуска моделей машинного обучения или обновления информационных панелей.
  • Кластеры: кластер - это набор подключенных серверов, которые работают вместе, как если бы они были одним (гораздо более мощным) компьютером. В этой среде вы можете выполнять задачи и выполнять код из записных книжек, работая с данными, хранящимися в определенном хранилище или выгруженными в виде таблицы. Эти кластеры имеют средства для управления и контроля доступа к каждому из них. Кластеры используются для повышения производительности и доступности по сравнению с одним сервером, при этом обычно они более рентабельны, чем один сервер с сопоставимой скоростью или доступностью. Мы выполняем наши задачи по науке о данных, конвейеры ETL, аналитику и многое другое в кластерах. Есть два типа кластеров: универсальные кластеры и рабочие кластеры. В универсальных кластерах мы работаем совместно и в интерактивном режиме с использованием ноутбуков, а в кластерах задач мы выполняем автоматические и более конкретные задания. Способы создания этих кластеров различаются в зависимости от того, является ли это универсальным кластером или рабочим кластером. Первый может быть создан с использованием пользовательского интерфейса, интерфейса командной строки или REST API, а второй создается с помощью планировщика заданий для выполнения определенного задания и завершается, когда это делается.
  • Задания. Задания - это задачи, которые мы выполняем при выполнении записной книжки, JAR или файла Python в определенном кластере. Выполнение может быть создано и запланировано вручную или с помощью REST API.
  • Файловая система Databricks. Azure Databricks развертывается с распределенной файловой системой. Эта система монтируется в рабочей области и позволяет пользователю монтировать объекты хранения и взаимодействовать с ними, используя пути файловой системы. Это позволяет нам сохранять файлы, поэтому данные не теряются при завершении работы кластера.
  • Данные: данные можно импортировать в подключенную файловую систему Azure Databricks из различных источников. Его можно загрузить в виде таблиц непосредственно в рабочую область из хранилища BLOB-объектов Azure или AWS S3.
  • Таблицы. Эти таблицы могут быть глобальными или локальными, первая из которых доступна во всех кластерах. Доступ к локальной таблице из других кластеров невозможен.
  • Эксперименты. Каждый раз, когда мы запускаем MLflow, он относится к определенному эксперименту. Эксперименты - это центральный способ организации и управления всеми запусками MLflow. В каждом эксперименте пользователь может искать, сравнивать и визуализировать результаты, а также загружать артефакты или метаданные для дальнейшего анализа.
  • Модели. При работе с машинным обучением или глубоким обучением модели, которые мы обучаем и используем для вывода, регистрируются в реестре моделей MLflow Azure Databricks. MLflow - это платформа с открытым исходным кодом, предназначенная для управления жизненными циклами машинного обучения, включая отслеживание экспериментов и прогонов. Реестр моделей MLflow - это централизованное хранилище моделей, которое позволяет пользователям полностью контролировать жизненный цикл моделей MLflow. Он имеет функции, которые позволяют нам управлять версиями, переходить между различными этапами, иметь хронологическое наследие модели и управлять аннотациями и описаниями версий модели.

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

Использование ноутбуков

Основным аспектом Azure Databricks являются записные книжки, на которых мы указываем код, который будет запускаться в кластерах. Ноутбуки могут быть на разных языках программирования, таких как Python, SQL, Scala и R. Помимо того, что они являются просто исполняемыми частями кода, они также предлагают более совместный подход, позволяя нам включать текст как Markdown и делиться им с другими пользователями в рабочей области.

Есть разные способы взаимодействия с записными книжками в Azure Databricks. Мы можем получить к ним доступ через пользовательский интерфейс с помощью команд CLI или с помощью API рабочей области. А пока мы сосредоточимся на пользовательском интерфейсе.

Нажмите кнопку «Рабочая область» или «Домой» на боковой панели, выберите значок раскрывающегося списка рядом с папкой, в которой мы создадим блокнот. В диалоговом окне «Создать записную книжку» мы выберем имя для записной книжки и выберем язык по умолчанию.

Чтобы иметь возможность выполнять код в наших записных книжках, нам нужно подключить его к работающему кластеру. Вы можете сделать это, создав новый кластер или запустив ранее завершенный кластер. Это позволяет вам воссоздать ранее завершенный кластер с его исходной конфигурацией. Кластеры можно запустить из списка кластеров, списка подключенных кластеров на странице сведений о кластере записной книжки:

Ноутбуки имеют панель инструментов, содержащую информацию о кластере, к которому он прикреплен. Вы можете использовать панель инструментов для выполнения таких действий, как экспорт записной книжки или изменение предустановленного языка (в зависимости от версии среды выполнения Databricks):

Эта панель инструментов помогает нам перемещаться по общим параметрам в нашей записной книжке и упрощает управление тем, как мы взаимодействуем с вычислительным кластером. В ячейках есть код, который можно выполнить:

Markdown - это легкий язык разметки с синтаксисом простого текстового форматирования. Он часто используется для форматирования файлов readme, что позволяет создавать форматированный текст с использованием обычного текста. Как мы видели ранее, Azure Databricks позволяет использовать Markdown для документации с помощью волшебной команды% md. Затем разметка преобразуется в HTML с желаемым форматированием. Например, следующий код используется для форматирования текста как заголовка.

% md # Здравствуйте, это заголовок

Он отображается как заголовок HTML:

Таблицы, относящиеся к кластеру, который вы в настоящее время используете, можно просмотреть, нажав кнопку со значком данных на боковой панели. В папке Databases отобразится список таблиц в каждой из выбранных баз данных:

Azure Databricks предоставляет инструменты, которые позволяют быстро и легко форматировать код SQL в ячейках записной книжки. Эти инструменты сокращают усилия по поддержанию форматирования кода и помогают обеспечить соблюдение одних и тех же стандартов кодирования в ваших записных книжках.

В Azure Databricks есть функция форматирования кода SQL в ячейках записной книжки, чтобы сократить время, затрачиваемое на форматирование кода. Это также помогает обеспечить соблюдение стандартов кодирования в ноутбуках. Чтобы применить автоматическое форматирование SQL к ячейке, вы можете выбрать ее в контекстном меню ячейки. Это применимо только к ячейкам кода SQL.

Каждый раз, когда вы запускаете запрос с использованием SQL или другого языка в Spark Dataframe, вы можете загрузить табличные результаты из ячейки на локальный компьютер, нажав кнопку загрузки в нижней части ячейки.

По умолчанию Azure Databricks ограничивает просмотр 1000 строк DataFrame. Но если есть больше данных, мы можем щелкнуть значок раскрывающегося списка и выбрать Загрузить полные результаты, чтобы увидеть больше.

Резюме

В этой статье мы узнали больше об основных функциях записных книжек и узнали основные концепции Databricks. Мы широко рассмотрели возможность добавления документации в виде текста Markdown между исполняемым кодом, запроса данных, хранящихся в виде таблиц, форматирования сложного кода SQL в читаемые блоки кода и извлечения данных из запросов на локальный компьютер.

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

Как всегда, если вы хотите узнать больше об этих темах и создать удивительные вещи с помощью Azure Databricks, вы можете найти более подробное объяснение в этой книге.

Если вы пропустили предыдущую статью, вы можете найти ее здесь.

Спасибо, что прочитали, и присоединяйтесь ко мне в следующей статье!