Что такое ETL?
ETL - это процесс, который извлекает данные из разных исходных систем, затем преобразует данные (например, применяет вычисления, конкатенации и т. Д.) И, наконец, загружает данные в систему хранилища данных. Полная форма ETL - это извлечение, преобразование и загрузка.
Заманчиво думать, что создание хранилища данных - это просто извлечение данных из нескольких источников и загрузка в базу данных хранилища данных. Это далеко от истины и требует сложного процесса ETL. Процесс ETL требует активного участия различных заинтересованных сторон, включая разработчиков, аналитиков, тестировщиков, топ-менеджеров, и является технически сложной задачей.
Чтобы сохранить свою ценность в качестве инструмента для лиц, принимающих решения, система хранилища данных должна меняться вместе с изменениями в бизнесе. ETL - это повторяющееся действие (ежедневно, еженедельно, ежемесячно) системы хранилища данных, которое должно быть гибким, автоматизированным и хорошо документированным.
В этом руководстве по ETL вы узнаете:
- Что такое ETL?
- Зачем вам нужен ETL?
- ETL-процесс в хранилищах данных
- Шаг 1) Извлечение
- Шаг 2) Преобразование
- Шаг 3) Загрузка
- Инструменты ETL
- Передовой опыт ETL-процесса
Зачем вам нужен ETL?
Есть много причин для внедрения ETL в организации:
- Это помогает компаниям анализировать свои бизнес-данные для принятия важных бизнес-решений.
- Транзакционные базы данных не могут ответить на сложные бизнес-вопросы, на которые можно ответить на примере ETL.
- Хранилище данных предоставляет общее хранилище данных
- ETL предоставляет метод перемещения данных из различных источников в хранилище данных.
- При изменении источников данных Хранилище данных будет обновляться автоматически.
- Хорошо спроектированная и документированная система ETL практически необходима для успеха проекта хранилища данных.
- Разрешить проверку правил преобразования, агрегирования и вычислений данных.
- Процесс ETL позволяет сравнивать образцы данных между исходной и целевой системой.
- Процесс ETL может выполнять сложные преобразования и требует дополнительной области для хранения данных.
- ETL помогает переносить данные в хранилище данных. Преобразование в различные форматы и типы, чтобы придерживаться единой системы.
- ETL - это предопределенный процесс для доступа и управления исходными данными в целевой базе данных.
- ETL в хранилище данных предлагает бизнесу глубокий исторический контекст.
- Это помогает повысить продуктивность, поскольку кодифицирует и повторно использует без необходимости технических навыков.
ETL-процесс в хранилищах данных
ETL - это трехэтапный процесс
Шаг 1) Извлечение
На этом этапе архитектуры ETL данные извлекаются из исходной системы в промежуточную область. Преобразования, если таковые имеются, выполняются в промежуточной области, чтобы производительность исходной системы не ухудшалась. Кроме того, если поврежденные данные копируются непосредственно из источника в базу данных хранилища данных, откат будет затруднен. Промежуточная область дает возможность проверить извлеченные данные перед их перемещением в хранилище данных.
Хранилище данных должно интегрировать системы с разными
СУБД, оборудование, операционные системы и протоколы связи. Источники могут включать устаревшие приложения, такие как мэйнфреймы, настраиваемые приложения, контактные устройства, такие как банкоматы, переключатели вызовов, текстовые файлы, электронные таблицы, ERP, данные от поставщиков, партнеров и другие.
Следовательно, перед извлечением и физической загрузкой данных требуется логическая карта данных. Эта карта данных описывает отношения между источниками и целевыми данными.
Три метода извлечения данных:
- Полное извлечение
- Частичное извлечение - без уведомления об обновлении.
- Частичное извлечение - с уведомлением об обновлении
Независимо от используемого метода извлечение не должно влиять на производительность и время отклика исходных систем. Эти исходные системы представляют собой действующие производственные базы данных. Любое замедление или блокировка могут повлиять на прибыль компании.
Некоторые проверки выполняются во время извлечения:
- Согласовать записи с исходными данными
- Убедитесь, что не загружены спам / нежелательные данные
- Проверка типа данных
- Удалите все типы повторяющихся / фрагментированных данных
- Проверить, все ли ключи на месте или нет
Шаг 2) Преобразование
Данные, извлеченные с исходного сервера, являются необработанными и не могут использоваться в исходной форме. Поэтому его нужно очистить, нанести на карту и преобразовать. Фактически, это ключевой этап, на котором процесс ETL добавляет ценность и изменяет данные, чтобы можно было создавать содержательные отчеты бизнес-аналитики.
Это одна из важных концепций ETL, в которой вы применяете набор функций к извлеченным данным. Данные, не требующие преобразования, называются прямым перемещением или передачей данных .
На этапе преобразования вы можете выполнять настраиваемые операции с данными. Например, если пользователю нужна сумма выручки от продаж, которой нет в базе данных. Или если имя и фамилия в таблице находятся в разных столбцах. Их можно объединить перед загрузкой.
Ниже приведены проблемы целостности данных:
- Различное написание одного и того же человека, такого как Джон, Джон и т. Д.
- Существует несколько способов обозначения названия компании, например Google, Google Inc.
- Использование разных имен, таких как Кливленд, Кливленд.
- Могут быть случаи, когда разные номера счетов генерируются разными приложениями для одного и того же клиента.
- В некоторых данных требуемые файлы остаются пустыми
- Неверный продукт, собранный в торговой точке, поскольку ввод вручную может привести к ошибкам.
На этом этапе проводятся валидации.
- Фильтрация - выберите для загрузки только определенные столбцы
- Использование правил и таблиц поиска для стандартизации данных
- Преобразование набора символов и обработка кодировки
- Преобразование единиц измерения, таких как преобразование даты и времени, преобразование валют, числовое преобразование и т. Д.
- Проверка достоверности пороговых значений данных. Например, возраст не может быть больше двух цифр.
- Проверка потока данных из промежуточной области в промежуточные таблицы.
- Обязательные поля нельзя оставлять пустыми.
- Очистка (например, сопоставление NULL с 0 или Gender Male с «M», а Female с «F» и т. Д.)
- Разделите столбец на несколько и объедините несколько столбцов в один столбец.
- Транспонирование строк и столбцов,
- Используйте поисковые запросы для объединения данных
- Использование любой сложной проверки данных (например, если первые два столбца в строке пусты, то строка автоматически отклоняется от обработки)
Шаг 3) Загрузка
Загрузка данных в целевую базу данных хранилища данных - последний шаг процесса ETL. В типичном хранилище данных необходимо загрузить огромный объем данных за относительно короткий период (ночи). Следовательно, процесс загрузки следует оптимизировать с точки зрения производительности.
В случае сбоя загрузки механизмы восстановления должны быть настроены на перезапуск из точки сбоя без потери целостности данных. Администраторы хранилищ данных должны отслеживать, возобновлять и отменять нагрузки в соответствии с преобладающей производительностью сервера.
Типы загрузки:
- Начальная загрузка - заполнение всех таблиц хранилища данных
- Добавочная нагрузка - применение текущих изменений по мере необходимости периодически.
- Полное обновление - удаление содержимого одной или нескольких таблиц и перезагрузка свежими данными.
Проверка загрузки
- Убедитесь, что данные ключевого поля не отсутствуют и не имеют значения.
- Представления моделирования тестирования на основе целевых таблиц.
- Проверьте, что объединены значения и рассчитанные меры.
- Проверки данных в таблице измерений, а также в таблице истории.
- Проверьте отчеты бизнес-аналитики по загруженной таблице фактов и измерений.
Инструменты ETL
На рынке доступно множество инструментов для хранилищ данных. Вот некоторые из наиболее известных:
1. MarkLogic:
MarkLogic - это решение для хранилищ данных, которое упрощает и ускоряет интеграцию данных с использованием множества корпоративных функций. Он может запрашивать различные типы данных, такие как документы, отношения и метаданные.
https://www.marklogic.com/product/getting-started/
2. Оракул:
Oracle - ведущая база данных в отрасли. Он предлагает широкий выбор решений для хранилищ данных как для локальной, так и для облачной среды. Это помогает оптимизировать качество обслуживания клиентов за счет повышения операционной эффективности.
https://www.oracle.com/index.html
3. Amazon RedShift:
Amazon Redshift - это инструмент Datawarehouse. Это простой и экономичный инструмент для анализа всех типов данных с использованием стандартного SQL и существующих инструментов бизнес-аналитики. Он также позволяет выполнять сложные запросы к петабайтам структурированных данных.
https://aws.amazon.com/redshift/?nc2=h_m1
Вот полный список полезных инструментов хранилища данных.
Передовой опыт ETL-процесса
Ниже приведены лучшие практики для этапов процесса ETL:
Никогда не пытайтесь очистить все данные:
Каждая организация хотела бы, чтобы все данные были чистыми, но большинство из них не готовы платить за ожидание или не готовы ждать. На очистку всего этого уйдет слишком много времени, поэтому лучше не пытаться очистить все данные.
Никогда ничего не очищайте:
Всегда планируйте что-то чистить, потому что главная причина создания хранилища данных - предлагать более чистые и надежные данные.
Определите стоимость очистки данных:
Перед очисткой всех грязных данных важно определить стоимость очистки для каждого элемента грязных данных.
Для ускорения обработки запросов используйте вспомогательные представления и индексы:
Чтобы снизить затраты на хранение, храните сводные данные на дисковых лентах. Кроме того, требуется компромисс между объемом данных, которые должны быть сохранены, и их подробным использованием. Компромисс на уровне детализации данных для снижения затрат на хранение.
Резюме:
- ETL означает извлечение, преобразование и загрузку.
- ETL предоставляет метод перемещения данных из различных источников в хранилище данных.
- На первом этапе извлечения данные извлекаются из исходной системы в промежуточную область.
- На этапе преобразования данные, извлеченные из источника, очищаются и преобразуются.
- Загрузка данных в целевое хранилище данных - последний шаг процесса ETL.