Архитектура ETL - PullRequest
       3

Архитектура ETL

2 голосов
/ 12 марта 2011

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

http://en.wikipedia.org/wiki/Extract,_transform,_load

Четырехуровневый подход для проектирования архитектуры ETL

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

Реальный цикл ETL

Типичный реальный цикл ETL состоит из следующих этапов выполнения:

  1. Цикл инициации
  2. Сборка справочных данных
  3. Выписка (из источников)
  4. Validate
  5. Преобразование (очистка, применение бизнес-правил, проверка целостности данных, создание агрегатов или разукрупнение)
  6. Этап (загрузка в промежуточные таблицы, если используется)
  7. Аудиторские отчеты (например, о соблюдении бизнес-правил. Также, в случае сбоя, помогает диагностика / ремонт)
  8. Опубликовать (в целевые таблицы)
  9. Архив
  10. Очистить

Ответы [ 2 ]

6 голосов
/ 12 марта 2011

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

Одно только название - это "архитектура":

  • Извлечение
  • Преобразование
  • Загрузка

Экспорт таблицы БД в CSV можно считать «ET», а загрузка CSV - «L».Большинство проблем ETL просто не сложны.

Кроме того, вы должны взять любой из 1 или 2 миллионов пакетов ETL и ESB, уже доступных в Java, бесплатных и коммерческих, библиотек и систем полной обработки, и просто принятьодин из них, который вам нравится больше всего.

Возьмите белую доску, натяните несколько пузырьков вместе со строками и превратите их в код.

1 голос
/ 07 апреля 2018

Чтобы ответить на вопрос "Какова лучшая практика?"Ответ зависит от того, чего вы пытаетесь достичь.

Для упрощения предположим, что вы выполняете одно из следующих действий:

  1. Вы создаете хранилище данных, которое каким-то образом реструктурирует данные
  2. Вы перемещаетесьданные из точки A в точку B, но вы не реструктурируете данные

Когда я использую слово «реструктуризация», я имею в виду изменение размера или минимального уровня детализации таблицы.

Для 1. Десять шагов, изложенных в вашем вопросе, обычно выполняются.Общие рекомендации:

  • На ресурсы базы данных выталкивается как можно больше логики преобразования, а не программное обеспечение ETL (программное обеспечение ETL обычно медленнее)
  • Используются шаги проверки, преобразования и аудитаиспользовать любые стандарты управления основными данными (MDM), которые ваша организация использует

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

...