Добрый день, уважаемые читатели! Данная публикация посвящена Databricks и она получилась не совсем обычный по двум причинам.  Во-первых, в ней не будут обсуждаться типичные вопросы: целесообразность перевода всех сервисов и служб компаний в облако, возможные ошибки при такой миграции, стоимость использования сервиса, правовые аспекты хранения данных не на территории РФ. Это темы сложные, дискуссионные и без указания конкретных цифр и бизнес-факторов их сложно полноценно раскрыть в статье. Поэтому я решил посмотреть на Databricks под другим углом и заострить внимание читателей на таком аспекте: что может дать изучение инструмента аналитику данных. Во-вторых, чтобы обзор продукта был максимально комплексным и технически взвешенным я с самого начала планировал написать материал в соавторстве с инженером данных и специалистом в сфере data science. В таком случае была бы возможность донести до читателей концепцию Delta Lake и рассказать о нюансах машинного обучения. Но предложение не нашло отклика в сердцах коллег по цеху, поэтому итоговый результат получился в стиле: “Я художник - я так вижу!”) Это была преамбула, а теперь настало время познакомиться поближе с Databricks. Для начала работы с платформой нужно пройти регистрацию на сайте. Сразу стоит оговориться, что лучше указывать корректные данные, которые позволят без проблем пройти спам-фильтр. Если с предоставленными реквизитами все в порядке, появляется возможность выбрать один из двух вариантов взаимодействия с облачным сервисом: trial-версия и community. Рекомендую выбирать последний вариант, так как хотя он и несколько уступает в плане функциональности trial-версии, но не имеет временных ограничений и полностью бесплатен. Это позволит построит процесс изучения в комфортном для каждого темпе. Начало работы с инструментом начинается со стартового рабочего поля. Для аналитика данных основными здесь будут 4 раздела: кластера, пункт по загрузке локальных файлов в облачное хранилище, ноутбуки, базы данных. Остальные компоненты, на мой взгляд, относятся больше к сфере data engineering и data science. На образном примере я постараюсь объяснить, что такое Databricks. Для многих читателей данное сравнение покажется совершенно неразумным. Я знаю, что проводить параллели между столь разными программными продуктами совершенно некорректно, но апеллирование к уже знакомым технологиям всегда упрощает понимание нового.  Возьмем Google Colab. Мы запускаем ноутбук и устанавливаем Spark. Затем инсталлируем реляционную базу данных. Самое интересное, эти манипуляции реальны, их без труда может выполнить любой специалист. На финальном этапе мы заливаем данные в БД и с помощью Spark начинаем проводить необходимые расчеты. Теперь представьте, что описанный функционал уже по умолчанию развернут на облачной платформе. Прибавьте суда поддержку из коробки четырех языков работы с данными: SQL, Python, R, Scala. В итоге мы получаем рассматриваемый инструмент. Надеюсь, что такой метафорой я никого не сбил с толку. Пойдем дальше и посмотрим на основные разделы более предметно. Перед тем, как открывать новый ноутбук, нужно запустить кластер. На старте возможно вручную задать некоторые параметры, но можно и ставить все пункты по умолчанию. Если вам потребуется функционал какой-то специфической библиотеки, то ее легко инсталлировать в одноименном разделе. В рамках демонстрационного примера я захотел задействовать файл формата xlsx. Наверное, многих это может удивить, но в этом нет ничего особенного. И вот вам самый простой пример из жизни. Факты хозяйственной деятельности предприятия занимают много места и хранятся в БД, а плановые показатели - агрегированные величины. В ряде случаев в департамент по работе с данными они попадают в виде файлов xlsx. Отводить место в БД под плохо структурированные данные ситуационной аналитики в большинстве случаев нет никакого смысла, но обрабатывать их нужно. Столкнувшись с нетиповой ситуацией, начинаем искать решение. В данном примере ответом на вопрос был пакет com.crealytics:spark-excel. Когда кластер создан и запущен, можно подумать об источниках информации. В реальной ситуации вам не придется генерировать тестовой массив, так как у компании уже будет какая-то база данных. Но в рамках демо-примера я взял за основу три файла с данными (csv, json, xlsx), чтобы затем на их основе строит расчеты. Добавление файлов в систему происходит настолько просто, что нет особого смысла останавливаться на данном моменте. Единственное замечание, которое я хотел бы сделать касательно данного раздела. Если таблица данных плохо подготовлена к заливке в БД, то лучше не использовать пользовательский интерфейс, а прописать процедуру кодом. Вся подготовительная работа выполнена, можно запускать первый ноутбук. Чтобы посмотреть на файлы, которые мы можем задействовать в работе, используем встроенную утилиту. По сути, она помогает использовать команды Linux. Вручную манипулировать локальными файлами в системе не получиться. На старте в системе отсутствуют пользовательские базы данных. Исправить это “недоразумение” поможет стандартный язык запросов SQL, который хорошо знаком всем, кто хоть раз работал с реляционной БД. Чтобы упростить задачу я поместил информацию о фактических продажах в стандартный файл формата csv, который не требует каких-либо предварительных трансформаций перед заливкой в БД. Единственный недочет - разделитель (точка с запятой), и его мы укажем прямо по ходу. Проверяем результат азбучным запросом. Писать его можно так, как будто вы работаете в окне менеджера базы данных. Нюанс, который следует запомнить. При создании ноутбука вам предлагается выбрать язык манипулирования данными, который будет поддерживаться по умолчанию. Я выбрал Python, поэтому при написании скриптов SQL потребовалось указывать в начале кода специальную метку - %sql. Данное замечание справедливо также в отношении инъекций на языке R и Scala.  Результат sql-запроса легко можно сохранить в датафрейм Spark. Тема работы с данными посредством Spark довольно обширна. Помимо pandas-подобных манипуляций с массивами информации возможно также практиковать машинное обучение. Тема “разрастается” еще больше, так как взаимодействовать со Spark можно посредством SQL, R, Python, Scala, Java (последний язык облачный сервис не поддерживает). Если вы решили самостоятельно разобраться как обрабатывать информацию с помощью Spark, могу порекомендовать книги по заявленному вопросу двух издательств O’Reilly и Apress. В качестве основной книги для комплексной подготовки назову рукопись “Learning Spark. Lightning-Fast Data Analytics” 2020 года. Но просто прочитать книгу это одно, а вот запомнить все многообразие синтаксических конструкций - другое. Поэтому на первом этапе вам не помешает шпаргалка. Относительно удачный вариант формата pdf вы можете найти на портале Datacamp.  Если вам захочется самостоятельно повторить все этапы расчетов, приведенные на скриншотах, то демонстрационный ноутбук и необходимые файлы можно скачать в репозитории на Гитхаб. Важно также понимать, что целью таких скриптов может быть не только построение отчетов по запросу руководства, но и расчет витрин данных на регулярной основе. Поговорим немного о функционале системы по построению графиков и диаграмм. Для того, чтобы отобразить данные на графике в ноутбуках Google Colab, используются библиотеки matplotlib и seaborn, и прорисовка элементов диаграмм осуществляется посредством кода. Что же касается разработчиков Databricks, то они пошли другим путем и дали возможность пользователям создавать визуализации в режиме графического редактора. В комплект системы входят самые распространенные графики, которые по желанию аналитика могут быть собраны на отдельный дашборд. Сразу стоит оговориться, что данный функционал по возможностям не может тягаться с профессиональными и узкоспециализированными BI-решениями. Визуализации в данном случае носят вспомогательный характер, позволяя инженеру или аналитику глазами контролировать ситуацию с данными в системе. Краткие выводы Для аналитика данных облачный сервис представляет собой сплав уже знакомых технологий и инструментов, поэтому для самостоятельного изучения подойдет как документация по продукту, так и сторонняя литература. Платформа хорошо подойдет тем специалистам, кто хочет разобраться со Spark, при этом ничего не устанавливая на свой ПК.  Наработанные подходы и практики в результате взаимодействия с Databricks могут быть с успехом применяться в сторонних решениях. На этом все. Всем здоровья, удачи и профессиональных успехов!