Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
Всем хорошего дня! (если этот кончается - переносится на следующий )

Т.к. я изучаю Informatica PowerCenter, не на все вопросы удаётся найти ответы самому. Для тех, у кого есть опыт, мои вопросы не сложны, а меня бы продвинули вперёд. Поэтому, большая просьба, если кто поможет мне в этом разобраться:

1) Суть Информатики в том, чтобы собрать данные из разных источников в нужном виде в нужном месте (целевой таблице) максимально разгрузив при этом сервер БД, с возможностью делать такой сбор автоматически регулярно по расписанию.
Это как я понимаю её назначение. Правильно?

2) SQ > Properties > Sql Query и Lookup > ... > Lookup Sql Override - запросы, помещённые туда, выполняются на сервере БД (дают нагрузку на базу). И, в общем, чем меньше их использовать, тем больше расчётов выполняется на стороне Информатики, для базы это хорошо.

3) Но, например, подзапросы, где во FROM более 1 таблицы не описать с помощью Lookup-ов, без использования Override ? Это верно?

Например (пример из головы):
SELECT a.categiry_name, a.name, d.legs_count 
  FROM animals a, dogs d 
 WHERE a.subcat_id = d.category_id
Даже такой запрос не опишешь одними Lookup-ами. А если связанных таблиц больше, то тем более - нужно целиком ложить в Sql Override ?
Я по-разному пробовал. Если делать Lookup сначала на первую таблицу animals, возьмутся все её строки. Второй lookup по условию связи (в Condition) "отфильтрует" выбранные строки второй таблицы (dogs) но все строки первой тоже берутся. Как-то ограничить их у меня не получилось.

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

4) Перед Преобразованием Join лучше делать сортировку и для Master и для Detail, верно? (выигрыш в производительности).

5) Ломает ли Lookup, Join сортировку, если идёт после неё?
1 сен 20, 14:59    [22190400]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Anonymous_20
Member

Откуда:
Сообщений: 16
1) ошибочное мнение. Информатика умеет не только с бд работать. Иногда даже используют для трансформации данных.

2) в интернете поищи тесты. Итог для oracle, при одинаковых серверах, oracle будет шустрее выполнять схожие операции.

4) спорное заключение. Сервер инфы может дорого заплатить ресурсами за сортировку. Все надо просчитывать от объёма данных. Просто джойнер и джойнер с сортировщиками работают по-разному. И джойнер с сортировщиками больше потребляет ресурсов.
1 сен 20, 17:18    [22190471]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
Anonymous_20, благодарю за ответ.

1) Правда я писал о том что данные она берёт из разных источников и что доставляет до цели в нужном виде (ну, т.е. как раз Преобразования).

2) Вы правы - база всегда быстрее (при всех равных), но одна из целей Инф-ки - её разгрузить.

4) Ну, тут вы правы ) (хотя пришло в голову, что без сортировки он кэширует, а это может быть в любом случае дольше, тогда наверное сортировка, какая бы ни была - ускорит обработку)

По поводу Lookup-ов выяснилось - в чистом виде они подходят для запросов к одной таблице. Если несколько таблиц в связке - приходится ложить в Override, иначе не получается ограничить выборку. Хотя, когда несколько таблиц связаны, но они не фильтруют друг друга, кол-во строк не меняется - можно сделать цепочкой lookup-ов.

И (не знаю как у кого) - я долго мучался c этим Override, запрос не работал - Invalid и всё )
Оказалось - нужно давать псевдонимы выбираемым полям через as. Иначе (Informatica 10.2) - Invalid Override.

Ну вот, в итоге, наверное, почти все мои вопросы выяснились.

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

Сообщение было отредактировано: 2 сен 20, 09:29
2 сен 20, 09:23    [22190681]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
1) Как таковой цели разгрузить БД не стоит. Надо понимать и помнить, что в общем случае источниками данными могут быть разные БД, файлы, веб-сервисы и еще что-то. А теперь представьте, что тоже самое вы захотите сделать на условном PLSQL. Сколько потребуется ресурсов, чтобы настроить все эти гетерогенные сервисы? Informatica этот вопрос снимает. Даже гетерогенный сервис Oracle-MSSQL достаточно геморройное занятие.

2) Запросы к БД в любом случае будут выполняться на сервере БД Как-то может быть иначе? Просто, если вы напишете запрос ручками в SQL Override, то выполнится он, не напишете - выполнится тот, который напишет за вас информатика

3) В общем верно. Но такие вещи можно делать через SQ+Joiner, но не значит, что можно=всегда нужно

4) Есть такое мнение. Но по моему не очень большому опыту не было ситуации, когда отрисовал маппинг без Sorter-ов и работало долго, а добавил Sorter - все полетело... Чаще всего больше времени требуется не вычитывание из БД, чем на сами трансформации. Но, если данных миллионы, вероятно, профит должен быть

5) Вопрос интересный.. Насколько я понимаю, так быть не должно. Но вот что будет происходить, если на вход в Joiner приходит два отсортированных потока по разным полям (к примеру, зачем так делать - не знаю), то что будет на выходе (если это Normal Join) - это бы проверить. Предполагаю, что сортировка будет сохраняться у потока, где проставлена галочка Master на портах (ведь она активна и для Normal Join тоже)

А для Lookup - а он почему должен ломать сортировку? Это ведь по сути левое соединение

По поводу обсуждения - мне было бы очень интересно какие-то вопросы обсуждать.

Сообщение было отредактировано: 3 сен 20, 08:04
3 сен 20, 08:06    [22191299]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
Master..., спасибо за ответ. Обычно форумы используются как вопросы-ответы. Но по Информатике нехватает материала (особенно углублённого) не то что на русском, даже на английском. Я бы хотел обсуждать, делиться наблюдениями и докапываться, было бы здорово и полезно.
В этой теме или другой - не важно.

Ответы на ваши:

1) Акцент на сбор данных из разношёрстных источников - понятно. Действительно, видимо это её главное назначение.

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

3) SQ+Joiner - это User Defined Join в SQ. Теперь у меня понимание лучше сложилось. Кроме условий связи есть ещё условия фильтрации, но их наверное в Source Filter в SQ, отдельно надо писать.

4) Видимо из можно ставить во всех случаях - хуже не будет (кроме "захламления" маппинга сортировками )

Над остальным - надо подумать )

И вот сегодняшнее наблюдение:
Информатика заставляет явно select-ить в Override поля для связи (на вкладке Condition). Так и не понял зачем. Если строит запрос и отправляет на сервер, почему не достаточно, что условия связи и так уже указаны.
3 сен 20, 10:02    [22191371]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
автор
Но разгрузку на базу всё равно наверное дают, благодаря тому что делят большой тяжёлый запрос на более мелкие лёгкие части. Верно ?

Ну на этот вопрос нет однозначного ответа. Информатика выполнит только те запросы, которые вы отрисуете. Например, есть у нас один большой запрос с тяжелыми таблицами, но структура такова, что есть партиция, которую вы выбираете, либо супер селективный индекс и вы передаете селективный параметр в фильтра. План запроса построен хорошо - сначала читается маленькая таблица, а в к ней джойнится гиганская без необходимости ее фулскана. Отрисовали в тупую на информатику:
- вычитываете мелкую таблицу
- вычитываете большую таблицу
- где-то там после после наложения фильтров через трансформацию Filter фильтруете потоки
- и только потом джойните между собой два потока

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

автор
SQ+Joiner - это User Defined Join в SQ. Теперь у меня понимание лучше сложилось. Кроме условий связи есть ещё условия фильтрации, но их наверное в Source Filter в SQ, отдельно надо писать.

Нет, я имел ввиду SQ + отдельный компонент Joiner. Условия фильтрации можно задавать как вам угодно - прямой запрос в SQL Override, User Defined Join в SQ, трансформация Filter. Выбирайте любой, какой подходит в каждой ситуации.
Вообще, никто не обязывает вас в одном SQ использовать запрос только к одной таблице. Вы можете сделать как в БД - записать туда гигантский запрос с множеством таблиц, и он выполнится точно так же в БД (с поправкой на параметры сессии и NLS, которые могут отличаться), как вы делали бы это ручками.

автор
Информатика заставляет явно select-ить в Override поля для связи (на вкладке Condition). Так и не понял зачем. Если строит запрос и отправляет на сервер, почему не достаточно, что условия связи и так уже указаны.

Не до конца понятно, о чем вы. Но селектить нужно все, что вы хотите достать из БД. В данном контексте поле для связи ничем не отличается от поля, которое в select листе. Каждый запрос выполняется отдельно, результат складывается в кэш, а то только после этого данные вяжутся. Как же два несвязанных массива свяжутся, если в них нет для этого ключей? Это в БД они рядышком лежат, в для информатики это просто два неких массива, не более того..

Сообщение было отредактировано: 3 сен 20, 12:37
3 сен 20, 12:40    [22191481]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
.Евгений
Member

Откуда:
Сообщений: 574
Вообще данная тема относится скорее к пониманию принципа и механизмов работы средств ETL и СУБД. Информатика, в зависимости от настроек, может комбинировать первый и второй подход(посредством ELT), принципиально не отличаясь от других средств ETL.

