Подтвердить что ты не робот

Каковы требуемые функциональные возможности систем ETL?

Я пишу ETL (в python с бэндом mongodb) и задавался вопросом: какие стандартные функции и инструменты ETL следует назвать ETL?

Этот ETL будет как можно более общим, с возможностью сценариев и модульного подхода. В основном это будет использоваться для синхронизации разных баз данных, а также для импорта/экспорта наборов данных в разных форматах (xml и csv). Мне не нужны многомерные инструменты, но это возможно, что это понадобится позже.

4b9b3361

Ответ 1

Напоминаем о случаях использования ETL на мгновение.

  • Extract.
    • Чтение баз данных через общий адаптер DB-API.
    • Прочитайте плоские файлы через аналогичный адаптер.
    • Прочитайте таблицы с помощью аналогичного адаптера.
  • Cleanse.
    • Произвольные правила
    • Отфильтровать и отклонить
    • Заменить
    • Добавить столбцы данных
  • Данные профиля.
    • Статистические таблицы частот.
  • Преобразование (см. очистка, это два варианта использования с той же реализацией)
  • Выполняйте поиск соответствия по размеру.
    • Заменить значения или добавить значения.
  • Совокупный.
    • В любой точке трубопровода
  • Load.
    • Или подготовьте плоский файл и запустите загрузчик продукта DB.

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

  • Каждая отдельная операция должна быть отдельным процессом, который может быть подключен в конвейере Unix, причем отдельные записи передаются от процесса к процессу. Это использует все ресурсы ЦП.

  • Вам нужен какой-то планировщик, основанный на времени, для мест, у которых есть проблемы с обоснованием своих предварительных условий ETL.

  • Вам нужно расписание на основе событий для мест, которые могут определить предварительные условия для этапов обработки ETL.

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

Ответ 2

Здесь случайный список в произвольном порядке:

  • Подключение к широкому спектру источников, включая все основные реляционные базы данных.
  • Обрабатывать нереляционные источники данных, такие как текстовые файлы, Excel, XML и т.д.
  • Разрешить отображение нескольких источников в одну цель.
  • Предоставить инструмент, который поможет отображать исходные данные в целевые поля.
  • Предложите структуру для инъекционных преобразований по своему усмотрению.
  • Программируемый API для написания сложных преобразований.
  • Оптимизируйте процесс загрузки для скорости.

Ответ 3

Автоматическое/эвристическое отображение имен столбцов. Например, простые строковые сопоставления:

DB1: customerId

DB2: customer_id

Я нахожу, что большая часть работы, которую я выполнил в DTS/SSIS, могла быть автоматически сгенерирована.

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