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

Современные информационные системы работают с огромными потоками данных, которые увеличиваются с каждым днем ​​в геометрической прогрессии. Этот поток поступает из различных источников, включая информацию о продажах, транзакционные данные, социальные сети и т. Д. Организации работают с этой информацией в процессах, которые могут включать преобразование и агрегирование для разработки приложений, которые стремятся извлечь пользу из этих данных.

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

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

Apache Spark

Для работы с огромным количеством информации, доступной современным потребителям, был создан Apache Spark. Это распределенная вычислительная система на основе кластеров и очень популярный фреймворк, используемый для больших данных. Он обеспечивает скорость и простоту использования и включает API, поддерживающие следующие варианты использования:

  • Простое управление кластером
  • Интеграция данных и процедуры ETL
  • Интерактивная расширенная аналитика
  • ML и глубокое обучение
  • Обработка данных в реальном времени

Он может работать очень быстро с большими наборами данных благодаря своей структуре обработки в памяти, которая позволяет ему работать с очень небольшим количеством операций чтения / записи на диск. Он имеет интерфейс, похожий на SQL, а его объектно-ориентированный дизайн упрощает понимание и написание кода. У него также есть большое сообщество поддержки.

Несмотря на многочисленные преимущества, Apache Spark имеет свои ограничения. Эти ограничения включают следующее:

  • Пользователи должны предоставить инфраструктуру базы данных для хранения информации, с которой они хотят работать.
  • Функция обработки в памяти позволяет ему работать быстро, но также подразумевает, что у него высокие требования к памяти.
  • Он не подходит для аналитики в реальном времени.
  • Ему присуща сложность, требующая значительного обучения.
  • Из-за того, что он имеет открытый исходный код, ему не хватает специального обучения и поддержки клиентов.

Давайте посмотрим на решение этих проблем: Azure Databricks.

Представляем Azure Databricks

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

Databricks - это облачная платформа, которая использует Apache Spark в качестве серверной части и строится поверх нее для добавления таких функций, как:

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

Azure Databricks, созданный совместными усилиями Microsoft и команды, запустившей Apache Spark, обеспечивает простую интеграцию с другими продуктами Azure, такими как хранилище BLOB-объектов и базы данных SQL, а также сервисы AWS, включая корзины S3.

Databricks оптимизирует и упрощает настройку и обслуживание кластеров, одновременно поддерживая различные языки, такие как Scala и Python, что упрощает разработчикам создание конвейеров ETL. Это также позволяет группам данных вести межфункциональную совместную работу в режиме реального времени (благодаря интегрированной рабочей области, похожей на записную книжку), сохраняя при этом значительный объем серверных служб под управлением Azure Databricks. Блокноты можно использовать для создания заданий, которые впоследствии можно будет запланировать, а это означает, что локально разработанные блокноты можно легко развернуть в производственной среде. Другие функции, которые делают Azure Databricks отличным инструментом для любой группы данных, включают следующее:

  • Высокоскоростное подключение ко всем ресурсам Azure, например учетным записям хранения.
  • Кластеры масштабируются и автоматически завершаются в соответствии с использованием.
  • Оптимизация SQL.
  • Интеграция с инструментами бизнес-аналитики, такими как Power BI и Tableau.

Давайте теперь исследуем архитектуру Databricks.

Предпосылки

Чтобы понять темы, представленные в этих статьях, мы будем часто использовать термины науки о данных и инженерии данных. Поэтому требуется хорошее понимание этих тем. Мы будем использовать Python в качестве основного языка программирования, хотя мы также будем использовать SQL для выполнения запросов к представлениям и таблицам.

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

Создание рабочей области Azure Databricks

Начнем с настройки новой рабочей области Databricks через пользовательский интерфейс портала Azure.

Войдите на портал Azure своей подписки и перейдите на ленту служб Azure.

Щелкните Azure Databricks:

Это приведет вас к папке по умолчанию Azure Databricks, в которой вы увидите все свои ресурсы в списке. Щелкните Создать новый ресурс, чтобы создать среду рабочей области Azure Databricks.

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

После успешного развертывания ресурса Azure Databricks вы можете получить доступ к рабочей области. Вы можете получить к нему прямой доступ, нажав кнопку Запустить рабочую область в центре вашего ресурса на портале Azure, или вы можете получить к нему доступ, используя URL-адрес, который отображается в левом центре вашего ресурс. Этот URL-адрес приведет вас к рабочей области, к которой вы получите доступ с помощью входа в Azure AD.

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

Нажмите на значок Кластеры на левой ленте. Откроется окно с возможностью создания нового кластера. Единственное необходимое поле - это название кластера. В остальных полях есть значения по умолчанию, которые мы можем оставить как есть, но лучше взглянуть на них повнимательнее. У нас есть следующие варианты:

  • Кластерный режим: мы можем выбрать от стандартного кластера до кластера с высоким параллелизмом.
  • Пул: это количество резервных вычислительных машин, готовых и ожидающих использования, если вычислительные потребности увеличиваются во время процесса. Это сокращает время раскрутки кластера.
  • Версия среды выполнения Databricks: это относится к версии Scala или Apache Spark, работающей в кластере. Большинство доступных опций теперь позволяют использовать только Python 3.
  • Параметры автопилота: он включает автоматическое масштабирование ресурса вверх и вниз и прекращает работу после заранее определенного количества минут бездействия.

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

После успешного создания кластера мы можем создать новую записную книжку, подключить ее к новому кластеру и запустить на нем код.

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

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

Вы можете использовать Python, потому что это язык по умолчанию только что созданной записной книжки. Но если вы хотите использовать другой язык (например, Scala), помните, что вы можете использовать волшебную команду % scala. Чтобы выполнить код в ячейке, вы можете использовать сочетания клавиш Ctrl + Enter или Shift + Enter. Если кластер, к которому подключен ноутбук, не запущен, вам будет предложено подтвердить, что вы хотите, чтобы он снова запустился. Теперь мы почти готовы обрабатывать данные. Но для этого мы должны помнить о нескольких вещах.

У Databricks уже есть несколько наборов данных для начала! Мы можем использовать утилиты fs для изучения этого. В качестве примера мы можем использовать один из наборов данных о коронавирусе:

Теперь мы готовы использовать данные. Мы загрузим его как Spark DataFrame. Код для этого выглядит следующим образом:

Результат виден на следующем снимке экрана:

После этого мы можем запустить некоторую статистику по фрейму данных:

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

Резюме

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

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

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

Если у вас есть все здесь, вы готовы к следующим статьям. Я надеюсь увидеть вас там! Ваше здоровье!