powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Домашний проект, DWH
33 сообщений из 33, показаны все 2 страниц
Домашний проект, DWH
    #39824720
Safro_nov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.

Изучаю хранилища данных. Самостоятельно. Перспектив работать в этой сфере в моем регионе нет. Решил сделать pet-проект. Для будущего портфолию и чтобы хоть где-то применять информацию, иначе забывается. Прочел пар книг (или чуть больше), прошел пару курсов.

На базе каких ресурсов лучше делать домашний проект? Информации по DWH (в отличие от БД) мало. В основном вижу только инфу по теоретическому проектированию. По фактической реализации - пробелы и много вопросов. В учебниках для уч. заведений описан более высокий уровень абстракции, чем мне нужно.

Гугл выдает инфу преимущественно про самодельные облачные хранилища.

Сейчас читаю Сарка "Microsoft SQL Server 2012. Реализация хранилищ данных." На очереди Ларсон "Разработка бизнес-аналитики в Microsoft SQL Server 2005". Нашел их благодаря этому форуму сегодня, чему очень рад.

Может еще есть полезные источники информации по моей задаче?
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39824809
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Safro_nov,

У Microsoft есть Fast Track по хранилищам данных.
Есть также база данных и учебный проект Adventure Works
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39824893
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Safro_nov,

Если по T-SQL
я рекомендую Ицика Бен Гана и Grant Frichley
Есть на одном небезизвестном сайте = правда увы не последние версии
(сам бы полседние )
но книжки оч.толковые

Если вдруг по табуляр модели SSAS
то тройка
Марко Руссо + Крис Веббер + еще кто-то

По 2012 версии точно есть там же

+ блоги Криса Веббера - там и MDM и Tabular
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825031
sergeyns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Safro_novИзучаю хранилища данных. Самостоятельно. Перспектив работать в этой сфере в моем регионе нет.
Зачем? Хайп на это уже прошел.

Сейчас рулят мышинное обучение и прочий DataScience
Даже судя по этому форуму, многие BI-айшики и около-того переключились туды.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825038
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergeyns,

1) регуляторка и управл. отчетность юзает DWH и BI,
2) а мышинное обучение & DataScience - это для другого

Так что кто хорошо обслуживает потребности 1), то живет неплохо среди работающих лопатами
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825061
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergeyns,

в дополнение к Alex_496 выше:
не переключились а расширили покрытие услуг
т.к. требования рынка изменились и ушли больше в Advanced сторону
(где уже не BI, а тот самый DS/ML)

классический BI покрывает только очень малую часть нынешних требований по данным,
иначе организация просто становится неконкурентоспособной на рынке (и теряет его)
соответственно и рост спроса к разработчикам на покрытие более широких требований.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825064
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv,
ух ты
а если касательно MS стэка
что там будет во 2 части ??
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825067
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv,

да, этот слайд - легенда для C-Levels,
а на земле все еще:
куча технического долга,
штучные экземпляры Power Users,
отчетность для того, чтобы была,
принятие решений "три П" типа на данных
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825068
Safro_nov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sergeynsСейчас рулят мышинное обучение и прочий DataScience
Даже судя по этому форуму, многие BI-айшики и около-того переключились туды.
Математика нужна такая, которой мне не завезли в юности. А теперь тем более не догоню.
Если б не этот фактор - анализ данных очень интересная тема.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825073
Safro_nov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sergeynsСейчас рулят мышинное обучение и прочий DataScience
Если про ИИ говорить, про нейросети и всякое там машинное зрение - по ощущениям, уже на уровне джуна молодые специалисты имеют серьезную подготовку. Отсюда автоматически порог вхождения в отрасль задирается до неприличного уровня.

В 35 лет таким интересоваться, имхо, бесперспективно.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825075
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825080
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федора если касательно MS стэка
что там будет во 2 части ??

сложно сказать, от зависит от выбранного пути (часто организацией в которой работают) на свой риск
хотя у меня часто бывает возможность подкорректировать выбор/развитие в политике компании, разными аргументами
(будущие перспективы и стабильность продукта, его готовность к рынку, риски и размер/вес того кто за ним стоит, наличие на рынке трудового ресурса на поддержание и пр.)