Когда вы работаете с ETL средством, то вы работаете с потоком данных (представьте себе курсор и буфер строк для него). Между прочим, на самом деле СУБД тоже работают с потоком, но скрывают это.

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

Как известно, существует три основных типа соединений. В потоке может быть эффективно реализован Merge, с оговорками - NL. Именно так они и реализуются в ETL: обычное соединение требует предварительной сортировки, потому что оно Merge. NL делается посредством лукапов (как правило 1:1, чтобы не переформировывать буфер данных).
3 сен 20, 13:20    [22191521]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
Master_Detail
Ну на этот вопрос нет однозначного ответа...
...
Не до конца понятно, о чем вы. Но селектить нужно все, что вы хотите достать из БД. В данном контексте поле для связи ничем не отличается от поля, которое в select листе. Каждый запрос выполняется отдельно, результат складывается в кэш, а то только после этого данные вяжутся...

Вы точно поняли. Именно это я и имел в виду...

Если эти системы ETL так не оптимальны, избыточно кэшируют и перекладывают данные, сначала вычитывают, потом соединяют..
Или как Евгений сказал, эффективны только те, которые не нарушают поток (Евгений, спасибо, я всё прочитал, важно, но некоторые вещи нужно мне загуглить).
И глядя на всё вместе, возникает вопрос, чем они хороши? Это всё заходит в тупик. Должна быть ценность выше, чем только объединение принципиально разных источников, если у кого их много.

А если все данные берутся только из Oracle, то есть ли смысл строить маппинг из разных частей, когда, как Вы писали, можно всё сгрузить в Sql Query в SQ.

Я тоже нашёл этот способ, но мне говорили, что так делать нельзя.

мнение:
Что делая так - я отправляю сложный запрос на базу, а это для неё очень большая нагрузка, если таких маппингов одновременно будет несколько.
Идея средств ETL разрботки, чтобы вычитать "лёгкими" селектами (лёгкость высчитывается опытным путём) необходимые данные в информатику и уже на сервере информатики производить операции с этими данными.
А sq, по возможности нужно делать максимально простым. Вычитать строки, а все преобразования - в информатике - в этом её и суть.
Хороший маппинг работает быстро, не нагружает базу, по возможности максимально лаконичный.

Это мнение тоже выглядит логично. Потому что если Информатика производит многие вычисления на своей стороне, работая с извлечёнными данными, то разгружает базу. Тогда в ней видится уже большой смысл.

Сообщение было отредактировано: 3 сен 20, 17:24
3 сен 20, 17:24    [22191655]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
Евгений, в связи с потоками, ещё не понятно вот что:

Lookup, хоть и активная трансформация, но разные потоки, имеющие эти лукапы потом нормально сходятся в одном EXP, без всякого Joiner-а.

Но из lookup-а может выйти больше строк, чем в него вошло или меньше, или даже не выйти ни одной, т.е. он, как понимаю, может изменить кол-во записей, но почему-то с объединением потоков потом проблем нет.

Если в потоке есть аггрегация, то чтобы соединить его с другими - уже необходим Join, а вроде бы в чём принципиальная разница?
3 сен 20, 17:41    [22191671]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
.Евгений
Member

Откуда:
Сообщений: 574
psamv
Евгений, в связи с потоками, ещё не понятно вот что:

Lookup, хоть и активная трансформация, но разные потоки, имеющие эти лукапы потом нормально сходятся в одном EXP, без всякого Joiner-а.

Но из lookup-а может выйти больше строк, чем в него вошло или меньше, или даже не выйти ни одной, т.е. он, как понимаю, может изменить кол-во записей, но почему-то с объединением потоков потом проблем нет.

Лукап не нарушает имеющуюся сортировку.
psamv

И глядя на всё вместе, возникает вопрос, чем они хороши? Это всё заходит в тупик. Должна быть ценность выше, чем только объединение принципиально разных источников, если у кого их много.

ETL гораздо более специализированная вещь, чем СУБД. Из этого следуют ее преимущества и недостатки.
СУБД интерпретирует команды SQL и для типизации полей должен постоянно обращаться к метаданным, тогда как хост ETL выполняет скомпилированный код (C, C#, Java и т.п.) со статически типизированными полями.
СУБД должен поддерживать неопределенно большое количество своих и клиентских процессов и вынужден идти на многочисленные компромиссы по потребляемым ресурсам в ущерб производительности, ETL в этом практически не нуждается.
Стандартный режим вставки записей для ETL - пакетный, для SQL - обычный.
3 сен 20, 18:53    [22191709]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Anonymous_20
Member

Откуда:
Сообщений: 16
psamv
Евгений, в связи с потоками, ещё не понятно вот что:

Lookup, хоть и активная трансформация, но разные потоки, имеющие эти лукапы потом нормально сходятся в одном EXP, без всякого Joiner-а.

Но из lookup-а может выйти больше строк, чем в него вошло или меньше, или даже не выйти ни одной, т.е. он, как понимаю, может изменить кол-во записей, но почему-то с объединением потоков потом проблем нет.

Если в потоке есть аггрегация, то чтобы соединить его с другими - уже необходим Join, а вроде бы в чём принципиальная разница?


Тут вы запутались! Lookup по умолчанию пассивная трансформация, и внимательно смотрите на настройки, там стоит какую запись Lookup отдаст. Чтобы Lookup стал активен, то надо при создании его объявить активным, и тогда уже не чего не сойдется. А еще Lookup бывает, динамический, кэшируемы и не кэшируемым и т.д. Если поток развести и пустить через активную трансформацию, то соединить только через joiner сможете.
В инфе часть трансформаций могут быть как пассивными так и активные. Советую в этой части разобраться. Обычно на собеседованиях один из первых вопросов.

Сообщение было отредактировано: 3 сен 20, 21:22
3 сен 20, 21:23    [22191778]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
мнение
Что делая так - я отправляю сложный запрос на базу, а это для неё очень большая нагрузка, если таких маппингов одновременно будет несколько.
Идея средств ETL разработки, чтобы вычитать "лёгкими" селектами (лёгкость высчитывается опытным путём) необходимые данные в информатику и уже на сервере информатики производить операции с этими данными.
А sq, по возможности нужно делать максимально простым. Вычитать строки, а все преобразования - в информатике - в этом её и суть.
Хороший маппинг работает быстро, не нагружает базу, по возможности максимально лаконичный.


Вполне разумно. Но на практике оно бывает по-разному. Оно как бы как - если данные забираются с прода какой-нибудь нагруженной АБИС, то грузить ее на надо. Но чаще всего есть какой-нибудь stand-by с онлайн-репликацией, и его уже можно подгрузить. А порой нужно, чтобы процесс загрузки работал быстро, бизнес ждет данные. А отрисовать его тоже нужно было еще вчера, а руководству уже доложено, что он уже месяц как работает.. А источник - большой скрипт, его надо разобрать, разделить на SQ, 10 штук их отрисовать, день потратить. А скрипт работает быстро, секунды. Разработчик репку почесал, весь скрипт в один SQ записал, порты забил, отрисовал все до таргета, запустил - пару секунд и данные в таргете. Успех :)

Сообщение было отредактировано: 4 сен 20, 08:55
4 сен 20, 08:59    [22191895]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
Anonymous_20:
Lookup по умолчанию пассивная трансформация, и внимательно смотрите на настройки, там стоит какую запись Lookup отдаст. Чтобы Lookup стал активен, то надо при создании его объявить активным, и тогда уже не чего не сойдется.
Ну... вероятно вы правы, и звучит вполне логично, но я не смог найти этих настроек не при создании (активный/пассивный), ни в Properties (чтобы там было написано какую запись он отдаёт).

Сейчас немного мучаюсь с тем, что помещая подзапрос в Lookup Override - берутся избыточные данные как будто и работает как-то очень долго по сравнению с оригиналом в PL/SQL Developer-е.

Основной запрос у меня вида:

SELECT
    <а здесь много подселектов, которые берут нужные поля - они все связаны с "t" по ID>
FROM <здесь одна таблица> t
WHERE...

Некоторые поля берутся большими подселектами из многих таблиц. Одна из которых связана с внешней по ID.

Смотрел другие маппинги и там вроде бы так же - подзапросы в Override помещаются целиком, кроме условия связи, которое прописывается на вкладке Condition (и, очевидно, подставляется в запрос автоматически).

Возможно такие лукапы и должны работать много дольше обычного запроса, т.к они сначала вычитывают, потом связывают, а соответственно и фильтруют строки по условию связи. Но это как-то не сходится у меня в голове с "быстрым маппингом" )

К тому же подобные подзапросы, как понимаю, больше никуда и не засунешь - только в Lookup. А там - так.
И кажется он у меня выбирает много лишнего, как будто не видит условие связи.
Вроде я правильно настраиваю, но вдруг что-то не знаю.
Пример к сожалению только такой - идея. Понимаю, что по такому описанию вряд ли точно что-то скажешь.

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

А так - спасибо всем большое за ответы ) - узнаю очень много полезного.
4 сен 20, 10:08    [22191932]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Anonymous_20
Member

