Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lectures ХД.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
67.22 Кб
Скачать

Лекция 3.

ETL (Extract, Transform, Load), загрузка данных, преобразование данных и проч.

Одно из ETL-срества – это SSIS от Microsoft.

Master Data Services – средство для обработки справочной информации.

Для ETL всегда есть источники (source) и приемники (destination), а также алгоритмы, которые находятся между ними.

Источниками могут быть:

  1. БД

  2. Файлы

  3. Сервисы

Приемниками могут быть все те же штуки. Хотя основным приемником является обычно БД.

Касательно движка, который преобразует данные, оно может быть:

  1. Преобразование движком ETL-средств в памяти (это классический ETL).

  2. Преобразование средствами СУБД приемника (это условно называют EL-T), что характерно для Oracle Data Integrator.

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

Что лучше – в общем, сказать нельзя.

Флагманы в сфере ETL – это продукты SAP, IBM, Informatica.

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

The Microsoft Data Warehouse Toolkit – книжечка про ХД на базе MS’а от Кимбалла.

Ibm.com/start – открыт прием резюме на стажировку студентов в IBM, Student Internship

Проблемы в ETL:

  1. Синхронизация справочников. Источников обычно много, и справочники у них свои, нет единого общего справочника. При слитии данных из них в одну БД возникает проблема синхронизации. Варианты решения:

    1. Можно вообще не решать, но тогда не будет интеграции данных, це неудобно.

    2. Реализовать синхронизацию самостоятельно – нарисовать таблицу маппинга, то есть целевую таблицу и связи с элементами из источников.

    3. Заставить правильно составить справочники в источниках. Это практически невозможно.

    4. Master data management – организовать общий, централизованный справочник.

  2. Качество данных. Пользователям надо доказывать, что данные в отчетах (в ХД) адекватно получены из источников. Для этого нужно:

    1. Профилирование – для того, чтобы понять, какие вообще есть данные и какие между ними существуют зависимости. Это позволяет задать такую структуру данных, которая поможет сделать данные более чистыми.

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

      1. Логирования

      2. Спецсредств ETL

  3. Задержка данных. Вообще говоря работа ETL требует времени, поэтому между появлением данных на источнике и появлением их в приемнике может быть достаточно большой лаг. Это надо учитывать как бы. Это либо регулируется регламентом, либо прямым подключением средств BI к источнику данных.

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

Состав документации перед внедрением/созданием ETL:

  1. Source interface definition (SID) – описание источника данных (определение требований):

    1. Описание источника – что он вообще из себя представляет, какую информацию содержит.

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

    3. Регламент загрузки – как грузим, с какой периодичностью, когда грузим, какой объем. Объем бывает:

      1. Полный – грузим все, думать особо не надо, все хорошо работает на маленьких объемах

      2. Инкрементальный – загружаем каждый раз только измененную часть (подход CDC – changed data capture). Тут возникает проблема, как узнать, какие данные были изменены. Чтобы их найти, можно:

        1. Смотреть даты изменений (логи), то есть захват изменений с помощью журнала СУБД (У MS’а появилось с 2005 версии).

        2. Ведение кастомных логов.

        3. Смотреть даты в табличках, если они есть.

        4. Добавить даты в табличках, если их нет.

  2. Куда мы это кладем

  3. Описание алгоритмов преобразования

    1. Маппирование справочников

    2. Очистка данных (от лишних пробелов, символов)

    3. Look-up’ы – подмена значений

Поговорим о ETL’е от MS’а – SSIS.

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

Два потока (runtime engines):

  1. Control flow

  2. Data flow

Есть много connection manager’ов подключаться ко многим источникам.

Container – это совокупность нескольких задач.

Есть виды контейнеров:

  1. Для каждого

  2. По условию

  3. Просто агрегация задач

Задачи – могут быть очень разными, вплоть до Scripting’а – запуска тупо кода на VB или C#, и формирования мэйлов. Есть также операции с XML документами.

DTS – это старое название SSIS (2000 версия).

Категории задач трансформации:

  1. Построчная – копирование колонок, зависимость колонок, связи

  2. Rowset – пайвоты и проч

  3. Сплит и джоин – создание нескольких потоков данных из одного и наоборот, лукапы и проч

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]