Informatica - удаление дубликатов - PullRequest
2 голосов
/ 30 января 2012

У меня плоский файл с 10 записями, из которых 5 записей являются повторяющимися (столбец уникальных ключей: Customer_Id и source_system).Этот плоский файл должен быть загружен в таблицу Oracle, и это первая загрузка.

Как я могу устранить в ней дубликаты?

Ответы [ 4 ]

4 голосов
/ 30 января 2012

Есть несколько способов справиться с этим:

  1. Загрузить данные во временную таблицу, а затем просто выбрать отдельные записи
  2. Используйте преобразователь сортировщика или агрегатора, а затем выберите отдельный параметр (если я правильно помню, на вкладке свойств)
  3. Используйте динамический поиск, который будет вставлять записи в кеш, только если они еще не были вставлены.
  4. Используйте переменный порт в преобразовании выражений, и с помощью фильтра мы можем удалить дубликаты записей, даже если это реляционная таблица или плоские файлы. Поскольку динамический поиск дорог, этот способ предпочтителен.
1 голос
/ 24 марта 2014

SRC -> SQ -> SRT -> EXP -> RTR -> TGT

Ваш вход из источника

Col1 Col2

1A

1 B

2 C

2 D

1 E

1 F

3 G

4 H

5 I

6 J

4 K

3 L

В сортировщике сортировать данные поcol1 и после сортировщика данные выглядят так:

Col1 Col2

1 A

1 B

1 E

1 F

2 C

2 D

3 G

3 L

4 K

4 H

5 I

6 J

В exp у вас есть два входных порта

in_col1

in_col2

создание переменных портов и выводпорты в указанном ниже порядке:

v_FLAG = IIF (v_col1 = in_col1,2,1)

v_col1 = in_col1

out_FLAG = v_FLAG

Затем изданные выражений выглядят так:

Col1 Col2 FLAG

1, A, 1

1, B, 2

1, E, 2

1, F, 2

2, C, 1

2, D, 2

3, G, 1

3, L, 2

4, K, 1

4, H, 2

5, I, 1

6, J, 1

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

unique = (FLAG = 1)

duplicate = (FLAG = 2)

подключите две группы кдве цели. SRC -> SQ -> SRT -> EXP -> RTR -> TGT

Ваш вход из источника

Col1 Col2

1A

1 B

2 C

2 D

1 E

1 F

3 G

4 H

5 I

6 J

4 K

3 L

В сортировщике сортировать данные поcol1 и после сортировщика данные выглядят так:

Col1 Col2

1 A

1 B

1 E

1 F

2 C

2 D

3 G

3 L

4 K

4 H

5 I

6 J

В exp у вас есть два входных порта

in_col1

in_col2

создавать переменные порты и выходные порты в порядке, указанном ниже

v_FLAG = IIF (v_col1 = in_col1,2,1)

v_col1 = in_col1

out_FLAG = v_FLAG

Тогда выходные данные выражений выглядят так:

Col1 Col2 FLAG

1, A, 1

1, B, 2

1, E, 2

1, F, 2

2, C, 1

2, D, 2

3, G, 1

3, L, 2

4, K, 1

4, H, 2

5, I, 1

6, J, 1

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

unique =(FLAG = 1)

duplicate = (FLAG = 2)

соединить две группы с двумя целями.

1 голос
/ 11 мая 2013

Вы можете использовать сортировщик и проверить загрузку отдельных строк.

1 голос
/ 14 февраля 2012

Вы всегда можете использовать преобразователь Aggregator и группировать по всем данным, для которых вы хотите, чтобы они были различимы.Таким образом, если вы сгруппируете по всем столбцам, то в конце появятся только те, кто различен.

...