Откуда:
Сообщений: 16
psamv,

При создание Lookup обратите внимание на нижнию строчку. Там можно поставить галочку напротив фразы Return all values on Multple Match. Это опция как раз и объявляет, что трансформация будет активная. После создания сменить активную на пассивную ( или наоборот) не возможно. Только путём пересоздания. Если у вас проблемы с sql трансформаций. Поищите на marketplace.informatica.com примеры, и попробуйте проанализировать, что у вас не так.
Еще одна подсказка.
Допустим имеем 2 таблицы, в каждой по 1 000 000 записей. Вычитывание каждой таблицы занимает 2 часа. Необходимо соединить записи этих таблиц через информатику. Если использовать только joiner то загрузка будет работать такая около 4 часов. А если joiner+ сортировщик то около 2 часов.
4 сен 20, 10:50    [22191963]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
Anonymous_20,
Спасибо! и попробую оживить SQL-трансформацию по вашему совету.
4 сен 20, 13:56    [22192119]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34263
Блог
Anonymous_20
2) в интернете поищи тесты. Итог для oracle, при одинаковых серверах, oracle будет шустрее выполнять схожие операции


А тут, хоть статейка довольно старая
https://www.dis-group.ru/files/news/bnpparibas.pdf
там есть такой момент

автор
3) Перенос расчетной нагрузки с СУБД на ETL.
Операции соединения (join) больших таблиц, применение сложных фильтров и расчет в цикле были
перенесены из Oracle в Informatica, что позволило на
порядок ускорить процедуры загрузки хранилища


Врут?
4 сен 20, 14:24    [22192152]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Anonymous_20
Member

Откуда:
Сообщений: 16
Критик,

Тест который я видел. При одинаковых условия сравнивали информатику и бд сначала кто быстрее выполнит соединение 2 таблиц. Второй тест кто быстрее выполнит сортировку. Результат думаю очевиден, что на стороне бд быстрее такие операции выполнятся. И чем больше данных, тем больше отрыв бд.

Отвечая на Ваш вопрос про статью, думаю, что не врут. Я говорю только про соединение и сортировку, а в статье указаны например и расчеты. Одно смущает надпись про циклы, в информатике powercentr нет циклов. Опять же циклы я конечно делал на информатике, но вещь это довольно не простая ( быстро через java можно).
5 сен 20, 11:17    [22192445]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
.Евгений
Member

Откуда:
Сообщений: 574
Anonymous_20
При одинаковых условия сравнивали информатику и бд сначала кто быстрее выполнит соединение 2 таблиц. Второй тест кто быстрее выполнит сортировку.
По описанию это выглядит далеко от реальной жизни. Стандартные задачи ETL включают в себя, во-первых, Insert или Merge, а во-вторых, выполняются многопоточно, в параллели. Редкая СУБД не задумается, если ее одновременно нагрузить парой десятков больших соединений/сортировок и модификацией таблиц.
Anonymous_20
Одно смущает надпись про циклы, в информатике powercentr нет циклов. Опять же циклы я конечно делал на информатике, но вещь это довольно не простая ( быстро через java можно).
Например, пара воркфлоу запускают друг друга через pmcmd.
5 сен 20, 12:41    [22192478]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
Anonymous_20


При создание Lookup обратите внимание на нижнию строчку. Там можно поставить галочку напротив фразы Return all values on Multple Match. Это опция как раз и объявляет, что трансформация будет активная

Значит ли это, что лукап в данном случае будет работать как подзапрос в БД? То есть, что таблица или запрос не будет вычитывать все данные полностью, а передавать в качестве параметров поля из основного потока для возврата каждой записи?

Почему спрашиваю. Недавно была сложность, переписывал большой скрипт на IPC. Все бы ничего, но там было 100500 подзапросов, в каждый из которых передавались поля в where. Таблицы, из которых подзапросы брали данные, были гигантские, однако имели очень селективные индексы и при передаче извне условий фильтрации работали достаточно шустро. Переписал все это на IPC и получилось, что сначала все вычитывается, потом только вяжется с основным потоком. Решил через SQL-трансформацию, она как раз и работает как нужно - возвращает записи для каждой записи из основного потока. Но, как я понимаю, так мог бы работать и лукап.. Или нет?
7 сен 20, 08:58    [22192805]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
Евгений, теперь понятно хоть за счёт чего ETL быстрый - развитая многопоточность.

Master_Detail

Значит ли это, что лукап в данном случае будет работать как подзапрос в БД? То есть, что таблица или запрос не будет вычитывать все данные полностью, а передавать в качестве параметров поля из основного потока для возврата каждой записи?
...
Решил через SQL-трансформацию, она как раз и работает как нужно - возвращает записи для каждой записи из основного потока. Но, как я понимаю, так мог бы работать и лукап.. Или нет?
Мне тоже интересно было бы знать.

Пока понял: что активный лукап или пассивный - он всё равно вычитывает полностью таблицу, а потом только связывает. Разница в том, что пассивный в любом случае берёт одну строку (1:1 к основной выборки, даже если выбрать их он мог бы больше), а активный берёт все выбираемые им строки и поэтому потом его нужно соединять через Join или Union с другими потоками.
Активные - меняют кол-во строк.

2) Сложилось впечатление, что лукапы - ущербный инструмент (из-за того что сначала берут все данные, а только потом ограничивают условиями связи), SQL-преобразование - выходит лучше.
А лукапы, как мне показалось, эффективны только для подзапросов к одной таблице, и желательно, где данные 1:1 с основной выборкой, чтобы можно было использовать их в пассивном режиме. И желательно где не нужно вставлять в Override.

Но лукапами ведь часто пользуются, а он сейчас кажется мне почти бессмысленным - зря грузящим базу. Кажется, что всегда лучше SQL-трансформация. Почему при такой избыточности это популярный инструмент? Чем они хороши?

3) Наверное лукапы лучше заменять по возможности SQ (Sql Query в SQ), т.к. там условие связи сразу в запросе и должно работать, мне кажется, намного быстрее.

Ну вот, такое у меня пока понимание новичка и доп. вопросы. Уверен, что много ошибочного.
7 сен 20, 13:12    [22192939]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
.Евгений
Member

Откуда:
Сообщений: 574
psamv
Евгений, теперь понятно хоть за счёт чего ETL быстрый - развитая многопоточность.
Пока понял: что активный лукап или пассивный - он всё равно вычитывает полностью таблицу

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

Лукап в средствах ETL имеет минимум 2 варианта кеширования: это буферизация всех возможных значений из источника в локальной памяти и обращение к источнику для каждой строки.

Сообщение было отредактировано: 7 сен 20, 14:02
7 сен 20, 14:04    [22192989]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Anonymous_20
Member

Откуда:
Сообщений: 16
psamv,
Выше я уже про разные виды lookup писал. SQL трансформация тоже имеет хитрые механизмы. Например по умолчанию вы через нее получите только 10000 записей максимум. Чтобы больше получить ее надо настраивать. Lookup тоже надо настраивать. Не хотите кешируемый lookup уберите галочку на закладке Properties, Lookup caching enabled.
К сожалению у меня не остались ссылки на сайты, которые давал прочитать новичкам, но в англоязычном сегменте интернета было как минимум 3 сайта с довольно неплохим описанием трансформаций и возможностями их. В крайнем случаи есть база знаний
search.informatica.com/KBHome/ . Есть неплохой хелп (F1 кнопка). Есть на крайний случай маркетплейс, часть wf там бесплатные и можно посмотреть разные приёмы, если в вашей организации их мало.
7 сен 20, 14:16    [22192996]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1273
Anonymous_20
psamv,
Выше я уже про разные виды lookup писал. SQL трансформация тоже имеет хитрые механизмы. Например по умолчанию вы через нее получите только 10000 записей максимум. Чтобы больше получить ее надо настраивать. Lookup тоже надо настраивать. Не хотите кешируемый lookup уберите галочку на закладке Properties, Lookup caching enabled.
К сожалению у меня не остались ссылки на сайты, которые давал прочитать новичкам, но в англоязычном сегменте интернета было как минимум 3 сайта с довольно неплохим описанием трансформаций и возможностями их. В крайнем случаи есть база знаний
search.informatica.com/KBHome/ . Есть неплохой хелп (F1 кнопка). Есть на крайний случай маркетплейс, часть wf там бесплатные и можно посмотреть разные приёмы, если в вашей организации их мало.


интересно
а вот воркфлоу как там смотреть ?
почему спрашиваю мне актуальна информатика
но у меня очень ограниченные права на ее
(т.е у меня права на 2 воркфлоу на суппорте
в один из которых я не давно добавлял одно поле и замучился пока победил)
и нет прав даже менять коннекшены самому (я пишу реквесты )
т.е могу я как-то посмотреть их не устанавливая примеры себе ?

ну или толковая книга (сайт) интересует
7 сен 20, 17:32    [22193150]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
Спасибо всем, полезная инфа.
Надо будет поискать так же на search.informatica.com, вот о чём вы писали, как будет время - центральный ресурс - конечно полезен.