MS с Azure перестал эксклюзивно только себя продвигать, в MicroSoft Data Platform Ecosystem добавили сначала R
(сначала в SQL Server 2016, потом отдельно Microsoft Machine Learning Server),
затем Python (SQL 2017), теперь и Java понемногу идёт (SQL 2019)
тот-же Hadoop с Azure Data Lake / ADLS, DataBricks вместе со Spark, в общем не уследишь уже..

Я вроде только в R/RevoScaler и C# залез - у них повыскакивало .NET/ML , Auto ML (но всё очень сырое пока), больше скос в сторону C++
теперь оказывается многие ML продукты заточены под Python (т.е. без R)

в общем не лёгкие времена для разработчиков настают - по технологиям взрыв в ширину получается,
уже выехать на высокой специализации в одной-двух технологиях весьма не просто,
к тому-же частые переходы технологий с ускоряющимся циклом
(мало времени на полноценное освоение, короткий жизненный интервал у технологии)
т.е. только стал специалистом - знания уже идут в утиль и на рынке новый хайп..

в РФ риск по санкциям пока (ну и на будущее урок по зависимостям) - так что с облаками лет 10 будут аккуратней двигаться
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825086
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_496...да, этот слайд - легенда для C-Levels,
а на земле все еще: ...
ну да, более простое от SQL, DWH и пр. пока никуда не уходит и всё это по любому кому-то надо делать,
требования просто растут в ширину, большая производительность труда нужна.

да и смысл в это лезть C-Levels если низы не могут это технически реализовать?
синергично/сбалансированно надо чтобы в результате работало, иначе смысла нет.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825098
Safro_nov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vikkivну да, более простое от SQL, DWH и пр. пока никуда не уходит и всё это по любому кому-то надо делать, требования просто растут в ширину, большая производительность труда нужна.
О каких, ориентировочно, технологиях идет речь?
С чем в среднем приходить собеседоваться на джуна?
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825127
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkivк тому-же частые переходы технологий с ускоряющимся циклом
(мало времени на полноценное освоение, короткий жизненный интервал у технологии)
т.е. только стал специалистом - знания уже идут в утиль и на рынке новый хайп..

вот именно, гонки за хайпом,
а бизнес все еще, образно говоря, на Excel-ях живет при обилии ERP, CRM, WMS и прочих магнитах техн. долгов
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825131
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825762
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_496вот именно, гонки за хайпом,
а бизнес все еще, образно говоря, на Excel-ях живет при обилии ERP, CRM, WMS и прочих магнитах техн. долговХайп на ERP, CRM, WMS тоже как-то прошел. Активность по профильным форумам упала десятки раз.
При том, что тема по сути вечная и будет нужна всегда.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825801
Бумбараш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Safro_nov
В 35 лет таким интересоваться, имхо, бесперспективно.
я в 35 вроде вкатился, но не в регионах
на каггле есть дед из красноярска, который в топ-100 входит или около того

хотя хз, какой у него бэкграунд, может он 30 лет до этого только статистикой и занимался
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825825
Бумбараш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще в теме data в плане хоронилищ и около сейчас лучше всего в РФ вкатываться в bigdata, которое на стэке hadoop.

Тема развивается, зарплаты там больше, можно например, иметь 200-300к, тогда как в традиционном стеке на 50к меньше. Стэк хадупа в крупных конторах в области хоронилищ увеличивает свою долю относительно традиционного. Развитое сообщество. В телеге чаты\каналы по 1к+ участников. На каждый продукт хадупа по чату с 200-500 участников.

Это на этом форуме ничего нет, так как Гаджимурадов на просьбу создания раздела по DS сказал "а зачем это?". В его мире делфи никакого DS не существует.

В плане денег DE (data engineer) получает столько же сколько DS (data scientist) примерно. Причем в районе 200к я думаю ему даже проще получить, чем DS. На большие деньги в DS ты на собеседовании скорее всего сядешь перед двумя малолетними физтехами, которые попросят для начала несколько проходов нейросети с градиентным спуском расписать в матричном виде, а потом какими-нибудь шадовскими задачками будут трахать.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39825883
Safro_nov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БумбарашSafro_novВ 35 лет таким интересоваться, имхо, бесперспективно.
я в 35 вроде вкатился, но не в регионах
на каггле есть дед из красноярска, который в топ-100 входит или около того

хотя хз, какой у него бэкграунд, может он 30 лет до этого только статистикой и занимался
Читал давно на Хабре историю 40-летнего вкатившегося. Но у него, вроде, экономическая работа была до этого = мат./аналит. подготовка.

