stringtranslate.com

Инженерия данных

Инженерия данных относится к построению систем , позволяющих собирать и использовать данные . Эти данные обычно используются для обеспечения последующего анализа и науки о данных , что часто включает машинное обучение . [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]

Смотрите также

Ссылки

  1. ^ «Что такое Data Engineering? | Краткий обзор Data Engineering». EDUCBA . 5 января 2020 г. Получено 31 июля 2022 г.
  2. ^ "Введение в инженерию данных". Dremio . Получено 31 июля 2022 г. .
  3. ^ abcdef Блэк, Натан (15 января 2020 г.). «Что такое инженерия данных и почему она так важна?». QuantHub . Получено 31 июля 2022 г.
  4. ^ "Информационная инженерия - обзор | Темы ScienceDirect". www.sciencedirect.com . Получено 23 августа 2022 г. .
  5. ^ «Информационная инженерия», часть 3, часть 4, часть 5, часть 6» Клайва Финкельштейна. В Computerworld, In deeps, приложение. 25 мая – 15 июня 1981 г.
  6. ^ Кристофер Аллен, Саймон Чатвин, Кэтрин Крири (2003). Введение в реляционные базы данных и программирование SQL.
  7. ^ Терри Хэлпин , Тони Морган (2010). Информационное моделирование и реляционные базы данных. стр. 343
  8. ^ abcde Доддс, Эрик. «История инженерии данных и мегатренды». Rudderstack . Получено 31 июля 2022 г.
  9. ^ abc Schwarzkopf, Malte (7 марта 2020 г.). «Замечательная полезность вычислений с потоками данных». ACM SIGOPS . Получено 31 июля 2022 г.
  10. ^ "sparkpaper" (PDF) . Получено 31 июля 2022 г. .
  11. ^ Абади, Мартин; Бархам, Пол; Чэнь, Цзяньминь; Чэнь, Чжифэн; Дэвис, Энди; Дин, Джеффри; Девин, Матье; Гемават, Санджай; Ирвинг, Джеффри; Айсард, Майкл; Кудлур, Манджунат; Левенберг, Джош; Монга, Раджат; Мур, Шерри; Мюррей, Дерек Г.; Штайнер, Бенуа; Такер, Пол; Васудеван, Виджай; Уорден, Пит; Вике, Мартин; Юй, Юань; Чжэн, Сяоцян (2016). «TensorFlow: система для крупномасштабного машинного обучения». 12-й симпозиум USENIX по проектированию и внедрению операционных систем (OSDI 16) . стр. 265–283 . Получено 31 июля 2022 г.
  12. ^ Макшерри, Фрэнк; Мюррей, Дерек; Айзекс, Ребекка; Айсард, Майкл (5 января 2013 г.). «Дифференциальный поток данных». Microsoft . Получено 31 июля 2022 г. .
  13. ^ "Differential Dataflow". Timely Dataflow. 30 июля 2022 г. Получено 31 июля 2022 г.
  14. ^ "Конспект лекций | Системы баз данных | Электротехника и компьютерные науки | MIT OpenCourseWare". ocw.mit.edu . Получено 31 июля 2022 г. .
  15. ^ Ливитт, Нил (2010). «Оправдают ли базы данных NoSQL свои обещания?» (PDF) . IEEE Computer . 43 (2): 12–14. doi :10.1109/MC.2010.58. S2CID  26876882.
  16. ^ Аслетт, Мэтью (2011). «Как отреагируют производители баз данных на NoSQL и NewSQL?» (PDF) . 451 Group (опубликовано 4 апреля 2011 г.) . Получено 22 февраля 2020 г. .
  17. ^ Павло, Эндрю; Аслетт, Мэтью (2016). «Что действительно нового в NewSQL?» (PDF) . Запись SIGMOD . Получено 22 февраля 2020 г. .
  18. ^ Стоунбрейкер, Майкл (16 июня 2011 г.). «NewSQL: альтернатива NoSQL и старому SQL для новых приложений OLTP». Сообщения блога ACM . Получено 22 февраля 2020 г.
  19. ^ Хофф, Тодд (24 сентября 2012 г.). «Самое удивительное открытие Google Spanner: NoSQL уходит, а NewSQL приходит» . Получено 22 февраля 2020 г.
  20. ^ ab "Что такое хранилище данных?". www.ibm.com . Получено 31 июля 2022 г. .
  21. ^ ab "Что такое хранилище данных? | Ключевые концепции | Amazon Web Services". Amazon Web Services, Inc. Получено 31 июля 2022 г.
  22. ^ abc «Хранилище файлов, блочное хранилище или объектное хранилище?». www.redhat.com . Получено 31 июля 2022 г. .
  23. ^ "Cloud Object Storage – Amazon S3 – Amazon Web Services". Amazon Web Services, Inc. Получено 31 июля 2022 г.
  24. ^ ab "Home". Apache Airflow . Получено 31 июля 2022 г. .
  25. ^ "Введение в инженерию данных". Coursera . Получено 31 июля 2022 г.
  26. ^ Финкельштейн, Клайв. Каковы фазы информационной инженерии .
  27. ^ "Что такое моделирование данных? Обзор, основные концепции и типы в деталях". Simplilearn.com . 15 июня 2021 г. . Получено 31 июля 2022 г. .
  28. ^ Тамир, Майк; Миллер, Стивен; Гальярди, Алессандро (11 декабря 2015 г.). «Инженер данных». Рочестер, Нью-Йорк. doi :10.2139/ssrn.2762013. S2CID  113342650. SSRN  2762013. {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  29. ^ «Data Engineer vs. Data Scientist». Springboard Blog . 7 февраля 2019 г. Получено 14 марта 2021 г.
  30. ^ «Что такое наука о данных и почему она важна». Edureka. 5 января 2017 г.

Дальнейшее чтение

Внешние ссылки