1) Возвращаясь к лукапам. Пока не очень понятно чем они хороши и почему сделаны отдельным инструментом. Кажется, что их почти всегда можно заменить SQL-транс-ями и это будет выгодней.
Исключение может - совсем простенькие лукапы, без Override.

2) C SQL-трансформацией разобрался, но что-то не работает. В сессии настроил её Relation источник. Но в документации есть что-то о том что:
Connecting to Databases:
...
Static connection. Configure the connection object in the session. You must first create the connection object in Workflow Manager.
...
Делал её в Query mode, в пассивном режиме (строки 1:1), статический запрос с binding входящими портами.
Запрос внутри - рабочий, все имена и типы портов соответствуют, в сессии - правильный источник для неё.
Но из доки не понятно нужно ли ещё что-то кроме настроек сессии. Как будто создать отдельный объект для соединения в Workflow.
может это я упускаю. потому что для каждой входной строки она упорно берёт пустоту. И в целевую таблицу ложатся пустые строки.
9 сен 20, 11:40    [22194062]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
.Евгений
Member

Откуда:
Сообщений: 574
psamv
Спасибо всем, полезная инфа.
Надо будет поискать так же на search.informatica.com, вот о чём вы писали, как будет время - центральный ресурс - конечно полезен.

1) Возвращаясь к лукапам. Пока не очень понятно чем они хороши и почему сделаны отдельным инструментом. Кажется, что их почти всегда можно заменить SQL-транс-ями и это будет выгодней.
Исключение может - совсем простенькие лукапы, без Override.
Соединение двух потоков данных требует их обоюдной сортировки. Лукап - нет (хотя кешированный неявно сортирует себя). В результате денормализация звезды или снежинки в одну "простыню" через соединения фактически невозможна.
9 сен 20, 12:19    [22194106]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2748
psamv

1) Возвращаясь к лукапам. Пока не очень понятно чем они хороши и почему сделаны отдельным инструментом. Кажется, что их почти всегда можно заменить SQL-транс-ями и это будет выгодней.
Исключение может - совсем простенькие лукапы, без Override.

они нужны, чтобы их продавать

за 10 лет работы с инфой, основной её lifecycle: пользователь всё больше начинают использовать SQL, переходя на полный ELT, а потом выкидывают инфу. Потому что уже непонятно, зачем она нужна.
9 сен 20, 12:27    [22194113]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
alexdr
Member

Откуда:
Сообщений: 249
Бумбараш
за 10 лет работы с инфой, основной её lifecycle: пользователь всё больше начинают использовать SQL, переходя на полный ELT, а потом выкидывают инфу.

Хм... Всё страньше и страньше! Всё чудесатее и чудесатее!(с)перто.
9 сен 20, 12:59    [22194153]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
.Евгений
Member

Откуда:
Сообщений: 574
alexdr
Бумбараш
за 10 лет работы с инфой, основной её lifecycle: пользователь всё больше начинают использовать SQL, переходя на полный ELT, а потом выкидывают инфу.

Хм... Всё страньше и страньше! Всё чудесатее и чудесатее!(с)перто.
Я не исключаю, что так оно во многом и есть. Во-первых, потому что большинство программистов ETL рекрутируются из базистов, которым SQL наиболее привычен и понятен, и так оно для них и остается. Во-вторых, из-за отсутствия тщательно подготовленных кейсов сравнения с детальным разбором производительности и узких мест.
9 сен 20, 13:17    [22194169]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
.Евгений
Я не исключаю, что так оно во многом и есть. Во-первых, потому что большинство программистов ETL рекрутируются из базистов, которым SQL наиболее привычен и понятен, и так оно для них и остается. Во-вторых, из-за отсутствия тщательно подготовленных кейсов сравнения с детальным разбором производительности и узких мест.
Т.е. в целом - Informatica - хороший инструмент, если уметь его правильно и гибко использовать. Тогда проявляются её преимущества.

Мне не очень по душе негативный взгляд (разочаровывает). Думаю - кто бы стал делать крупномасштабную ерунду - на этом далеко не уедешь.

Мне кажется и лукапы - скрывают в себе много полезного, если знать, как их правильно использовать (только кажется, что они - фигня). Хотелось бы понимать как они правильно применяются.

Вы писали:
Евгений:
Соединение двух потоков данных требует их обоюдной сортировки. Лукап - нет (хотя кешированный неявно сортирует себя). В результате денормализация звезды или снежинки в одну "простыню" через соединения фактически невозможна.
Для меня немного высокий уровень понимания.

1) Да, разные потоки нужно сортировать, чтобы объединить, причём один должен полностью включать в себя другой иначе Full Join-ом красиво не получится.

2) Лукап довыбирает данные из подключенных таблиц. Его узкое место - добавляет условие связи потом, а не сразу при выборе (или оно видится таковым).

3) Но через Joiner-ы можно соединить любую снежинку, главное, чтобы у всех этих потоков был общий ID и один (основной) поток содержал все ID остальных. Тогда можно последовательно их Jioner-ами все объединить. (Если правильно Вас понял).

C SQL-трансформацией так и не смог пока разобраться. Выбирает пустоту, хоть вроде всё везде настроил. Интересно - в Query Mode, статический запрос, пассивная. Получается ли у вас её использовать?
10 сен 20, 10:50    [22194620]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
.Евгений
Member

Откуда:
Сообщений: 574
psamv
3) Но через Joiner-ы можно соединить любую снежинку, главное, чтобы у всех этих потоков был общий ID и один (основной) поток содержал все ID остальных. Тогда можно последовательно их Jioner-ами все объединить. (Если правильно Вас понял).

Нет, не совсем правильно. Например, есть десять измерений (справочников клиентов, счетов и т.д.) и большая таблица фактов с десятью идентификаторами (ссылками на каждый справочник: сделка с таким-то клиентом по такому-то счету и т.д.). Для реализации соединений вы будете вынуждены сортировать факты десять раз по каждому идентификатору, тогда как для лукапов этого делать не требуется.
10 сен 20, 11:36    [22194663]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
.Евгений
psamv
3) Но через Joiner-ы можно соединить любую снежинку, главное, чтобы у всех этих потоков был общий ID и один (основной) поток содержал все ID остальных. Тогда можно последовательно их Jioner-ами все объединить. (Если правильно Вас понял).

Нет, не совсем правильно. Например, есть десять измерений (справочников клиентов, счетов и т.д.) и большая таблица фактов с десятью идентификаторами (ссылками на каждый справочник: сделка с таким-то клиентом по такому-то счету и т.д.). Для реализации соединений вы будете вынуждены сортировать факты десять раз по каждому идентификатору, тогда как для лукапов этого делать не требуется.
Вы имеете в виду, что если выбирать каждую табличку снежинки через SQ, потом Joiner-ить с фактами, то каждый раз проигрываешь на сортировке. А если сразу лукапами цеплять к одной выбранной таблице фактов, то такого не будет.

Единственное, лукапы каждый раз берут всю свою выборку (которая у них в Override или просто одну таблицу), а условие связи с таблицей фактов они применяют потом.

Но в данном, многомерном, случае они хороши, т.к. собственная выборка будет подмножеством таблицы фактов. Поэтому, применение условия потом никак на скорости не скажется. А если собственная выборка лукапа шире, чем таблица, с которой он цепляется - видимо тогда и возникают проблемы?

Т.е. их надо применять, не когда нужно отфильтровать выборку в лукапе, а когда лукапом основную? Но вроде он так не умеет, основную же берёт целиком.

Что-то я с лукапами совсем запутался )
Но чувствую, хожу вокруг да около и где-то рядом с пониманием (чего-то просто не хватает)

Сообщение было отредактировано: 10 сен 20, 13:30
10 сен 20, 13:32    [22194752]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
автор
Т.е. их надо применять, не когда нужно отфильтровать выборку в лукапе, а когда лукапом основную? Но вроде он так не умеет, основную же берёт целиком.
Что-то здесь у меня какой-то бред по-моему.
Лукап довыбирает поля из своей выборки, основную он никогда не фильтрует. Наоборот - она его.
Значит он всегда избыточный?
Но в случае со снежинкой мне сложно судить. Я только примерно представляю себе эту архитектуру.
10 сен 20, 14:08    [22194786]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
.Евгений
Member

Откуда:
Сообщений: 574
psamv
Вы имеете в виду, что если выбирать каждую табличку снежинки через SQ, потом Joiner-ить с фактами, то каждый раз проигрываешь на сортировке. А если сразу лукапами цеплять к одной выбранной таблице фактов, то такого не будет.
Да.
psamv
Единственное, лукапы каждый раз берут всю свою выборку (которая у них в Override или просто одну таблицу), а условие связи с таблицей фактов они применяют потом.
Необязательно, это зависит от выбранного типа кеширования (данные хранятся либо в локальной памяти, либо как ссылка на удаленный объект). У каждого варианта свои достоинства и недостатки. Если справочник относительно мал, то локальное кеширование выгодно. Напротив, при разрешении небольшого количества записей через большой справочник последний можно не кешировать и не тратит ресурсы на загрузку в локальную память, а обращаться для каждой записи в удаленную БД.
10 сен 20, 14:28    [22194811]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
.Евгений
psamv
Единственное, лукапы каждый раз берут всю свою выборку (которая у них в Override или просто одну таблицу), а условие связи с таблицей фактов они применяют потом.
Необязательно, это зависит от выбранного типа кеширования (данные хранятся либо в локальной памяти, либо как ссылка на удаленный объект). У каждого варианта свои достоинства и недостатки. Если справочник относительно мал, то локальное кеширование выгодно. Напротив, при разрешении небольшого количества записей через большой справочник последний можно не кешировать и не тратит ресурсы на загрузку в локальную память, а обращаться для каждой записи в удаленную БД.
Спасибо.
Это уже многое проясняет, весьма для меня ценно. А я не знал, думал почему-то, что он всегда связывает потом.

