|
|
|
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
|
|||
|---|---|---|---|
|
#18+
Бумбараш, В общем вы пришли к Immon мы Kimball ? 3NF vs Star ? Ods vs DDS ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 17:35 |
|
||
|
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
|
|||
|---|---|---|---|
|
#18+
a_voronin Ods vs DDS ? ODS - это выделенная часть ХД с низкой задержкой за счет упрощенных трансформаций данных, узкого временного среза и других методов. Остальная часть ХД (DDS, Marts и т.п.) может быть какой угодно: по Инмону, Кимболлу или Марксу-Энгельсу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 17:41 |
|
||
|
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
|
|||
|---|---|---|---|
|
#18+
.Евгений Для моего DWH ненормальна задержка поступления данных более 30 секунд (обычно она измеряется секундами). За это время все новые данные раскладываются по сущностям ХД, разрешаются все идентификаторы на суррогатные, выполняются проверки качества и применяется стратегия обновления. Объемы сущностей ХД - до миллиарда строк. я верно понимаю что ключ к успеху отказ от foreign keys ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 12:09 |
|
||
|
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
|
|||
|---|---|---|---|
|
#18+
H5N1 .Евгений Для моего DWH ненормальна задержка поступления данных более 30 секунд (обычно она измеряется секундами). За это время все новые данные раскладываются по сущностям ХД, разрешаются все идентификаторы на суррогатные, выполняются проверки качества и применяется стратегия обновления. Объемы сущностей ХД - до миллиарда строк. я верно понимаю что ключ к успеху отказ от foreign keys ? FK действительно отсутствуют, но дело совершенно не в этом. Уменьшение времени итераций загрузки (с десятков минут до единиц секунд) было достигнуто посредством тотального перемещения трансформаций в средство ETL и максимального сокращения обращений к СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 12:41 |
|
||
|
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
|
|||
|---|---|---|---|
|
#18+
.Евгений H5N1 пропущено... я верно понимаю что ключ к успеху отказ от foreign keys ? Уменьшение времени итераций загрузки (с десятков минут до единиц секунд) было достигнуто посредством тотального перемещения трансформаций в средство ETL и максимального сокращения обращений к СУБД. Случайно не BULK INSERT ? У себя не нашел ничего разумного (12 млн записей за 1 день - таблица 8 полей) как выгружать с помощью BCP из базы 1с а загружать в XD BULK INSERT всего 120 сек , промежуточный файл CSV 1Гб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 13:55 |
|
||
|
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
|
|||
|---|---|---|---|
|
#18+
iliko67 Случайно не BULK INSERT ? У себя не нашел ничего разумного (12 млн записей за 1 день - таблица 8 полей) как выгружать с помощью BCP из базы 1с а загружать в XD BULK INSERT всего 120 сек , промежуточный файл CSV 1Гб Использование пакетной вставки в БД применяю максимально широко. Хотя и с поправкой на обработку пакета при отказе: из пакета нужно выделить невалидные строки и обеспечить загрузку валидных. Но это совсем не главное. Повторюсь, что я в принципе минимизирую обращения к СУБД, поэтому основная работа по оптимизации давно приходится на трансформации (парсинг XML, замена ключей, контроль качества). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 14:14 |
|
||
|
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
|
|||
|---|---|---|---|
|
#18+
H5N1 .Евгений Для моего DWH ненормальна задержка поступления данных более 30 секунд (обычно она измеряется секундами). За это время все новые данные раскладываются по сущностям ХД, разрешаются все идентификаторы на суррогатные, выполняются проверки качества и применяется стратегия обновления. Объемы сущностей ХД - до миллиарда строк. я верно понимаю что ключ к успеху отказ от foreign keys ? Ключ к успеху во введении Surrogate Keys . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 14:29 |
|
||
|
ETL в SSIS. Зачем все эти преобразования "добавить столбец" и пр.? SQL не лучше?
|
|||
|---|---|---|---|
|
#18+
Вот простая, характерная и несложная иллюстрация к словам о ключах и успехах. Я взял для примера первую попавшуюся таблицу из 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. Теперь беру в руки SSIS, создаю пакет с источником - той же таблицей и скриптом-приемником, логирую разницу PreExecute и PostExecute и запускаю прямо на локальной машине, без деплоя. Получаю 55 мс (+-5). Вставляю в скрипт вызов расчета md5 (на основе MD5CryptoServiceProvider) всех столбцов внутри PipelineBuffer, запускаю. Получаю 65 мс (+-5) , т.е. трансформация замедлила выполнение ETL на 15-20% . Выводы каждый может сделать сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2020, 18:37 |
|
||
|
|

start [/forum/topic.php?fid=49&gotonew=1&tid=1857278]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 160ms |

| 0 / 0 |
