Инженерия данных с Databricks: что, почему и как?
В наши дни все говорят об «инженерии данных». Но что это? И чем это отличается от того, что вы делали как архитектор или разработчик баз данных? Прочтите эту статью и узнайте больше!
Что такое инженерия данных?
Большинство из архитекторов и разработчиков баз данных, занимались их проектированием на протяжении всей своей карьеры. Только в последние несколько лет термин «инженерия данных» стал де-факто способом описания перемещения больших объемов данных из источников различных типов, а затем их загрузки и преобразования для анализа представителями бизнеса и специалистами по обработке данных.
Этот термин также используется чтобы различать работу, которую выполняют разработчики баз данных в конвейере данных, и работу в области науки о данных, выполняемую после инженерии данных. Инструменты, доступные для крупномасштабной науки о данных, побудили компании начать крупные проекты в сфере машинного обучения. Однако многие из этих проектов уже потерпели неудачу из-за того, что данные не чистые, не корректные или непригодные для использования. Следовательно, в настоящее время упор делается на инженерию данных, чтобы дать возможность компаниям заниматься наукой о данных и другим анализом, в котором они нуждаются, когда хотят сделать данные более точными и удобными.
Проще говоря: наука о данных – это борьба с данными.
ETL и ELT
Наличие всей вычислительной мощности, которая есть в облаке, и озера данных для хранения всех корпоративных данных в одном месте, изменило конвейер перемещения данных, который мы использовали в течение многих лет. Теперь «Извлечение – преобразование – загрузка» (ETL) переходит в «Извлечение – загрузка – преобразование» (ELT). Поэтому преобразование стало намного более сложной задачей. Теперь данные могут поступать откуда угодно в любом формате и для них могут потребоваться сложные преобразования, а такие инструменты, как SSIS или Informatica, могут их не поддерживать. Преобразования на основе наборов – не всегда лучший способ выполнить эту задачу.
В ETL тяжелую работу выполняет конвейер. Здесь SSIS лучше, но вы столкнетесь с ограничениями ресурсов. В ELT эта работа выполняется в облаке, и там доступны все инструменты. Пора взглянуть на новый набор инструментов.
Ваш новый любимый инструмент инженерии данных – Databricks
Databricks – это продукт, созданный командой, ранее создавшей Apache Spark. На платформе Microsoft Azure он выполняет всю сложную работу, необходимую для создания кластеров из нескольких машин с распределенными данными и запросами. Он обеспечивает унифицированную платформу обработки больших объемов данных с высокой производительностью и масштабируемостью.
Но убийственная особенность инженерии данных – это поддержка нескольких языков и конвейеров данных. Вы можете использовать SQL, Python или Scala в одном процессе. Он также может поддерживать потоковые и графические данные, которые получают из множества различных источников.
Поскольку теперь у нас есть несколько типов данных во всех форматах, нам нужен набор инструментов, который инкапсулирует все эти потребности. Вы используете соответствующий язык и его функции для решения соответствующей задачи. Если он манипулирует реляционными данными, вы используете SQL. Если вам нужно выполнить синтаксический анализ JSON, или поработать со строками, вы можете использовать Python или что-то, требующее объектно-ориентированной поддержки, например, Scala.
Фреймворк Databricks позволяет создавать код, используя любой из вышеперечисленных языков, а также другие языки в одном процессе. Это то, чего у нас никогда раньше не было.
Мы выполняем множество современных проектов по анализу данных с помощью хранилища данных Azure. Там корпоративные хранилища данных строятся из данных множества форматов, а не только из реляционных баз данных. Прежде чем мы сможем перенести данные в хранилище данных Azure, необходимо будет выполнить большой объем обработки, особенно в части обеспечения правильного разделения данных, отсутствия текстовых переводов строк и других распространенных проблем миграции данных. Преобразования Databricks можно построить с использованием Python (для синтаксического анализа строк, не основанных на множестве) и SQL для реляционных запросов внутри одного и того же фрагмента кода преобразования, и это делает его вашим «швейцарским армейским ножом» в инженерии данных.
Как видите, хотя инженерия данных и не нова, сейчас она стала более сложной и включает нереляционные данные, а это требует добавления в наш набор инструментов нереляционных инструментов. Также это стало важным первым шагом для корпоративного хранилища данных и многих проектов в области машинного обучения и искусственного интеллекта.
Дополнительные сведения о Azure Databricks см. в документации по Azure Databricks и наш учебный курс.