Если из большого справочника нужно немного записей, то конечно, кэшировать очень затратно.
Если справочник небольшой, то выгодно. Т.е. это зависит от % нужных в справочнике строк.

Но если этот справочник БОЛЬШОЙ и берётся его значительный объём, то нужно проверять - кэшировать или нет, что выгоднее с учётом нагрузки на базу. Но если выполнять его на стороне БД, то работа лукапа здесь не будет отличаться от выборки в SQ (самой-по-себе). Но SQ + Joiner будет затратнее, чем такой лукап.

Всё верно?
10 сен 20, 15:41    [22194884]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
.Евгений
Member

Откуда:
Сообщений: 574
psamv,

лукап выполняет запрос к источнику для каждой записи в потоке. Запрос в память быстр, к дисковому кешу медленнее. Некешированный лукап самый медленный, зато ему не нужна предварительная загрузка данных. Join двух SQ требует их одинаковой сортировки - если она уже выполнена, то соединение работает быстро.
10 сен 20, 17:08    [22194962]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
.Евгений
psamv,

лукап выполняет запрос к источнику для каждой записи в потоке. Запрос в память быстр, к дисковому кешу медленнее. Некешированный лукап самый медленный, зато ему не нужна предварительная загрузка данных. Join двух SQ требует их одинаковой сортировки - если она уже выполнена, то соединение работает быстро.
Получается 1000 записей - некэшированный 1000 раз соединится с удалённой БД, а кэшированный - то же, но со своим локальным кэшем - поэтому быстрее. Но закэшировать тоже нужно время, поэтому если маленький % строк, то не кэшированный лукап может быть выгоднее.

?) "Запрос в память быстр" - вы написали для полноты картины? Но сам Лукап же в такую память не обращается? Он только в кэш или на базу )

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

Теперь, наверное, я правильно понял ) (надеюсь:)

Сообщение было отредактировано: 10 сен 20, 17:42
10 сен 20, 17:44    [22195002]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
.Евгений
Member

Откуда:
Сообщений: 574
psamv
Получается 1000 записей - некэшированный 1000 раз соединится с пошлет SQL запрос удалённой БД, а кэшированный - то же, но со прочтет свой локальный кэш - поэтому быстрее. Но закэшировать тоже нужно время, поэтому если маленький % строк, то не кэшированный лукап может быть выгоднее.
Локальный кеш, в зависимости от настроек и объема, может храниться в памяти или на диске в виде файла.
10 сен 20, 19:07    [22195033]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
.Евгений
лукап выполняет запрос к источнику для каждой записи в потоке. Запрос в память быстр, к дисковому кешу медленнее. Некешированный лукап самый медленный, зато ему не нужна предварительная загрузка данных. Join двух SQ требует их одинаковой сортировки - если она уже выполнена, то соединение работает быстро.
Если можно, как это будет на конкретном примере:

Есть внешний запрос, где выбираются поля, в т.ч. подселектами:

select
     ...
     <subselect к табличке sub_tab, содержащей 500 000 строк>
     ... (и другие подзапросы)
from main_tab

main_tab содержит 2 000 000 строк.
Таблицы связаны по полю ID в соотношении 1:1
Подзапрос, сам-по-себе, берёт только 5 записей по всем своим ограничениям. Это для 2-х миллионов строк основного.

В маппинге:
есть SQ по main_tab, берущий 2 млн. строк - основная выборка, содержащая поля, к которым нужно добавить поля выбранные такими подселектами.

Как в этом случае поведёт себя:
1) кэшированный
2) и некэшированный лукап
3) и если запрос сразу поместить в Sql Query в SQ ?


1) Если мы добавляем кэшированным лукапом этот подзапрос - он просто кэширует 5 строк (как понял). Потом, подставляя условие связи с основной выборкой, добавляет поле, заполняя его для этих 5-ти ID данными и всё - очень быстро.

2) Если лукап не кэшируется, то он будет таскать из базы все 2 000 000 по одной. А потом упадёт в обморок узнав, что нужно только 5.

3) Если делать не через лукап, а через ещё одно SQ (взяв нужное поле и ID, для связи с основной выборкой), то, как я понял, разница в том, что не будет бегать туда сюда а выберет все 2 млн. на стороне БД. Это конечно не_медленно (БД работает быстро), но, дольше, чем лукапом из кэша, и грузит базу. А потом сортировка и Join поля к основной выборке ещё потребуют времени.

Поэтому здесь лучше кашированный лукап. я так понял.

Между моим и Вашим пониманием - немалый пробел, поэтому мне немного сложновато понять так. Может быть, на таком примере будет проще, если у Вас есть время.
10 сен 20, 19:26    [22195038]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Anonymous_20
Member

Откуда:
Сообщений: 16
Бумбараш
psamv

1) Возвращаясь к лукапам. Пока не очень понятно чем они хороши и почему сделаны отдельным инструментом. Кажется, что их почти всегда можно заменить SQL-транс-ями и это будет выгодней.
Исключение может - совсем простенькие лукапы, без Override.

они нужны, чтобы их продавать

за 10 лет работы с инфой, основной её lifecycle: пользователь всё больше начинают использовать SQL, переходя на полный ELT, а потом выкидывают инфу. Потому что уже непонятно, зачем она нужна.


Самая большая проблема это отсутствие квалифицированных специалистов (их мало). Приходилось работать во многих конторах с информатикой. Рисовал не только стандартные процессы, но даже веб сервисы на информатики и другие режимы информатики задействовать приходилось. Приходилось заниматься подготовкой новичков и вот тут кроется главная проблема "молодых" кадров:
1. Чтобы качествено разрабатывать иногда необходимо забыть свой предыдущий опыт SQL разработчика или любой другой роли. Тут многое по другому. На этом этапе уже начинаются большие проблемы, некоторым разработчикам не могут переключится и пытаются все на sql перевести.
2. Не пытаются анализировать, что делают. Накидают трансформацией на дефолтных настройках, пройдут все контуры, но потом на бою может через месяц, может даже через несколько лет, такой мапинг перестает нормально работать, начинаешь разбираться и единственный вопрос в голове возникает, как все это работало.

Со своей колокольни могу сказать, для качественной разработки необходимо знать: Информатику, скриптовые языки (BASH например), ОС (на котором крутится инфа), основы СУБД (был опыт когда из за не оптимальных настроек инфа парализовала работу СУБД даже 1 потоком) с которыми придется работать, SQL, веб технологии, основы java (программировать, то что инфа не умеет). И самое главное умение договариваться. Иногда проще переложить часть функционала на информатику, иногда проще со смежником (разработчик в системе источника или получателя) договорится, чтобы он сделал на своей стороне.

[quot psamv#22195038]
.Евгений


Как в этом случае поведёт себя:
1) кэшированный
2) и некэшированный лукап
3) и если запрос сразу поместить в Sql Query в SQ ?


1) Если мы добавляем кэшированным лукапом этот подзапрос - он просто кэширует 5 строк (как понял). Потом, подставляя условие связи с основной выборкой, добавляет поле, заполняя его для этих 5-ти ID данными и всё - очень быстро.

2) Если лукап не кэшируется, то он будет таскать из базы все 2 000 000 по одной. А потом упадёт в обморок узнав, что нужно только 5.

3) Если делать не через лукап, а через ещё одно SQ (взяв нужное поле и ID, для связи с основной выборкой), то, как я понял, разница в том, что не будет бегать туда сюда а выберет все 2 млн. на стороне БД. Это конечно не_медленно (БД работает быстро), но, дольше, чем лукапом из кэша, и грузит базу. А потом сортировка и Join поля к основной выборке ещё потребуют времени.

Поэтому здесь лучше кашированный лукап. я так понял.
.


В вашем случаи как понимаю должен быть активный, кешируемый лукап. На вкладке Condition делайте связь. 2 000 000 записей лукап закешировать за несколько минут максимум.
3 вариант ваш очень спорный. Вы просто так прожираете ресурсы информатики. Почитайте про JOINER https://kb.informatica.com/whitepapers/1/Pages/16632.aspx?myk=join cache
Запомнить все что ниже What are the Joiner caches?
Сортировщики дает только возможность параллельно считывать из 2 таблиц, но такой вариант и имеет свои минусы.
11 сен 20, 09:48    [22195219]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
Anonymous_20