Возможно, ошибаюсь. Есть ощущение, что некоторое время назад вкатываться в ИТ было проще. Многие пишут, что теперешний эникейщик был по уровню тогдашнего сис. админа. По другим направлениям отзывы похожи. Тем более, рынок насыщается спецами и по мере этого процесса требования возрастают и конкуренция усиливается. Если через 5 лет ШАДовскими задачками трахать начнут джунов - я не сильно удивлюсь.

Бумбараш , огромная благодарность вам.
Я сейчас думаю хотя бы устроиться в ИТ, потом корректировать траекторию. Иначе, вне отрасли мысленная погоня за 200к смешно выглядит.
Спасибо!
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39831891
rang14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если по MS стеку, то можно свои проекты делать, постепенно осваивая:
1) PowerBI
2) SSIS + PowerBI
3) SSIS + SQL Server + PowerBI
4) SSIS + SQL Server + SSAS Tabular + PowerBI

SSAS Multidimensional - уже нет смысла изучать.
На третьем пункте - уже достаточно для джуна.
Биг даты, хадупы, ML, Azure - это все потом уже можно.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39831924
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rang14,

просто интересно, если не секрет :) Вы в Екб занимаетесь DWH, есть интересные проекты, норм зарплаты?


На мой взгляд SSIS - зло. У него есть как бы "плюсы":
- наглядность (на диаграммах лучше видно, что откуда и куда передается)
- простота (должно быть просто для аналитика)
- интеграция с MS SQL (настройка периодического запуска задач по передаче данных)

Но по факту если хоть чуть-чуть сложная логика обмена данными, то плюсы оказываются минусами:
- диаграммы перестают быть наглядными
- рисовать их становится очень сложно (даже тупо накликакть мапинг полей из одной таблицы в другую - очень муторно, а если ещё писать какой-то код, то вообще жесть)
- не всегда есть права доступа для настройки таких задач

Я обычно фигачу мапинги из одной схемы данных в другую на C# (.NET Core) и запускаю под IIS:
- логика может быть сколь угодно сложная
- очень много повторно используемого кода (типа найти в справочнике запись по названию и если её нет, то создать новую - благодаря EntityFramework и generic'ам пишется один раз под любой справочник)
- очень легко всё это сопровождать (100-300 строк кода, не считая повторно используемого)
- легко реализовывать разные схемы кеширования данных для повышения производительности (например, при первом обращении к справочнику полностью его загружаем и дальше работаем только с кешем, или, например, выгружаем одним запросом из основной таблицы идентификаторы добавляемых/изменяемых/удаляемых записей, сохраняем их в HashSet и по нему проверяем есть уже такая запись или нет и т.п.), разные схемы инкрементальной загрузки данных
- легко деплоить (просто копируем по FTP на сервер заказчика)

Вообще не вижу сценариев, когда стоило бы использовать SSIS. Я сам им пользовался и тогда он казался мне норм. Но сейчас по доброй воле точно не буду. Например, вот:
- логика по импорту гос. реестра лекарственных средств
- по импорту предельных цен
- импорт/экспорт из базы товарных накладных
- тут всякая повторно используемая логика типа "T FindOrCreate<T>(string name)" и т.п.

На много проще в коде написать, что такое-то поле равно такому-то, чем накликивать это мышкой в SSIS.

Данные в этих двух гос. реестрах очень замусоренные, денормализованные, с полностью дублирующимися записями - вообще не представляю как это всё можно было бы реализовать на SSIS, да, ещё чтобы оно быстро работало и инкрементально добавляло записи без первичных ключей в исходном реестре.

Некуда излить свою боль, изолью сюда :) Там по ссылке демка проекта, которую делал для одного заказчика. Недели 2 на неё потратил, был готов на них бесплатно работать ещё месяц, чтобы доделать полностью один из модулей их системы и убедить их, что за полгода можно поднять на качественно новый уровень всю ту жесть, которую они написали за последние 20 лет. Но не срослось.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39831948
rang14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ares_ekbпросто интересно, если не секрет :) Вы в Екб занимаетесь DWH, есть интересные проекты, норм зарплаты?
Территориально я в Екб, работаю удаленно.

