Инженерия данных относится к построению систем , позволяющих собирать и использовать данные . Эти данные обычно используются для обеспечения последующего анализа и науки о данных , что часто включает машинное обучение . [1] [2] Создание данных, пригодных для использования, обычно требует значительных вычислений и хранения , а также обработки данных .
Около 1970-х/1980-х годов был создан термин «методология информационной инженерии» (IEM) для описания проектирования баз данных и использования программного обеспечения для анализа и обработки данных. [3] [4] Эти методы предназначались для использования администраторами баз данных (DBA) и системными аналитиками на основе понимания потребностей организаций в оперативной обработке в 1980-х годах. В частности, эти методы должны были помочь преодолеть разрыв между стратегическим бизнес-планированием и информационными системами. Ключевым ранним участником (часто называемым «отцом» методологии информационной инженерии) был австралиец Клайв Финкельштейн , который написал несколько статей об этом в период с 1976 по 1980 год, а также был соавтором влиятельного отчета Savant Institute по этому вопросу вместе с Джеймсом Мартином. [5] [6] [7] В течение следующих нескольких лет Финкельштейн продолжал работать в более деловом направлении, которое было призвано решать быстро меняющуюся бизнес-среду; Мартин продолжал работать в более обрабатывающем направлении. С 1983 по 1987 год Чарльз М. Рихтер под руководством Клайва Финкельштейна сыграл значительную роль в модернизации IEM, а также помог разработать программный продукт IEM (пользовательские данные), который помог автоматизировать IEM.
В начале 2000-х годов данные и инструменты для работы с данными, как правило, находились в ведении отделов информационных технологий (ИТ) в большинстве компаний. [8] Затем другие отделы использовали данные для своей работы (например, для составления отчетов), и обычно между этими частями бизнеса практически не было совпадений в навыках работы с данными.
В начале 2010-х годов, с ростом Интернета , колоссальное увеличение объемов данных, скорости и разнообразия привело к появлению термина « большие данные» для описания самих данных, а технологические компании, работающие с данными, такие как Facebook и Airbnb, начали использовать фразу «инженер данных» . [3] [8] Из-за нового масштаба данных такие крупные компании, как Google , Facebook, Amazon , Apple , Microsoft и Netflix , начали отходить от традиционных методов ETL и хранения. Они начали создавать инженерию данных , тип инженерии программного обеспечения, ориентированный на данные, и в частности инфраструктуру , складирование , защиту данных , кибербезопасность , майнинг , моделирование , обработку и управление метаданными . [3] [8] Это изменение подхода было особенно сосредоточено на облачных вычислениях . [8] Данные начали обрабатываться и использоваться многими частями бизнеса, такими как продажи и маркетинг , а не только ИТ. [8]
Высокопроизводительные вычисления имеют решающее значение для обработки и анализа данных. Одним из особенно распространенных подходов к вычислениям для инженерии данных является программирование потока данных , в котором вычисления представлены в виде направленного графа (граф потока данных); узлы являются операциями, а ребра представляют поток данных. [9] Популярные реализации включают Apache Spark и TensorFlow , специфичный для глубокого обучения . [9] [10] [11] Более поздние реализации, такие как Differential/Timely Dataflow, использовали инкрементальные вычисления для гораздо более эффективной обработки данных. [9] [12] [13]
Данные хранятся различными способами, одним из ключевых решающих факторов является то, как данные будут использоваться. Инженеры по данным оптимизируют системы хранения и обработки данных для снижения затрат. Они используют сжатие данных, разбиение на разделы и архивирование.
Если данные структурированы и требуется некоторая форма онлайн-обработки транзакций , то обычно используются базы данных . [14] Первоначально в основном использовались реляционные базы данных с сильными гарантиями корректности транзакций ACID ; большинство реляционных баз данных используют SQL для своих запросов. Однако с ростом данных в 2010-х годах базы данных NoSQL также стали популярными, поскольку они горизонтально масштабировались легче, чем реляционные базы данных, отказываясь от гарантий транзакций ACID, а также уменьшая несоответствие объектно-реляционного импеданса . [15] Совсем недавно стали популярными базы данных NewSQL , которые пытаются разрешить горизонтальное масштабирование, сохраняя гарантии ACID. [16] [17] [18] [19]
Если данные структурированы и требуется онлайн-аналитическая обработка (но не онлайн-обработка транзакций), то хранилища данных являются основным выбором. [20] Они позволяют проводить анализ данных, добычу данных и применять искусственный интеллект в гораздо больших масштабах, чем это позволяют базы данных, [20] и, действительно, данные часто перетекают из баз данных в хранилища данных. [21] Бизнес-аналитики , инженеры по данным и специалисты по данным могут получать доступ к хранилищам данных с помощью таких инструментов, как SQL или программное обеспечение для бизнес-аналитики . [21]
Озеро данных — это централизованное хранилище для хранения, обработки и защиты больших объемов данных. Озеро данных может содержать структурированные данные из реляционных баз данных , полуструктурированные данные , неструктурированные данные и двоичные данные . Озеро данных может быть создано локально или в облачной среде с использованием сервисов поставщиков публичных облаков, таких как Amazon , Microsoft или Google .
Если данные менее структурированы, то зачастую они просто хранятся в виде файлов . Есть несколько вариантов:
Количество и разнообразие различных процессов обработки данных и мест хранения может стать для пользователей подавляющим. Это побудило использовать систему управления рабочим процессом (например, Airflow ), чтобы позволить указывать, создавать и контролировать задачи по данным. [24] Задачи часто указываются как направленный ациклический граф (DAG) . [24]
Бизнес-цели, которые руководители устанавливают для того, что должно произойти, характеризуются в ключевых бизнес-планах, с их более примечательным определением в тактических бизнес-планах и реализацией в операционных бизнес-планах. Большинство предприятий сегодня признают фундаментальную необходимость в разработке бизнес-плана, который следует этой стратегии. Часто бывает трудно реализовать эти планы из-за отсутствия прозрачности на тактическом и операционном уровнях организаций. Этот вид планирования требует обратной связи, чтобы обеспечить раннее исправление проблем, которые возникают из-за недопонимания и неправильного толкования бизнес-плана.
Проектирование систем данных включает в себя несколько компонентов, таких как проектирование платформ данных и проектирование хранилищ данных. [25] [26]
Это процесс создания модели данных , абстрактной модели для описания данных и взаимосвязей между различными частями данных. [27]
Инженер по данным — это тип инженера-программиста, который создает конвейеры ETL больших данных для управления потоком данных в организации. Это позволяет брать огромные объемы данных и переводить их в идеи . [28] Они сосредоточены на готовности данных к производству и таких вещах, как форматы, устойчивость, масштабирование и безопасность. Инженеры по данным обычно имеют опыт разработки программного обеспечения и владеют такими языками программирования, как Java , Python , Scala и Rust . [29] [3] Они будут лучше знакомы с базами данных, архитектурой, облачными вычислениями и разработкой программного обеспечения Agile . [3]
Специалисты по данным больше сосредоточены на анализе данных, они лучше знакомы с математикой , алгоритмами , статистикой и машинным обучением . [3] [30]
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь )