Как изменить данные в столбце в SAS Data Integration?

У меня есть существующее решение ETL со встроенной интеграцией данных SAS, где один из столбцов изначально настроен на все нулевые значения. Я хочу заполнить этот столбец фактическими данными. Исходный столбец в этой таблице был настроен на получение числовых значений в определенном формате и в определенном формате. После того, как я изменил код (это самая простая часть), я заметил, что столбец не принимает символьные значения (я не получил ошибку, я просто заметил, что столбец по-прежнему имеет все значения NULL). Кто-нибудь может помочь?


person Eyal Marom    schedule 21.06.2020    source источник
comment
Почему вы определили его как числовой, если хотели загрузить в него строки символов? Измените шаг, создающий таблицу, тогда будет работать шаг, загружающий в нее данные.   -  person Tom    schedule 21.06.2020
comment
Таблица была создана давно. Не могли бы вы указать мне, как это делается? Я знаю, как изменить код на то, что я хочу. Как изменить формат столбца в таблице?   -  person Eyal Marom    schedule 21.06.2020
comment
Итак, вы хотите закодировать свои строки в числа? Или создать новую таблицу, в которой эта переменная определена как символ? Вы не можете просто изменить тип переменной, вам нужно создать новую переменную. Объясните подробнее весь процесс, чтобы получить лучший ответ.   -  person Tom    schedule 22.06.2020


Ответы (1)


Итак, у вас есть таблица, определенная в студии интеграции данных (1) и созданная давным-давно путем выполнения задания (2) с числовым столбцом. Назовем эту таблицу THE_TABLE, поле the_field и задание The_Job, загружающее данные в THE_TABLE.

Вы должны понимать принципиальную разницу

  1. определение THE_TABLE в студии DI, которая создает описание таблицы в метаданных
  2. создание THE_TABLE путем запуска The_Job, который создает файл в папке с данными

Если The_Job действительно каждый раз создает THE_TABLE с нуля (что характерно для заданий ETL), то достаточно изменить THE_TABLE и The_Job в DI studio. Ваши изменения изменят только метаданные, но при следующем запуске The_job будет создан THE_TABLE с правильной структурой.

Однако, если The_Job обновляет THE_TABLE или дополняет его, ваши изменения не изменят структуру THE_TABLE, и ваша работа не будет соответствовать структуре файла THE_TABLE, как будто он все еще существует в папке, поэтому вы должны преобразовать THE_TABLE перед запуском The_Job .

Это можно сделать с помощью простой программы, например

data THE_TABLE;
   set THE_TABLE (drop=the_field);            /* forget about the numeric field */
   attrib the_field length=$200 format=$200.; /* and create the character field */
run;

Правильный оператор attrib вполне может быть где-то в коде, сгенерированном для The_Job.

Имейте в виду, что в типичной установке со средой разработки, тестирования и производства вам понадобится эта программа один раз в каждой среде.

person Dirk Horsten    schedule 22.06.2020