Ares_ekbВообще не вижу сценариев, когда стоило бы использовать SSIS.
Более менее простые маппинги отлично делаются на SSIS. Например у меня сейчас используется 2 SSIS пакета для всех загрузок из десятков REST API. Я как есть вставляю ответ от API в Staging, а уже при копировании из Staging в DWH, разбираю json/xml с помощью SQL в хранимой процедуре. Это самый быстрый в разработке способ. При небольших объемах - проблем нет.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39832282
alexdr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ares_ekbrang14,

На мой взгляд SSIS - зло.
[skipped...]
Вообще не вижу сценариев, когда стоило бы использовать SSIS.
Вероятнее всего, этот от того, что Вы не научились его (SSIS) готовить.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39832419
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexdr,

"умение готовить SSIS" - эта какая-то абстракция. Я привел совершенно конкретные доводы, почему его не удобно использовать.

Я пару лет накликивал на нём мышкой разные диаграммы - сколько ещё нужно времени, чтобы постичь вселенскую гениальность SSIS? Вроде не тупой, честно, за это же время Isabelle HOL научился готовить , который немного сложнее, чем SSIS :)
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39832446
alexdr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ares_ekbalexdr,
"умение готовить SSIS" - эта какая-то абстракция.
Все просто. Есть задачи и есть инструмент, в данном случае "промышленный" (в отличие от самописного) ETL инструмент. С помощью него задачи либо решаются, либо нет.

Процентов на 90% (если не больше) задачи вполне решаются этим инструментом при затрате вполне вменяемых ресурсов. А для особо изощренных случаев существует возможность прицепить к SSIS необходимый хитро закрученный код. Дебажить решение - легко, поддерживать тоже не проблема, опять же в отличие от самописного.

Конечно, нет в мире совершенства и в чем-то иные инструменты сильнее, а в чем-то хуже.

Я это к чему? К тому, что если у Вас лежит душа к какому-либо иному инструменту, это не означает что остальные никуда не годятся.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39832489
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ares_ekb,

Лучше стандартные накликанные пакеты, чем какая-то (возможно гениальная) фигня, которую никто не знает. Просто задайте себе вопрос, что будет с вашей нетленкой, когда вы поменяете место работы?
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39832495
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SSIS всего-лишь (одна из многих) среда с какими-то workflow элементами
(для обывателей), никто ведь не запрещает вроде-бы использовать SSIS
(как внешнюю оболочку), а внутри писать нормальные скрипты на C# и т.д.,
т.е. по факту развивать тот-же вполне продаваемый на рынке навык.
Заодно и админы довольны т.к. всё по их фэншую будет: логи, прозрачность,
(+ если в C# ещё свои логи на SQL таблицы), и пакеты, и наблюдение за ними.

инструментов полно рынке и SSIS тоже далеко не из самых развиваемых,
хорошо хоть что кодовая часть вполне гибка - остальное стратегическая
политика организации по софту и ответственность за принятые риски
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39832549
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КритикЛучше стандартные накликанные пакеты, чем какая-то (возможно гениальная) фигня, которую никто не знаетЭти ручные ETL написаны на C#. Само приложение тоже написано на нём. Разработчик C# там будет 100% и разобраться в 100-300 строках кода на один пакет он сможет, особенно если этот код практически полностью состоит из присваиваний. А, вот, шансов, что на таком проекте будет человек с опытом SSIS очень мало. Даже если будет, то в мешанине из SSIS и C# разбираться сложнее, чем просто в C#. К тому же SSIS привязан к MS SQL, а код на C# никак не привязан к одному вендору СУБД.

alexdrПроцентов на 90% (если не больше) задачи вполне решаются этим инструментом при затрате вполне вменяемых ресурсовНу, вот, конкретный пример - реестр предельных цен на лекарства . Его нужно разложить в нормализованную схему данных (вот, как это реализовано у меня).

Например, тут в одной строке "раствор для внутрикожного введения 0.1 мл/доза, 30 доз, 3 мл - флаконы (5) - упаковки ячейковые контурные - пачки картонные" указано следующее:
1) лекарственная форма: раствор для внутрикожного введения
2) дозировка: 0.1
3) ед. изм. дозировки: мл/доза
4) альтернативная мера лек. формы: 30
5) альтернативная ед. изм. лек формы: доз
6) мера лек. формы: 3
7) ед. изм. лек формы: мл
8) упаковки:
9.1а) номер: 1
9.1б) вид: флаконы (с признаком первичная)
9.1в) кол-во: 5
9.2а) номер: 2
9.2б) вид: упаковки ячейковые контурные (с признаком промежуточная)
9.3а) номер: 3
9.3б) вид: пачки картонные (с признаком вторичная)