В вашем случаи как понимаю должен быть активный, кешируемый лукап. На вкладке Condition делайте связь. 2 000 000 записей лукап закешировать за несколько минут максимум.
3 вариант ваш очень спорный. Вы просто так прожираете ресурсы информатики. Почитайте про JOINER https://kb.informatica.com/whitepapers/1/Pages/16632.aspx?myk=join cache
Запомнить все что ниже What are the Joiner caches?
Сортировщики дает только возможность параллельно считывать из 2 таблиц, но такой вариант и имеет свои минусы.
Спасибо за комментарий и советы, обязательно почитаю вот, по той ссылке.
Единственное: насчёт 3-его моего спорного варианта: Он отрабатывает стабильно в 5-10 раз быстрее лукапа и выбирает только нужные записи (около 100 000) по своим фильтрам и связям, без всего лишнего.
Лукап же берёт все 2 000 000, достаточно долго.

Запрос в Sql Query в SQ срабатывает на стороне БД, поэтому насчёт расточительности Информатики.. сложно сказать. Вроде не особо - только Joiner, но на таком объёме данных он, мне кажется сработает быстро.

Пока понимаю так.
11 сен 20, 11:33    [22195280]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Anonymous_20
Member

Откуда:
Сообщений: 16
psamv,

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

Таблица A имеет 5 000 000 записей.
Таблица Б имеет 10 000 записей.

Если используем только Joiner.
Правильно делать Таблицу Б Master, а Таблицу А Detail. Как будет работать информатика Она частично скачает таблицу А, потом будет ожидать окончания загрузки таблицы Б. Результат загрузки таблицы Б она полностью закэширует для соединения.
Минус такого подхода. Если перепутать местами таблицы, или таблица Б будет очень огромная То загрузка, которая идет в Detail (А) может падать с ошибкой для ORACLE например ORA-1555: snapshot too old. Или был случай когда кэш генерировался по 500 ГБ.

Можно перед Joiner поставить сортировщик. Тогда вычитка из таблиц будет идти параллельно, так как сортировщик чтобы отдал данные он должен все получить. Но есть баг у информатики, не знаю в 10.4 починили его или нет. Пока у вас низкая скорость работы нечего страшного не происходит. Но у меня был процесс со скоростью работы около 250 000 записей в секунду с каждой таблицы. Тогда сортировщики начинают неплохо забивать ядра CPU.
Плюс надо запомнить, информатика рассчитывает кэш не от объема данных (сумма символов с строке), а от максимального размера полей указанных в трансформации. И пару поле с максимальным размером 100 мб неплохо места на диске отъедает.
Одним словом здесь как в медицине, не видя клиента и анализы, диагноз адекватный и план лечения трудно назначить.

Встречался не раз с такими решениями которые хорошо работали первые пол года-год, а потом скорость резко падает. И когда начинаешь разбираться, понимаешь тут разработчик не заложился на объем роста данных. Тут он лишнею трансформацию активную поставил. Или текущие решение на такой объеме плохо будет всегда работать.
Также многое зависит от серверов и дисковых массивов на которых крутится информатика.
11 сен 20, 12:17    [22195310]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
psamv
Member

Откуда:
Сообщений: 26
Anonymous_20, это верно, что учитывая больше параметров, достигается лучший результат.
У вас большой опыт. У меня пока не слишком. Но то что вы написали, будет мне полезно.
Конечно, показатель не только скорость, не только что-то одно, но для начала лучше не быть абсолютным перфикционистом и пока делать лучшее, что можешь. Развивать это по мере накопления знаний.
Спасибо.
11 сен 20, 13:06    [22195349]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2748
Anonymous_20


Самая большая проблема это отсутствие квалифицированных специалистов (их мало). Приходилось работать во многих конторах с информатикой. Рисовал не только стандартные процессы, но даже веб сервисы на информатики и другие режимы информатики задействовать приходилось. Приходилось заниматься подготовкой новичков и вот тут кроется главная проблема "молодых" кадров:

Я про минусы информатики писал, когда был маленьким 14105796
Сейчас информатику никто в проектах с нуля не использует. Только в ригидных энтерпрайзах, которые уже обвешаны лицензиями информатики и там в ЛПР деревянные дяди.
Сейчас в основном пишут свой етль на питонах в основном, или попенсорс етли используют.
11 сен 20, 13:39    [22195373]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
.Евгений
Member

Откуда:
Сообщений: 574
Бумбараш
Сейчас в основном пишут свой етль на питонах в основном

Т.н. "экосистема" с 1...n внешними модулями и полноценным программированием. Про скорость работы именно питонской части скромно умолчу.
Бумбараш
или попенсорс етли используют.

Безусловно, комьюнити версии Таленда или Пентахо дают заметный выигрыш на стоимости лицензирования в сравнении с СУБД или Информатикой.
11 сен 20, 19:24    [22195587]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
Бумбараш
Я про минусы информатики писал, когда был маленьким 14105796

Хороший текст у вас. Абсолютно те же наблюдения и мысли у меня появлялись. Для себя сделал пару выводов:
- если баз не одна, а 100500, то как некое централизованное ETL-средство - норм. Тем более в банках, где без нее приходилось бы кидать дблинки, открывать порты всем подряд. Безопасности это всегда не нравится
- если источники разнородные. Быстро подтянуть данные из разных СУБД, веб-сервиса, еще откуда-то и слить их в один таргет достаточно сложно будет иными средствами. Другое дело, что таких задач 1 на 1000
- Enterprise любит готовые решения, чтобы была поддержка и гарантии, что самописный питон завтра не свалится, а писавший его народ не разбежится

Сообщение было отредактировано: 13 сен 20, 20:46
13 сен 20, 20:46    [22196230]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2748
Master_Detail

- если баз не одна, а 100500, то как некое централизованное ETL-средство - норм. Тем более в банках, где без нее приходилось бы кидать дблинки, открывать порты всем подряд. Безопасности это всегда не нравится

открывать порты вы в любом случае будете. Информатика в этом плане ничем не отличается.
Master_Detail

- если источники разнородные. Быстро подтянуть данные из разных СУБД, веб-сервиса, еще откуда-то и слить их в один таргет достаточно сложно будет иными средствами. Другое дело, что таких задач 1 на 1000

любым другим средством или питоном вы также сливаете из разных источников в один таргет, как и информатикой

Master_Detail

- Enterprise любит готовые решения, чтобы была поддержка и гарантии, что самописный питон завтра не свалится, а писавший его народ не разбежится

Я информатику видел в интерпрайзе много раз и покупал. У неё нет никакой поддержки и гарантии. Есть какая-то промежуточная контора, галера, которая продает лицензии и людей. Назовём её дис. С ней заключается контракт на определенный набор услуг. Если там нет поддержки, её не будет. Если будет поддержка, она будет. Но эта поддержка ничем не отличается от той поддержки, если вы заключите контракт с другой галерой на написание ETL на питоне, и поддержку его.
Никакой такой поддержки от самой компании Informatica и гарантий от неё у вас не будет. Когда поддержка от галеры закончится, и команда разбежится, у вас на информатике точно также может всё развалится, и собирать может быть еще сложнее. Потому что код разнесен на три части - саму информатику, питон и скль.
Кроме того у вас с информатикой могут возникать ошибки с описанием ofx12haxhtsr, ака синий экран, после чего информатика падает мертвой полностью. С питоном такого не бывает. Все такие ошибки поддержка информатики в 90% случаев рекомендует решать установкой новой версии.
13 сен 20, 22:14    [22196253]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2748
Master_Detail

- Enterprise любит готовые решения, чтобы была поддержка и гарантии

ну и еще раз. Это положение дел на 2005 год. Тогда можно было говорить такое про информатику. Сейчас в любом самом большом энтерпрайзе никто её уже не внедряет, как тогда. А пользуются другими средствами.
13 сен 20, 22:15    [22196254]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
Бумбараш

открывать порты вы в любом случае будете. Информатика в этом плане ничем не отличается.

Я про то, что, чтобы забрать данные из двух разных БД, достаточно дать доступы серверу информатики к этим БД, а не между этим БД. В этом ключе

Бумбараш

любым другим средством или питоном вы также сливаете из разных источников в один таргет, как и информатикой

Бесспорно. Но я о том, что такое решение уже должно быть. А информатика его как бы предоставляет заранее. Если деньги ляшку не жгут, то и идут и покупают информатику, наслушавшись ее продажников

Бумбараш
Я информатику видел в интерпрайзе много раз и покупал...

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

И вообще - мой пост не про преимущества информатики над теми решениями, что вы описывали. Абсолютно с вами согласен. Речь о том, какие причины нашел для себя, которые могут служить причиной покупки и внедрения информатики отдельно взятой конторой

Сообщение было отредактировано: 15 сен 20, 10:51
15 сен 20, 10:55    [22197118]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
netdiver
Member

Откуда:
Сообщений: 5
Критик,

Насчет БНП - врут частично. Инфа используется на корпоративном уровне. Скорее вынудили поставить ее, чтоб могли общаться "на одном" языке. Сам работаю в бнп (dwh) с информатикой.
25 сен 20, 14:37    [22204285]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
netdiver
Member

