Откат / удаление родителя, если ребенок в ноль в Pentaho - PullRequest
0 голосов
/ 29 мая 2018

Я использую Pentaho Kettle 8.0 и создал преобразование для переноса данных между базами данных postgresql.Это преобразование считывает информацию о заказах (родительский) и его элементах (дочерний) и вставляет или обновляет целевую базу данных.Но у меня проблемы с заказами, в которых нет элементов или что преобразование не может вставить элементы.Что мне нужно, так это то, что в каждом заказе должен быть хотя бы 1 товар.Я разработал преобразование для поиска данных заказа и вставки / обновления целевой таблицы, а затем поиска элементов.Если во время этих шагов возникла ошибка, как я могу откатить / удалить родителей?

Целевые таблицы выглядят следующим образом:

Orders - Order_ID, Value, Qty, Customer_ID
OrderItems- Item_ID, Value, Qty, Order_ID

1 Ответ

0 голосов
/ 04 июня 2018

Я предлагаю вам сделать это в два этапа.Сначала вы делаете именно то, что делаете: вставляете родителя и потомка, не заботясь об ошибках вставки.После завершения другого преобразования очистите любого родителя без потомка.

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

enter image description here

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

...