вставка данных talend с помощью клавиш автоматического увеличения

#etl #auto-increment #talend

#etl #автоматическое увеличение #talend

Вопрос:

Я использую бесплатную версию talend studio. У меня есть Excel с данными таблицы 2 листов «System» и «Part». Я хочу вставить данные в таблицы redshift system и part соответственно. Сначала я хочу проверить, присутствует ли данная система в таблице redshift, если да, извлеките ее системный идентификатор, если нет, добавьте его с новым системным идентификатором. То же самое касается данных детали, если деталь уже присутствует, получите идентификатор детали, если нет, добавьте запись с новым идентификатором.

Как только это будет сделано, идентификатор системы (существующий / новый) вместе с идентификатором детали (существующий / новый) должны быть добавлены в таблицу карты system_to_part, которая имеет столбцы system_id и part_id.

Таблицы в redshift создаются с идентификаторами в качестве автоматического увеличения, и при добавлении строк я вижу сгенерированные идентификаторы. Но как я могу взять идентификаторы в talend и вставить в новую таблицу (system_to_part)?

Комментарии:

1. Если вы намерены окончательно объединить данные в таблицу system_to_part из таблицы system и part, почему бы не использовать Redshift слияние для вставки / обновления данных, а не следовать тому, из чего / как извлекать идентификаторы Talend .

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

3. я имел в виду использовать Redshift варианты, которые у нас есть вместо Talend . Позвольте мне попытаться объяснить это здесь — 1. создайте временную таблицу, в которой будут храниться данные из таблицы system / part — вы можете использовать все столбцы или только столбцы идентификаторов. 2. Теперь используйте временную таблицу для вставки записей в таблицу system_to_part, которая не существует ( INSERT INTO system_to_part SELECT * FROM temp_system_to_part temp WHERE temp.primary_key NOT IN (SELECT DISTINCT primary_key FROM system_to_part) )