Откуда:
Сообщений: 5
Бумбараш,

Бумбараш
за 10 лет работы с инфой, основной её lifecycle: пользователь всё больше начинают использовать SQL, переходя на полный ELT, а потом выкидывают инфу. Потому что уже непонятно, зачем она нужна.


Явно за 10 лет тебе просто не приходилось собирать и интегрировать в двх данные с 200+ офисов со всего мира из 10+ разных систем и в csv, xml, excel, oracle, db2, postgre и тп одновременно.
25 сен 20, 14:46    [22204293]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
netdiver
Member

Откуда:
Сообщений: 5
Бумбараш
Master_Detail

- Enterprise любит готовые решения, чтобы была поддержка и гарантии

ну и еще раз. Это положение дел на 2005 год. Тогда можно было говорить такое про информатику. Сейчас в любом самом большом энтерпрайзе никто её уже не внедряет, как тогда. А пользуются другими средствами.


Ну,ну .. Deutsche Bank, Deutsche Boerse, ING, BNP, UniCredit, BMW, VW ,Audi, Kuka, Mercedes ... это только те, которые мне лично по работе последние 2-3 года встречались ))
25 сен 20, 15:28    [22204315]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2748
netdiver
Бумбараш
пропущено...

ну и еще раз. Это положение дел на 2005 год. Тогда можно было говорить такое про информатику. Сейчас в любом самом большом энтерпрайзе никто её уже не внедряет, как тогда. А пользуются другими средствами.


Ну,ну .. Deutsche Bank, Deutsche Boerse, ING, BNP, UniCredit, BMW, VW ,Audi, Kuka, Mercedes ... это только те, которые мне лично по работе последние 2-3 года встречались ))

Cobol тоже во многих из этих организаций есть и что?

Ну и я по рынку России говорил. Что там в гейропах я не разбираюсь.

Сообщение было отредактировано: 25 сен 20, 16:38
25 сен 20, 16:41    [22204353]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2748
netdiver
Бумбараш,

Явно за 10 лет тебе просто не приходилось собирать и интегрировать в двх данные с 200+ офисов со всего мира из 10+ разных систем и в csv, xml, excel, oracle, db2, postgre и тп одновременно.

в гуглах, яндексах и других компаниях как-то обходятся без информатик для интеграции из 200+ офисов

к слову в России в госкомпаниях иностранное ПО вообще запрещают. В той или иной степени. И тоже как-то справляются.

Возможно они делают это не лучшим образом. Надо им обратиться за консультациями к лучшим программистам в мире - энтерпрайз-макакам.

Сообщение было отредактировано: 25 сен 20, 16:44
25 сен 20, 16:47    [22204356]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1273
Бумбараш
netdiver
Бумбараш,

Явно за 10 лет тебе просто не приходилось собирать и интегрировать в двх данные с 200+ офисов со всего мира из 10+ разных систем и в csv, xml, excel, oracle, db2, postgre и тп одновременно.

в гуглах, яндексах и других компаниях как-то обходятся без информатик для интеграции из 200+ офисов

к слову в России в госкомпаниях иностранное ПО вообще запрещают. В той или иной степени. И тоже как-то справляются.

Возможно они делают это не лучшим образом. Надо им обратиться за консультациями к лучшим программистам в мире - энтерпрайз-макакам.


да кому то повезло (хватило интеллекта) работать в гоглах-яндексах.
Сколько это 0.001 % от ОБЩЕГО ЧИСЛА ??

да ключевое это рынок на кого работаешь
я из РБ на оффшор - и вот тоже потиху лажу в информатике
ибо досталось легаси и от тебя не зависит.
Не могу сказать что мне нравится но выбора то нет.

хотя для НОВЫХ проектов я б с удовольтсвием был апач аирфлоу или другой фреймворк (питон)
если это ваш случай это классно можно только позавидовать
выбор технологий это большой плюс.
28 сен 20, 18:06    [22205876]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Бумбараш
Member

Откуда: никем не победимая, самая любимая
Сообщений: 2748
Ну у нас как раз в РФ выбирают аирфлов и найфаи в новых проектах. И это в банках, а не в яндексах даже.
Информатика есть, но в легаси. В новых проектах почти нет.
28 сен 20, 18:37    [22205911]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1273
Бумбараш
Ну у нас как раз в РФ выбирают аирфлов и найфаи в новых проектах. И это в банках, а не в яндексах даже.
Информатика есть, но в легаси. В новых проектах почти нет.


100% легаси.
Да в новых проектах Новые технологии
я бы и сам с удовоольствием смотрел в ту сторону
но у нас в РБ норм. зарплата это работа на оффшор а там легаси большинство
хотя случаются и новые вещи но у меня они были давно увы.
Потому и читаю тему и сам ковыряюсь по тиху в информатике.
30 сен 20, 13:43    [22207050]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
Доброго дня!
Столкнулся с непонятной мне вещью.. Пытаюсь внести правки в маппинг - нужно добавить поля в SQ. Перетаскиваю поля из Source в SQ, поле добавляется в SQ, но при этом линк не отрисовывается. Думал, может графический глюк...перезашел в дизайнер, переподключился к репозиторию - ничего. Попробовал новый порт добавить руками в SQ, а потом указать ему поле в источнике - не пашет. Что за прикол?

upd. Проверил возможность добавления линков дальше. Пытаюсь руками созданный порт SQ добавить в Joiner - та же история, порт добавляется, линк не рисуется

upd2. Все просто.. Не был включен Link Column в Layout :(

Сообщение было отредактировано: 1 окт 20, 10:23
1 окт 20, 10:21    [22207406]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
Господа, ищу помощи.

Имею маппинг, в котором собирается некий поток данных. Он пропускается через Router и по условию разделяется на два потока - один отправляет данные на инсерт, другой на апдейт. Апдейт выглядит как: ...Router->Update Strategy->Target.

По настройкам:
- в Update Strategy установлено 1(DD_UPDATE тоже пробовал)
- на таргете включена галочка "Update as Update"
- коннект к таргету под пользователем-владельцем таблицы, то есть права на апдейт в БД имеются

В логах вижу следующее:

2020-10-01 19:41:56 : INFO : (19684 | TRANSF_1_5_1) : (IS | IntSrv_virt) : node01 : CMN_1053 : UPDTRANS: Send OUTPUT row to S_CONTACT_UPDATE_EXIST: Control=[None]

UPDTRANS: Send OUTPUT row to S_CONTACT_UPDATE_EXIST: Rowdata: ( RowType=0(insert) Src Rowid=1 Targ Rowid=1
  TECH_CONTACT_ROW_ID1 (ROW_ID:UniChar.15:): "9999"
  MAIN_EMAIL1 (EMAIL_ADDR:UniChar.350:): "kakoytomail@gmail.com"

)

...
2020-10-01 19:42:29 : ERROR : (19684 | WRITER_1_*_1) : (IS | IntSrv_virt) : node01 : WRT_8117 :

ERROR: Target table [S_CONTACT] does not allow INSERT
Row # [0] in bad file


По непонятной мне причине информатика хочет инсертить эту запись, а не апдейтить.. Куда смотреть?
Спасибо
1 окт 20, 17:28    [22207665]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
Master_Detail
Господа, ищу помощи.
По непонятной мне причине информатика хочет инсертить эту запись, а не апдейтить.. Куда смотреть?
Спасибо

Импортнул процесс в другой репозиторий информатики. Запустил, все отработало корректно. В логах RowType=1(update):

2020-10-02 12:14:39 : INFO : (27428 | TRANSF_1_5_1) : (IS | IntSrv) : node01 : CMN_1053 : UPDTRANS: Send OUTPUT row to S_CONTACT_UPDATE_EXIST: Control=[None]
UPDTRANS: Send OUTPUT row to S_CONTACT_UPDATE_EXIST: Rowdata: ( RowType=1(update) Src Rowid=1 Targ Rowid=1
  TECH_CONTACT_ROW_ID1 (ROW_ID:UniChar.15:): "9999"
  MAIN_EMAIL1 (EMAIL_ADDR:UniChar.350:): "kakoytomail@gmail.com"
)

То есть с самим процессом вроде как все ок. На уровне БД по идее тоже.. В правах дело быть не может, так как 1. права на update есть и 2.информатика ведь иницирует insert, а не update. В этом и проблема.
2 окт 20, 09:23    [22207916]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Anonymous_20
Member

Откуда:
Сообщений: 16
Master_Detail
Господа, ищу помощи.

Имею маппинг, в котором собирается некий поток данных. Он пропускается через Router и по условию разделяется на два потока - один отправляет данные на инсерт, другой на апдейт. Апдейт выглядит как: ...Router->Update Strategy->Target.

По настройкам:
- в Update Strategy установлено 1(DD_UPDATE тоже пробовал)
- на таргете включена галочка "Update as Update"
- коннект к таргету под пользователем-владельцем таблицы, то есть права на апдейт в БД имеются

По непонятной мне причине информатика хочет инсертить эту запись, а не апдейтить.. Куда смотреть?
Спасибо


Что стоит в настройках данной сессии на вкладке Properties, пункт Treat source rows as?
2 окт 20, 12:43    [22208040]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
Anonymous_20

Что стоит в настройках данной сессии на вкладке Properties, пункт Treat source rows as?

И не обращал внимание ранее на это свойство.. Всегда по-умолчанию использовал "Data driven". Спасибо, в этом и причина..
В чем смысл этого свойства на практике? Чтобы не использовать Update Strategy в маппинге?
2 окт 20, 18:09    [22208234]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
netdiver
Member

Откуда:
Сообщений: 5
Бумбараш
netdiver
Бумбараш,

Явно за 10 лет тебе просто не приходилось собирать и интегрировать в двх данные с 200+ офисов со всего мира из 10+ разных систем и в csv, xml, excel, oracle, db2, postgre и тп одновременно.

в гуглах, яндексах и других компаниях как-то обходятся без информатик для интеграции из 200+ офисов

к слову в России в госкомпаниях иностранное ПО вообще запрещают. В той или иной степени. И тоже как-то справляются.

Возможно они делают это не лучшим образом. Надо им обратиться за консультациями к лучшим программистам в мире - энтерпрайз-макакам.


Обиженных псевдо-патриотичных замполит-бабуинов-недоучек в целом опасно консультировать. Лучше держатся от них подальше- уж очень они тупые и кусачие ;)
4 окт 20, 23:47    [22208853]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
George Nordic
Member

