ETL процессы

Если вы знакомы с базами данных, хранилищами данных, концентраторами данных или озерами данных, значит, вы испытали потребность в ETL (извлечение, преобразование, загрузка) в вашем общем процессе потока данных.

Оглавление

Если вы знакомы с базами данных, хранилищами данных, концентраторами данных или озерами данных, значит, вы испытали потребность в ETL (извлечение, преобразование, загрузка) в вашем общем процессе потока данных.

 

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

 

 

С учетом вышесказанного, если вы хотите построить облачное хранилище данных с таким решением, как Snowflake, или имеете данные, поступающие на платформу больших данных, такую как Apache Impala или Apache Hive, или используете более традиционные технологии баз данных или хранилищ данных., вот несколько ссылок на анализ последних инструментов ETL, которые вы можете обзор (Oct 2018 года Review -и- Aug 2018 анализ.

 

 

Имейте в виду, что если вы используете Azure (фабрика данных), AWS (Glue) или Google Cloud (Dataprep), у каждого поставщика облачных услуг также есть доступные инструменты ETL. Наконец, такие решения, как Databricks (Spark), Confluent (Kafka) и Apache NiFi, предоставляют различные уровни функциональности ETL в зависимости от требований.

Введение в ETL

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

 

Самая распространенная ошибка и неверное суждение, совершаемое при проектировании и построении решения ETL, – это прыжок к покупке новых инструментов и написанию кода, прежде чем получить полное представление о бизнес-требованиях / потребностях.

 

Есть некоторые фундаментальные вещи, о которых следует помнить, прежде чем переходить к реализации решения ETL и процесса.

Зачем нам нужен ETL?

Важно правильно отформатировать и подготовить данные, чтобы загрузить их в выбранную вами систему хранения данных. Тройная комбинация ETL обеспечивает важные функции, которые многократно объединяются в одно приложение или набор инструментов, которые помогают в следующих областях:
  • Предлагает глубокий исторический контекст для бизнеса.
  • Улучшает решения Business Intelligence для принятия решений.
  • Обеспечивает агрегирование контекста и данных, чтобы бизнес мог получать более высокий доход и / или экономить деньги.
  • Включает общий репозиторий данных.
  • Позволяет проверять правила преобразования, агрегирования и вычислений данных.
  • Позволяет сравнивать образцы данных между исходной и целевой системой.
  • Помогает повысить производительность за счет кодирования и повторного использования без дополнительных технических навыков.

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

  1. Извлечение данных
  2. Очистка данных
  3. Трансформация
  4. Загрузить

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

Четыре этапа ETL - указатели, о которых следует помнить

  1. Знайте и понимайте свой источник данных – откуда вам нужно извлечь данные
  2. Проведите аудит вашего источника данных
  3. Изучите свой подход к оптимальному извлечению данных
  4. Выберите подходящий механизм очистки в соответствии с извлеченными данными
  5. После очистки исходных данных выполните необходимые преобразования соответствующим образом.
  6. Знайте и понимайте конечный пункт назначения данных – где они в конечном итоге будут находиться
  7. Загрузите данные

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

Извлечение и очистка данных

Источник данных

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

Организации оценивают данные с помощью инструментов бизнес-аналитики, которые могут использовать самые разные типы данных и источники.

 

Наиболее распространенными из этих типов данных являются:

  1. Базы данных
  2. Плоские файлы
  3. Веб-сервисы
  4. Другие источники, такие как RSS-каналы

Во-первых, проанализируйте, как создаются исходные данные и в каком формате их нужно хранить. Традиционные источники данных для приложений бизнес-аналитики включают Oracle, SQL Server, MySql, DB2, Hana и т. д.

 

Внимательно оценивайте любые транзакционные базы данных (ERP, HR, CRM и т. Д.), Поскольку они хранят ежедневные транзакции организации и могут быть ограничивающими для бизнес-аналитики по двум ключевым причинам:

  1. Запросы большого объема данных непосредственно в базе данных могут замедлить работу исходной системы и помешать базе данных записывать транзакции в реальном времени.
  2. Данные в исходной системе не могут быть оптимизированы для отчетности и анализа.

Использование и задержка

Еще одно соображение – это то, как данные будут загружаться и как они будут использоваться в месте назначения.

 

Допустим, данные будут использоваться командой бизнес-аналитики для целей отчетности, поэтому вы обязательно захотите узнать, как часто им нужны данные. Кроме того, если частота получения данных очень высока, но объем невелик, то для хранения ваших данных может быть достаточно традиционной СУБД, поскольку это будет рентабельно. Если частота получения данных высока, а объем такой же, то традиционная СУБД на самом деле может стать узким местом для вашей группы бизнес-аналитики. Такой тип ситуации может быть хорошо обслужен более подходящим хранилищем данных, таким как Snowflake или платформы Big Data, которые очень эффективно используют Hive, Druid, Impala, HBase и т. д.

 

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

Аудит ваших исходных данных

Аудит данных относится к оценке качества и полезности данных для конкретной цели. Аудит данных также означает рассмотрение ключевых показателей, помимо количества, для создания заключения о свойствах набора данных. Короче говоря, аудит данных зависит от реестра, который представля

 

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

Анализ извлечения данных

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

Шаги для выполнения извлечения

  1. Push-уведомление: всегда хорошо, если исходная система может предоставить уведомление о том, что записи были изменены, и предоставить подробную информацию об изменениях.
  2. Добавочная / полная выписка: некоторые системы могут не предоставлять услугу push-уведомлений, но могут предоставлять подробные сведения об обновленных записях и предоставлять отрывки из таких записей. Во время дальнейшей обработки ETL системе необходимо идентифицировать изменения и распространять их вниз.

Бывают случаи, когда система не может предоставить подробную информацию об измененных записях, поэтому в этом случае полное извлечение является единственным вариантом для извлечения данных. Убедитесь, что для полного извлечения требуется сохранение копии последних извлеченных данных в том же формате, чтобы идентифицировать изменения.

 

При использовании полного или инкрементного извлечения важно помнить о извлеченной частоте.

Проблемы, возникающие в процессе добычи

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

 

Во-вторых, реализация стратегии CDC (Change Data Capture) является проблемой, поскольку она может нарушить процесс транзакции во время извлечения. Часто график извлечения был бы инкрементным извлечением, за которым следовали бы ежедневные, еженедельные и ежемесячные, чтобы синхронизировать склад с источником. Извлечение данных из транзакционной базы данных имеет значительные накладные расходы, поскольку транзакционная база данных предназначена для эффективной вставки и обновления, а не для чтения и выполнения большого запроса.

 

И наконец, при извлечении данных из источника не упускайте и не забывайте о «мелочах», упомянутых ниже.

  • Изменение форматов данных с течением времени.
  • Увеличение скорости и объема данных.
  • Быстрое изменение учетных данных источника данных.
  • Нулевые проблемы.
  • Запросы на изменение новых столбцов, измерений, производных и функций.
  • Написание исходного кода, который имеет тенденцию создавать накладные расходы на будущее обслуживание потоков ETL.

Сочетание всех вышеперечисленных проблем связано с количеством источников данных, каждый со своей частотой изменений.

Требования к очистке данных

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

 

Надежный подход к очистке данных должен удовлетворять ряду требований:

  • Обнаружение и устранение всех основных ошибок и несоответствий в данных либо при работе с одним источником, либо при интеграции нескольких источников.
  • Исправление несоответствий и обеспечение того, чтобы столбцы были в одном порядке, а также проверка того, что данные находятся в одном формате (например, дата и валюта).
  • Обогащение или улучшение данных путем объединения дополнительной информации (например, добавление данных к деталям активов путем объединения данных из баз данных закупок, продаж и маркетинга), если это необходимо.
  • Очистку данных следует выполнять не изолированно, а вместе с преобразованием данных, связанных со схемой, на основе всеобъемлющих метаданных.
  • Функции сопоставления для очистки данных должны быть указаны декларативно и должны быть повторно использованы для других источников данных, а также для обработки запросов.

Необходимо создать рабочий процесс для выполнения всех этапов очистки и преобразования данных для нескольких источников и больших наборов данных надежным и эффективным способом.

Проблемы с очисткой данных

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

Возможные проблемы с данными из единого источника

  • Уникальность
  • Орфографические ошибки
  • Резервирование / дубликаты
  • За пределами диапазона домена
  • Ошибки ввода данных
  • Ссылочная целостность
  • Противоречивые ценности

Возможные проблемы с данными из нескольких источников

  • Конфликты именования на уровне схемы – использование одного и того же имени для разных вещей или использование разных имен для одних и тех же вещей
  • Структурные конфликты
  • Несогласованное агрегирование
  • Несоответствие времени

Подход к очистке данных

Хотя существует несколько подходящих подходов к очистке данных, в целом применяются следующие этапы:

Анализ данных

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

Профилирование данных

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

 

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

Сбор данных

Интеллектуальный анализ данных, обнаружение данных, обнаружение знаний (KDD) относится к процессу анализа данных с разных точек зрения, а затем их обобщения в полезную информацию. Это также относится к нетривиальному извлечению неявной, ранее неизвестной и потенциально полезной информации из данных в базах данных.

 

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

Определение преобразований и правил сопоставления

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

 

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

 

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

Проверка

Рабочий процесс преобразования и определение преобразования должны быть протестированы и оценены на правильность и эффективность. Может потребоваться улучшение выборки или исходных данных или уточнение определения. Также необходимы многократные повторения этапов анализа, проверки и проектирования, поскольку некоторые ошибки становятся важными только после применения определенного преобразования.

Трансформация

Выполнение шагов преобразования требуется либо путем запуска рабочего процесса ETL для загрузки и обновления данных в хранилище данных, либо в период ответа на запросы из нескольких источников.

Обратный поток и очищенные данные

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

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

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

  1. Многоступенчатое преобразование данных: в этом процессе извлеченные данные перемещаются в промежуточную область (промежуточную), где преобразование происходит до загрузки данных в конечную целевую область (хранилище данных).
  2. Преобразование данных на складе: в этом процессе потоком будет ELT (извлечение, загрузка и затем преобразование). Извлеченные данные будут загружены в хранилище данных, и там произойдет преобразование.

Ниже рассматриваются аспекты как основных, так и расширенных преобразований.

Базовая трансформация

  • Стандартизация формата: стандартизируйте тип и длину данных в соответствии с форматом поля, чтобы конечный пользователь мог легко извлекать данные.
  • Очистка: включает сопоставление значений с некоторыми производными / краткими значениями, такими как сопоставление ‘Male’ с ‘M’, null с ‘0’ и т. Д.
  • Дедупликация: включает удаление повторяющихся значений.
  • Реализация ограничений: установление ключевых отношений между таблицами.

Расширенная трансформация

  • Декодирование полей: данные, поступающие из нескольких источников, много раз будут описываться различными значениями полей, и часто унаследованные исходные системы используют довольно загадочные коды для представления бизнес-значений, что делает необходимым удаление полей с аналогичной информацией и / или изменение неясных кодов на значения, которые делают бизнес-смысл для пользователей, которые потребляют данные.
  • Объединение информации: обычно объединяют связанные поля вместе и рассматривают объединенные поля как единое целое, например продукт, цену продукта, тип продукта, описание и т. Д.
  • Разделение отдельных полей: разделение большого текстового поля на одно поле для облегчения использования, например, разделение полного имени на first_name, middle_name и last_name.
  • Расчетные и производные значения: Иногда может потребоваться агрегирование набора данных перед его загрузкой в ​​хранилище данных, например, для расчета общих затрат и прибыли.
  • Обобщение: значения суммируются для получения итоговой цифры, которая впоследствии вычисляется и сохраняется на нескольких уровнях как бизнес-факт в многомерных таблицах.

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

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

 

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

Агрегация

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

 

Агрегация помогает повысить производительность и сократить время запросов для аналитики, связанной с бизнес-решениями.

Эффективный процесс загрузки

Ограничения ссылочной целостности

Ограничения ссылочной целостности проверяют, присутствует ли значение для столбца внешнего ключа в родительской таблице, из которой получен внешний ключ. Это ограничение применяется, когда вставляются новые строки или обновляется столбец внешнего ключа.

 

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

 

Убедитесь, что цель ссылочной целостности поддерживается используемым процессом ETL.

Другие соображения для эффективной загрузки

  • Перед загрузкой данных в цель необходимо удалить индексы. Их можно перестроить после загрузки.
  • Управляйте разделами. Наиболее рекомендуемая стратегия – разбивать таблицы по интервалам дат, таким как год, месяц, квартал, идентичный статус, отдел и т. Д.
  • В случае инкрементальной загрузки база данных должна синхронизироваться с исходной системой. Инкрементная загрузка будет более сложной задачей по сравнению с полной загрузкой / исторической загрузкой.

Ниже приведены наиболее распространенные проблемы с инкрементными нагрузками.

Проблемы с возрастающими нагрузками

  • Упорядочивание: для обработки больших объемов данных с высокой доступностью конвейеры данных часто используют подход распределенных систем, который подразумевает, что данные могут обрабатываться в другом порядке, чем когда они были получены. Если данные удаляются или обновляются, обработка в неправильном порядке приведет к ошибкам в данных, поэтому их обслуживание и упорядочение имеют решающее значение для обеспечения точности данных.
  • Оценка схемы: необходимо оценить исходную схему во время загрузки данных, чтобы гарантировать согласованность данных.
  • Возможность мониторинга: данные, поступающие из различных источников, представляют собой сложности и потенциально сбои из-за недоступности API, перегрузки или сбоя сети, истечения срока действия учетных данных API, неполноты или неточности данных – мониторинг имеет решающее значение, поскольку восстановление этих проблем может быть сложным.

И последнее замечание о том, что существует три режима загрузки данных: APPEND, INSERT и REPLACE, и при выполнении загрузки данных в разных режимах необходимо соблюдать меры предосторожности, поскольку это также может привести к потере данных.

Почитать еще

| Аналитика бизнеса
Инструменты интеграции данных

Инструменты интеграции данных предназначены для широкого спектра сценариев использования, которые зависят от основных возможностей доставки

| Аналитика бизнеса
TIBCO Spotfire 11.0

Spotfire 11.0 представляет Spotfire Mods — легкий облачный фреймворк для создания новых интерактивных типов визуализаций, позволяющий создавать

Несколько видео о наших продуктах

| Аналитика бизнеса
Проиграть видео
Презентация аналитической платформы Tibco Spotfire
| Аналитика бизнеса
Проиграть видео
Отличительные особенности Tibco Spotfire 10X
| Аналитика бизнеса
Проиграть видео
Как аналитика данных помогает менеджерам компании
2021-03-09T11:21:31+02:00