powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
8 сообщений из 58, страница 3 из 3
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
    #39982802
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бумбараш,

В общем вы пришли к Immon мы Kimball ?

3NF vs Star ? Ods vs DDS ?
...
Рейтинг: 0 / 0
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
    #39982803
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Ods vs DDS ?

ODS - это выделенная часть ХД с низкой задержкой за счет упрощенных трансформаций данных, узкого временного среза и других методов. Остальная часть ХД (DDS, Marts и т.п.) может быть какой угодно: по Инмону, Кимболлу или Марксу-Энгельсу.
...
Рейтинг: 0 / 0
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
    #39983013
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Евгений

Для моего DWH ненормальна задержка поступления данных более 30 секунд (обычно она измеряется секундами). За это время все новые данные раскладываются по сущностям ХД, разрешаются все идентификаторы на суррогатные, выполняются проверки качества и применяется стратегия обновления. Объемы сущностей ХД - до миллиарда строк.

я верно понимаю что ключ к успеху отказ от foreign keys ?
...
Рейтинг: 0 / 0
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
    #39983034
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
.Евгений

Для моего DWH ненормальна задержка поступления данных более 30 секунд (обычно она измеряется секундами). За это время все новые данные раскладываются по сущностям ХД, разрешаются все идентификаторы на суррогатные, выполняются проверки качества и применяется стратегия обновления. Объемы сущностей ХД - до миллиарда строк.

я верно понимаю что ключ к успеху отказ от foreign keys ?

FK действительно отсутствуют, но дело совершенно не в этом. Уменьшение времени итераций загрузки (с десятков минут до единиц секунд) было достигнуто посредством тотального перемещения трансформаций в средство ETL и максимального сокращения обращений к СУБД.
...
Рейтинг: 0 / 0
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
    #39983099
iliko67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Евгений
H5N1
пропущено...

я верно понимаю что ключ к успеху отказ от foreign keys ?

Уменьшение времени итераций загрузки (с десятков минут до единиц секунд) было достигнуто посредством тотального перемещения трансформаций в средство ETL и максимального сокращения обращений к СУБД.


Случайно не BULK INSERT ?

У себя не нашел ничего разумного (12 млн записей за 1 день - таблица 8 полей) как выгружать с помощью BCP из базы 1с а загружать в XD BULK INSERT всего 120 сек , промежуточный файл CSV 1Гб
...
Рейтинг: 0 / 0
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
    #39983110
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iliko67

Случайно не BULK INSERT ?

У себя не нашел ничего разумного (12 млн записей за 1 день - таблица 8 полей) как выгружать с помощью BCP из базы 1с а загружать в XD BULK INSERT всего 120 сек , промежуточный файл CSV 1Гб

Использование пакетной вставки в БД применяю максимально широко. Хотя и с поправкой на обработку пакета при отказе: из пакета нужно выделить невалидные строки и обеспечить загрузку валидных.

Но это совсем не главное. Повторюсь, что я в принципе минимизирую обращения к СУБД, поэтому основная работа по оптимизации давно приходится на трансформации (парсинг XML, замена ключей, контроль качества).
...
Рейтинг: 0 / 0
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
    #39983114
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
.Евгений

Для моего DWH ненормальна задержка поступления данных более 30 секунд (обычно она измеряется секундами). За это время все новые данные раскладываются по сущностям ХД, разрешаются все идентификаторы на суррогатные, выполняются проверки качества и применяется стратегия обновления. Объемы сущностей ХД - до миллиарда строк.

я верно понимаю что ключ к успеху отказ от foreign keys ?


Ключ к успеху во введении Surrogate Keys .
...
Рейтинг: 0 / 0
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
    #39983939
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот простая, характерная и несложная иллюстрация к словам о ключах и успехах.
Я взял для примера первую попавшуюся таблицу из 19 тыс. строк и 60 разнообразных столбцов.
Вывел селектом сначала ее, затем добавил вывод хеша столбцов hashbytes('md5', isnull(convert(varbinary(8000), столбец_n), 0) + ...)
Повторяю несколько раз (прогревая кеш), выбираю типичное значение статистики:
Статистика
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 1 ms.

(18945 rows affected)
Table ***'. Scan count 1, logical reads 1034, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

SQL Server Execution Times:
CPU time = 78 ms, elapsed time = 98 ms.
SQL Server parse and compile time:
CPU time = 5 ms, elapsed time = 5 ms.

(18945 rows affected)
Table '***'. Scan count 1, logical reads 1034, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

SQL Server Execution Times:
CPU time = 359 ms, elapsed time = 429 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.
Таким образом, трансформация замедлила выполнение запроса в 4-5 раз .

Теперь беру в руки SSIS, создаю пакет с источником - той же таблицей и скриптом-приемником, логирую разницу PreExecute и PostExecute и запускаю прямо на локальной машине, без деплоя.
Получаю 55 мс (+-5).
Вставляю в скрипт вызов расчета md5 (на основе MD5CryptoServiceProvider) всех столбцов внутри PipelineBuffer, запускаю.
Получаю 65 мс (+-5) , т.е. трансформация замедлила выполнение ETL на 15-20% .

Выводы каждый может сделать сам.
...
Рейтинг: 0 / 0
8 сообщений из 58, страница 3 из 3
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]