Откуда: Moscow
Сообщений: 1167
Друзья, давайте воздержимся от взаимных оскорблений и не будем в политоту скатываться.

Выбор решения зависит от множества причин:
1. Компания "подсела" на стек продуктов какого-либо из вендоров, например, из-за подписанного корпоративного соглашения с очень привлекательными условиями и у них уже очень много решений данного вендора. Скорее всего, при выборе решения она в первую очередь будет смотреть на стек продуктов именного данного вендора.
2. У сотрудников компании есть опыт работы именно с определенным стеком продуктов. Да, это может быть не идеальное решение, но уже есть обученные сотрудники и они понимают как сделать проект на тех технологиях, которыми они владеют. Как говориться, "самая ближняя дорога к дому - та, которую хорошо знаешь". Выбор других продуктов, даже лучше подходящих для решения данной задачи, может быть ограничен необходимостью в поиске специалистов, что не так просто, обучению текущих сотрудниках новым технологиям, при этом все равно непонятны риски - пока сами на грабли не наступят, не поймут, как правильно делать и чем грозит выбор того или иного архитектурного значения.
3. Компании необходимо проверенное и рабочее решение, и у них есть деньги на него. Просто бизнес видел подобное решение, понимает что оно работает и требует "точно также" - потому что видит в этом отсутствие рисков.
4. Компания придерживается стратегии открытого П.О. или стратегии "напишем все сами". Не всякие компании могут это себе позволить, но такие примеры встречал неоднократно. Зачастую, связанно с боязнью быть завязанным на "чужие" технологии или премиальную поддержку "бесплатных" продуктов.
4.1. В компания не поощряется покупка программных продуктов.
4.2. В компании есть энтузиасты, которые любят что-то новое, особенно открытое. Вполне себе рабочий вариант, потому что ряд технологий развивается очень высокими темпами, и даже "хорошее проверенное решение" может уступать "условно-бесплатным" технологиям, если уметь их готовить.
5. Компанию каким-то чудом убедили, что несмотря на п.п. 1-4, есть продукт который полностью закрывает их потребности и даёт определенные преимущества, несмотря на необходимость платить за него и обучать специалистов. Обычно - самый тяжелый путь, связанный со множеством пилотных проектов, нагрузочного тестирования и так далее.

Список можно продолжать до бесконечности.

Да, и результат проекта зачастую не зависит от выбранного П.О. в соответствии с приведенными параметрами выбора.

С Уважением,
Георгий
5 окт 20, 09:47    [22208915]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Anonymous_20
Member

Откуда:
Сообщений: 16
Master_Detail

И не обращал внимание ранее на это свойство.. Всегда по-умолчанию использовал "Data driven". Спасибо, в этом и причина..
В чем смысл этого свойства на практике? Чтобы не использовать Update Strategy в маппинге?

Я обычно использую Update Strategy когда несколько приемников и с разными операциями или в рамках 1 могут меняться динамически операции. Если допустим у меня N приемников но у всех операция INSERT, то по мне проще Treat source rows as указать INSERT.
Когда ставите Data driven информатика воспринимает, что типом операции будет управлять Update Strategy.
5 окт 20, 17:51    [22209226]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Sintetik
Member

Откуда: SpB->Msk->...
Сообщений: 9313
Гулин Федор

хотя для НОВЫХ проектов я б с удовольтсвием был апач аирфлоу или другой фреймворк (питон)
если это ваш случай это классно можно только позавидовать
выбор технологий это большой плюс.

ETL инструменты для того и были разработаны, чтобы можно было забыть про кодинг на языках, по крайней мере такая цель была

не торопитесь завидовать, имею дело с амазоновскими сервисами DMS, Glue и цензурных слов у меня нет, на фоне информатики/датастейджа/даже бесплатного таленда они выглядят как студенческие наколеночные поделки, с аирфлоу и нифи пока бог миловал дело иметь, но на 90% уверен что там примерно той же консистенции субстанция.
6 окт 20, 02:20    [22209321]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
Anonymous_20
Master_Detail

И не обращал внимание ранее на это свойство.. Всегда по-умолчанию использовал "Data driven". Спасибо, в этом и причина..
В чем смысл этого свойства на практике? Чтобы не использовать Update Strategy в маппинге?

Я обычно использую Update Strategy когда несколько приемников и с разными операциями или в рамках 1 могут меняться динамически операции. Если допустим у меня N приемников но у всех операция INSERT, то по мне проще Treat source rows as указать INSERT.
Когда ставите Data driven информатика воспринимает, что типом операции будет управлять Update Strategy.

Благодарю за ответ!
6 окт 20, 12:19    [22209448]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
Доброго дня, господа.
Вопрос вроде простой, но пока не нашел для себя однозначного ответа. У меня есть некая таблица, в которой лежит флаг "Надо делать загрузку" (условно). Есть второй источник, где 100500 строк. Если флаг = Y, забираем данные из второго источника, если N, то даже не читаем. Это можно сделать в одном маппинге и сессии? Если просто лукапить этот флаг, то источник все-равно сначала прочитается, а потом только проверится флаг. А нельзя ли сразу как-то?
15 окт 20, 08:32    [22214552]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Anonymous_20
Member

Откуда:
Сообщений: 16
Master_Detail,
Самый простой вариант 2 сессии. 1 сессия проверят наличие удовлетворяющего условия (флага). Если условие удовлетворяет, то запускается 2 сессия. Условие ставим между сессиями, на стрелочке.

В 1 мапинге можно, но вопрос зачем? Вы не оставляете поле для маневров в будущем (Ох сколько видел таких решений под названием, «а после меня хоть потоп»). Можно, на источники проверять флаг, а данные грузить через SQL трансформацию.
19 окт 20, 16:18    [22216897]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Master_Detail
Member

Откуда:
Сообщений: 70
Anonymous_20
Master_Detail,
Самый простой вариант 2 сессии. 1 сессия проверят наличие удовлетворяющего условия (флага). Если условие удовлетворяет, то запускается 2 сессия. Условие ставим между сессиями, на стрелочке.

В 1 мапинге можно, но вопрос зачем? Вы не оставляете поле для маневров в будущем (Ох сколько видел таких решений под названием, «а после меня хоть потоп»). Можно, на источники проверять флаг, а данные грузить через SQL трансформацию.


Спасибо за ответ. В принципе так и думал, что 2 сессии - лучший вариант. «а после меня хоть потоп» - не наш вариант, надо, чтобы работало хорошо и поддерживать было просто :)
20 окт 20, 06:30    [22217175]     Ответить | Цитировать Сообщить модератору
 Re: Изучаю Informatica - вопросы для понимания  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3626
Sintetik
Гулин Федор

хотя для НОВЫХ проектов я б с удовольтсвием был апач аирфлоу или другой фреймворк (питон)
если это ваш случай это классно можно только позавидовать
выбор технологий это большой плюс.

ETL инструменты для того и были разработаны, чтобы можно было забыть про кодинг на языках, по крайней мере такая цель была

не торопитесь завидовать, имею дело с амазоновскими сервисами DMS, Glue и цензурных слов у меня нет, на фоне информатики/датастейджа/даже бесплатного таленда они выглядят как студенческие наколеночные поделки, с аирфлоу и нифи пока бог миловал дело иметь, но на 90% уверен что там примерно той же консистенции субстанция.


Как ELT инструмент информатика зело избыточна и сложна. Аирфлоу же очень удобен в этой парадигме, тем что вся обертка с шедулерами, воркфловами, переменными, логами и конекшенами есть, а лишнего ничего нет. Ну и питон очень хорош для кастомизации.

А ETL уже свое изжил, это легаси. Если у вас в амазоне snowflake или redshift, то трансформации на инфоматике туда пихать это зло.
22 окт 20, 18:45    [22219053]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / OLAP и DWH Ответить