Как вставить родительскую и дочернюю запись в talend? - PullRequest
0 голосов
/ 05 июня 2018

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

Ответы [ 3 ]

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

Вы можете разделить это на две работы и получить основную работу для оркестровки.Вот что я предлагаю.Создайте основную работу, которая имеет два tRunJobs (один, который загружает родительский, а другой - дочерний).Родительское задание заполнит родительскую таблицу входящими данными, но также передаст данные основному заданию из компонента tBufferOutput.Эти данные будут переданы на следующую работу (которая загружает дочернюю таблицу).Надеюсь, это поможет.

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

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

  • , если обе таблицы имеют идентификатор автоинкремента : после вставки в родительский элементиспользуйте столбец, такой как studentID (из входных данных), в качестве ключа поиска для дочерней вставки
    • 1-й подработник имеет tuniq для получения повторяющихся общих данных один раз и tfilter (или tmap) для получения только нужных столбцов
    • 2-е подчинение очевидно (поиск с ключом, который существует в источнике, если не виден ниже)

обзор

  • если ни один столбец в источнике не может быть идентификатором : вот несколько идей ...

использование концепции загрузки ETL в файл tmp с локально сгенерированным идентификатором

Numeric.sequence("sequence1",1,1) 

или получите lastID из базы данных с tMysqlLastInsertId в качестве поиска во 2-й карте tMap

Очевидно, что если ваш сценарий отличается, пожалуйста, отправьте подробности

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...