Что нужно помнить при написании ETL с нуля
Введение в ETL
ETL — это тип процесса интеграции данных, состоящий из трех отдельных, но взаимосвязанных шагов (извлечение, преобразование и загрузка), который многократно используется для синтеза данных из нескольких источников для создания хранилища данных, концентратора данных или озера данных.
Самая распространенная ошибка и неверное суждение при проектировании и создании решения ETL — это переход к написанию кода до полного понимания бизнес-требований/потребностей.
Есть некоторые фундаментальные вещи, которые следует иметь в виду, прежде чем переходить к реализации решения и потока ETL.
Почему ЭТЛ?
Очень важно правильно отформатировать и подготовить данные, чтобы загрузить их в выбранную вами систему хранения данных. Тройная комбинация ETL предоставляет важнейшие функции, которые часто объединяются в одно приложение или набор инструментов, которые помогают в следующих областях:
- Предлагает глубокий исторический контекст для бизнеса.
- Улучшает решения бизнес-аналитики для принятия решений.
- Позволяет агрегировать контекст и данные, чтобы бизнес мог получать более высокий доход и/или экономить деньги.
- Включает общий репозиторий данных.
- Позволяет проверять правила преобразования, агрегирования и расчетов данных.
- Позволяет сравнивать выборочные данные между исходной и целевой системами.
- Помогает повысить производительность, так как кодирует и повторно использует без дополнительных технических навыков.
Базовый процесс ETL можно разделить на следующие этапы:
- Извлечение данных
- Очистка данных
- Трансформация
- Нагрузка
Выполнимый подход должен не только соответствовать потребностям вашей организации и бизнес-требованиям, но и выполнять все вышеперечисленные этапы.
Во многих местах загрузка выполняется перед преобразованием, этот процесс также известен как ELT.
О чем следует помнить:
- Знайте и понимайте свой источник данных — откуда вам нужно извлечь данные.
- Никогда не теряйте необработанные данные.
- Узнайте о лучших способах извлечения данных из источника.
- Старайтесь изо всех сил реализовать инкриментальное извлечение (не пропустите обновленные данные).
- Выберите подходящий механизм очистки в соответствии с извлеченными данными.
- Знайте и понимайте конечный пункт назначения данных — где они в конечном итоге будут находиться.
- Решите, следует ли выполнять преобразование до загрузки или после загрузки.
- Если вы пишете свой собственный ETL, напишите его модульным и расширяемым для будущих источников данных, но не усложняйте код.
- Позаботьтесь о повторяющихся данных и нулевых значениях.
- Если источником является база данных, позаботьтесь о задержке.
Есть много моментов, которые следует учитывать при написании ETL. Я только что упомянул лишь некоторые из них. Было бы здорово услышать от вас о критических моментах, о которых я забыл упомянуть.