2017-02-02 3 views
1

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

я должен был бы правильный Qty из remain_qty, Assigned_qty и in_progress_qty. (как на картинке). но в настоящее время я не вижу этого результата. Было бы здорово это получить. Я сделал процесс расчета после того, как поиск получил список данных инвентаризации.

Затем проверьте фактические данные TEMP в другой поиск. когда он не существует в temp по элементу, тогда вставьте запись, иначе просто простое обновление. С помощью этого метода я бы сделал процесс расчета. Я думаю, что в следующей системе записей следует повторно запросить таблицу temp и запросить фактические данные. Я имею в виду с уменьшенным количеством. запись по записи. Но теперь это выглядит после этого двух поисков. Я получил тот же результат для каждой строки. это означает, что для меня временная таблица не повторно запрашивает внутри потока данных. Должен ли я использовать другой поток данных для расчета? Или я могу использовать временную таблицу внутри этого потока данных, которая может обновляться по записям? Потому что я повторно запрошу фактическое количество инвентаря по записям.
.. Спасибо за чтение!

+0

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

+0

Извините, вы правы. Я обновил свои вопросы. Спасибо за Вашу поддержку! – Messersmith

ответ

0

Click here for picture! Привет, ребята, я нашел решение и внесли изменения на процессе ETL .. Я отделил задачу потока данных и использовал хранимую процедуры для повторного расчета данных на временной таблице , Затем следующий поток данных может запрашивать обновленные данные из temp и заполнять таблицу фактов с правильным количеством и ценой. В этот раз я изучил потоки управления и потоков данных. Теперь для меня ясно, и приложение работает нормально. Спасибо за поддержку!

0

Я получил недовольство, но из того, что я понял, вы хотите повторно запросить с помощью преобразования Lookup, это правильно? Если это так, в редакторе трансформации поиска внутри вкладки «Общие» есть опция для Режим кэширования, по умолчанию его помечен как Полный кэш.

  1. Full Cache означает, что, прежде чем делать что-либо внутри потока Задача данных, база данных запрашивается один раз и сохраняется в памяти. Поэтому, когда вы используете , попытайтесь использовать преобразование Lookup внутри задачи потока данных, то использовать только данные, сохраненные в памяти.
  2. Второй вариант Частичное Cache, запрашивает некоторые данные, прежде чем делать преобразование, и если его не нашли там, запрашивает базу данных снова, чтобы найти его.
  3. наконец, не является Нет Cache Mode, где вы запрос к базе данных каждый раз, когда строка обрабатывается

Вы можете найти более подробную информацию in this link.

Надеется, что это помогает

+0

Благодарим вас за решение. Я пробовал, но не решает проблемы. Не могли бы вы взглянуть на часть моего проекта, которая может иметь проблемы с потоком данных? см. рис. 3 выше. – Messersmith

+0

Итак, я нашел следующую статью: [link] (http://dbadiaries.com/t-sql-determine-the-difference-in-values-between-columns-in-different-rows), что вы думаете , является ли это единственным возможным способом расчета количества остатков? с CTE? :) возможно, я мог бы использовать переменные массивы, если это возможно. Я имею в виду больше предметов с его фактическим количеством. – Messersmith

+0

Я не вижу проблемы с логикой, которая у вас есть на изображении. Хотя я не эксперт в SSIS, мне это кажется прекрасным. Может быть, вы используете какую-то переменную пакета, сохраняете и используете новое значение внутри задачи потока данных? переменные не обновляются в конце задачи потока данных. Это может быть одной из причин. Вы также можете отделить их в 2 потоках данных, как вы сказали, и выяснить, в чем проблема. – Mokz

Смежные вопросы