Как построить условный импорт плоских файлов со столбцами фиксированной длины - PullRequest
0 голосов
/ 04 мая 2020

Я использую Teiid 9.3.7 с Wildfly 10 из-за совместимости версий Teiid Designer. Я пытаюсь создать представление из плоского файла. В файле есть два разных типа записей. Каждый тип записи имеет ключевой атрибут, который мне нужен для объединения с другими таблицами, но положение ключевого атрибута отличается для каждого типа записей. Первое число (4) скажет мне, какой тип записи находится в этой строке. Я импортировал источник данных и проанализировал каждую строку таким же образом, поэтому я могу поймать ключевой атрибут из обоих типов записей, но как разные столбцы. Преобразование представления выглядит следующим образом:

SELECT A.TYPE, A.column_1, A.ID, A.column_2, A.KEY_ATTRIB_1, A.column_3, A.KEY_ATTRIB_2, A.column_4 FROM (EXE C CorrSourceModel.getTextFiles ('my_input.txt')) AS f, TEXTTABLE (f.file COLUMNS TYPE string WIDTH 4, column_1 string WIDTH 32, ID string WIDTH 9, column_2 string WIDTH 2466, KEY_ATTRIB_1 string WIDTH 25, column_3 string WIDTH 1445, KEY_ATTRIB_2 string WIDTH 13, column_4 string WIDTH 2854) AS A

Таким образом, в представлении я могу видеть оба ключевых атрибута в их столбце нормально. Последняя схема виртуального представления, которую мне нужно построить, - это исходная строка строки, ключевой атрибут этой строки и дополнительные атрибуты, которые я присоединяю из другого источника данных с этим ключевым атрибутом. Итак, для этого мне нужно протестировать первый атрибут (4-di git number), чтобы я знал, что столбец ведьмы является моим ключевым атрибутом для строки. Это похоже на то, что мне нужен оператор IF ... ELSE.

Если есть способ выполнить sh это? Спасибо.

1 Ответ

0 голосов
/ 06 мая 2020

См. SELECTOR в этом документе [1], который должен позволить вам выбирать строки. Вы можете иметь две конструкции TEXTTABLE, по одной для каждого типа SELECTOR, а затем присоединить их, если необходимо, для получения комбинированного результата.

[1] http://teiid.github.io/teiid-documents/master/content/reference/r_texttable.html

...