Обзор

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

Из множества представленных методологий конвейера данных в этой статье кратко обсуждается наиболее часто используемый конвейер ETL.

Краткое содержание этой статьи:

  • Введение в конвейер ETL
  • Пример
  • Этапы в конвейере ETL

Небольшой пример кода для конвейера ETL можно найти в моем GitHub.

Введение в конвейер ETL

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

Пример

Представьте, что существует база данных, содержащая данные веб-журнала. Каждая запись в данных содержит IP-адрес пользователя, метку времени и ссылку, по которой пользователь щелкнул.

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

С помощью конвейера ETL вы могли запускать код один раз в день, который извлекал бы данные журнала предыдущего дня, сопоставлял IP-адрес с городом, агрегировал переходы по ссылкам по городам, а затем загружал эти результаты в новую базу данных. Таким образом, аналитик или ученый будет иметь доступ к таблице данных журнала по городам и дням. Это удобнее, чем всегда выполнять одни и те же сложные преобразования данных в необработанных данных веб-журнала.

Использование конвейера ETL имеет смысл, потому что до использования облачных вычислений компании и предприятия хранили свои данные на частных серверах, которые были дорогими, а выполнение запросов к огромным наборам данных могло быть очень затратным с точки зрения времени и экономии.

Этапы в ETL

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

Базовый конвейер ETL можно разделить на следующие этапы:

  • Извлечение данных из разных источников
  • Преобразование данных и подготовка их к будущим операциям
  • Загрузка данных в требуемую систему хранения

Теперь давайте кратко рассмотрим каждый шаг.

Извлечение данных

Целью процесса извлечения в ETL является легкое извлечение всех необходимых данных из источника. Наиболее распространенные источники данных, из которых можно извлечь данные:

  1. Базы данных
  2. Файлы
  3. Интернет
  4. Другие источники, такие как пользовательские каналы (RSS-каналы)

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

  • CSV: CSV означает значения, разделенные запятыми. В этих типах файлов значения разделяются запятой, и каждая запись находится в отдельной строке. Часто первая запись содержит имена переменных.
  • JSON: JSON - это формат файла с парами ключ / значение. Похоже на словарь Python. Каждая строка данных находится внутри волнистой скобки {}. Имена переменных - это ключи, а значения переменных - это значения.
  • XML: XML очень похож на HTML с точки зрения форматирования. Основное различие между ними заключается в том, что HTML имеет заранее определенные стандартизованные теги. В XML теги можно адаптировать к набору данных. Вот как эти же данные будут выглядеть в формате XML.
  • Файлы БД (базы данных SQL): базы данных SQL хранят данные в таблицах с использованием первичных и внешних ключей.
  • Текстовые файлы: текстовый файл (.txt) будет содержать только текст.

Преобразование данных

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

Например, инженеры и специалисты по обработке данных часто работают с данными, поступающими из более чем одного источника. Им может потребоваться извлечь некоторые данные из файла CSV, другие данные из базы данных SQL, а затем объединить эти два набора данных вместе. Следовательно, исходные наборы данных преобразуются для создания новых наборов данных.

Преобразование данных включает:

  • Очистка и объединение данных из нескольких источников
  • Работа с кодировками
  • Обработка фиктивных переменных, повторяющихся строк и выбросов в данных
  • Нормализация данных там, где это необходимо
  • Разработка новых функций

Загрузка данных

Последний шаг в конвейере ETL - «загрузка». Теперь, когда данные преобразованы, их нужно где-то хранить, иначе прогресс будет потерян. Есть много вариантов хранения преобразованных данных. Какой вариант выбрать, зависит от потребностей бизнеса.

Например,

  • Структурированные данные можно хранить в базе данных SQL.
  • Если данные помещаются во фрейм данных pandas, их можно сохранить в файле CSV.

Некоторые способы хранения преобразованных данных, отличные от SQL, CSV или JSON, можно найти по ссылке здесь.

Другие конвейеры данных

Конвейеры ELT (извлечение, загрузка, преобразование) привлекли внимание с момента появления облачных вычислений. Облачные вычисления снизили стоимость хранения данных и выполнения запросов к большим необработанным наборам данных. Многие из этих облачных сервисов, такие как Amazon Redshift, Google BigQuery или IBM Db2, могут быть запрошены с использованием SQL или языка, подобного SQL. С помощью этих инструментов данные извлекаются, затем загружаются напрямую и, наконец, преобразуются в конце конвейера.

Резюме

В этой статье мы увидели краткое введение в конвейер ETL (извлечение, преобразование, загрузка) и обзор каждого шага. Небольшой пример конвейера ETL можно найти в моем GitHub. Взгляните на него, чтобы понять работу конвейера ETL.

Надеюсь, вы получили некоторые знания, прочитав эту статью. Помните, что эта статья - всего лишь обзор и мое понимание конвейера ETL, которое я прочитал из различных онлайн-источников.