Естественно, что парсинг таких строк в любом случае будет писаться на C#, в том числе при использовании SSIS. Тут сложность в том, что одна строка раскладывается в несколько таблиц:
1) лекарственные средства
2) упаковки лекарственных средств
3) виды упаковок
4) единицы измерения

со следующей логикой: если такой ед. измерения (или вида упаковок) ещё нет, то добавляем её, а если есть, то ссылаемся на существующую. И так для всех справочников.

Мы реализовали эту процедуру парсинга на C#, встроили в SSIS пакет. Процедура должна возвращать объект с несколькими полями, в том числе со вложенным списком упаковок? И потом этот объект будет раскладываться по таблицам? Такое вообще возможно в SSIS? Я честно такое никогда не делал на SSIS, по-моему это жесть. Я могу ошибаться, но такая строка выглядит гораздо понятней и сопровождать её проще:
Код: c#
1.
entity.DosageFormMeasurementUnit = FindOrCreate<MeasurementUnit>(dosageFormUnit);


Или что-нибудь подобное для заполнения таблицы с упаковками
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
            for (int i = 0; i < packaging.Length; i++)
            {
                MatchPackaging(packaging[i], out string kindMeasure, out int? count, out string note);
                if (IsEmptyName(kindMeasure))
                {
                    continue;
                }
                var pkg = EntityFactory.Create<MedicineDosageFormPackaging>();
                pkg.Order = (byte)(i + 1);
                pkg.Count = count;
                pkg.Note = note;
                if (kindMeasure.TryMatchMeasure(out string kind, out decimal measure, out string unit))
                {
                    pkg.Kind = FindOrCreate<PackagingKind>(kind);
                    pkg.Measure = measure;
                    pkg.MeasurementUnit = FindOrCreate<MeasurementUnit>(unit);
                }
                else
                {
                    pkg.Kind = FindOrCreate<PackagingKind>(kindMeasure);
                }
                if (i == 0)
                {
                    pkg.Kind.IsPrimary = true;
                }
                else if (i == packaging.Length - 1)
                {
                    pkg.Kind.IsSecondary = true;
                }
                else
                {
                    pkg.Kind.IsIntermediate = true;
                }
                entity.Packagings.Add(pkg);
            }

Это можно было бы нарисовать в виде диаграммы, но она действительно была бы проще для понимания и сопровождения? Уверен, что нет.


Но это только начало. Если мы для каждой ед. измерения (вида упаковок и т.п.) отдельным SELECT-запросом будем проверять есть уже такая запись в справочнике или её нужно добавить, то это будет работать очень медленно. В коде я легко реализую кеширование справочников при первом обращении к ним, причём, это повторно используемый код, который пишется один раз.

Сложнее история с основной таблицей с лекарственными средствами. В исходном реестре нет первичного ключа, нет даты добавления/изменения записи, там просто помойка с полностью дублирующимися записями. Причём нельзя при каждом импорте полностью очищать таблицу и загружать в неё с нуля реестр. Загрузка должна быть инкрементальной. Для этого для каждой строки реестра вычисляет хеш по основным полям (суррогатный первичный ключ). При импорте данных мы проверяем есть ли уже в базе запись с таким хешем. Причём, делать это нужно одним запросом для всех импортируемых записей, чтобы работало быстро.

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

vikkivа внутри писать нормальные скрипты на C# и т.д.SSIS для этого не удобен. Проще сразу писать нормальное приложение, а не делать мешанину из диаграмм и кода. Проще сразу в коде написать, что это поле равно этому полю (одна строка кода), чем накликивать этот мапинг на диаграмме.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39832553
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexdrесть инструмент, в данном случае "промышленный" (в отличие от самописного) ETL инструментЭто не корректное сравнение. SSIS - это универсальный инструмент для описания ETL процедур. А у меня самописный не инструмент, а конкретные процедуры.

Корректнее сравнивать:
1) что удобней использовать для описания ETL процедур: SSIS или язык программирования общего назначения типа C#?
2) что проще сопровождать: SSIS-диаграммы вперемешку с C# или просто C# код?

SSIS не даёт каких-то существенных преимуществ. Вещи типа "возьми данные отсюда", "присвой значение этого поля этому полю", "сохрани данные сюда" занимают одну строку кода. Более сложные вещи типа "посмотри есть ли уже такая запись в справочнике, если есть, то используй её, иначе создай новую" - это всё ещё одна строка кода, а на SSIS-диаграмме - это уже целая история. Хотя, можно писать кастомные процедуры для SSIS, но это сложнее, чем просто написать метод в коде.

Если бы можно было обходиться только диаграммами, наверное SSIS был бы удобнее. И то, не факт, нужно открывать много окон, куда-то кликать. Ещё всё это плохо работает с системами управления версиями. Привязано к одному вендору. Но когда нужно всё это ещё интегрировать с кусками на C#, то зачем вообще этот SSIS? Только лишние усложнения.
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39833576
T87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ares_ekb,

Если честно, выглядит так, что ты прочитал туториал по Asp.net Core (я даже догадываюсь какой) и пытаешься блеснуть этими знаниями. Хотя я не сказал что код прям гениален. ИМХО, делать etl на Asp.net - полный бред
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39833580
T87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T87Ares_ekb,

Если честно, выглядит так, что ты прочитал туториал по Asp.net Core (я даже догадываюсь какой) и пытаешься блеснуть этими знаниями. Хотя я не сказал что код прям гениален. ИМХО, делать etl на Asp.net - полный бред
Уточню. Я не имею в виду C# в принципе, а только конкретную технологию
...
Рейтинг: 0 / 0
Домашний проект, DWH
    #39833613
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
T87,

причем тут вообще ASP.NET? На нем в этом проекте только пользовательский интерфейс, который с ETL никак не связан. Более того, интерфейс (и WinForms, и ASP.NET) там генерятся автоматически, поэтому на ASP.NET там не написано ни одной строки. ETL - это маленький кусочек этого приложения.

Сами процедуры можно запускать как угодно, они написаны просто на C# без использования вообще каких-либо фреймвоков. Даже к EntityFramework не привязаны. Потому что UI там сделан на DevExpress XAF, который не поддерживает .NET Core и соответственно для работы с базой используется EF. А API сделано под .NET Core и соответственно используется EF Core.

Поэтому схема данных и мапинги абстрагированы и от EF, и от EF Core, и тем более от XPO (который обычно используется с DevExpress XAF). Это просто "плоские" классы.

Конкретно в этой демке ETL процедуры запускаются тремя способами:
1) из пользовательского интерфейса (импорт/экспорт товарных накладных в XML формате)
2) из консольного приложения (импорт реестров лекарств)
3) через API (импорт/экспорт тех же товарных накладных и т.п.)

Этот проект я делал в качестве демки для одной фирмы, поэтому в ней нет ещё одного варианта запуска ETL (который есть в других проектах):
4) запуск на сервере по расписанию через службы реализующие IHostedService (работать эти службы могут в разных контейнерах - IIS или в качестве обычной Windows-службы. У одного из клиентов удобнее всего было использовать IIS, потому что для этого не нужны права администратора на сервере, достаточно скопировать службу по FTP)

Ни один из этих вариантов вообще никакого отношения к ASP.NET Core не имеет. Поэтому в чём претензия я не понимаю. Тем более, что 100% пунктов против SSIS, которые я привел раньше даже не упоминают ASP.NET Core и вообще про другое.

Я правда чувствую, что мне сейчас напишут, что варианты 1-3 не имеют отношения к ETL :) Потому что тру ETL пишутся только с использованием ETL инструментов (типа SSIS) и запускаются только по расписанию на сервере. На мой взгляд разницы вообще никакой: откуда приходят данные, куда уходят и как всё это запускается. Код там везде один и тот же.

Это ещё один довод в пользу того, что ETL проще сразу делать на C#.

Справедливости ради, если в компании есть отдел или человек, который занимается исключительно базами данных и ETL и не имеет никакого отношения к разработке, то возможно есть смысл использовать SSIS. Наверное проще обучить аналитиков SSIS, чем нанимать C# разработчиков. Лично я так делать не стал бы. Задачи этого отдела возможно немного упрощаются, но в целом всё усложняется: процедуры мапинга данных будут размазаны по разным подсистемам, будут дублироваться. Например, те же товарные накладные могут попадать в систему откуда угодно (через UI, через API, загружаться пакетно по расписанию) и выгружаться могут куда и как угодно. В этом случае у нас и в приложении будет мапинг накладных из XML в нашу схему, и в SSIS будет дублироваться тот же самый мапинг.
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Домашний проект, DWH
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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