Обновить метаданные схемы назначения в службах Integration Services
Я работал над огромным ETL-проектом с более чем 150 таблицами, и во время разработки мне пришлось существенно изменить имена столбцов назначения и типы данных для пары таблиц.
Моя проблема в том, что я не могу заставить SSIS увидеть новую схему для таблиц, которые я изменил. Итак, я хотел бы знать, как получить SSIS для обновления этой схемы? Я нахожу несколько нелепым, что нет никакого способа сказать SSIS обновить метаданные из схемы базы данных, особенно для миграции базы данных.
Воссоздание проекта с нуля не подлежит сомнению, потому что я уже потратил на это несколько часов. Также изменение вручную 400+ столбцов, которые я изменил, также не вариант.
3 ответа
Следуя моему предыдущему авто-ответу, я наконец нашел то, что мешало обновлению метаданных.
Когда я первоначально изменил свою базу данных, я фактически выполнил другой скрипт, который делал DROP
на столе, а затем CREATE TABLE
воссоздать стол с нуля. Там SSIS никогда не был в состоянии обнаружить изменения, и я должен был сделать все вещи в моем другом ответе.
Позже сегодня я должен был сделать небольшую модификацию, и на этот раз я выбрал ALTER TABLE
, Как ни странно, на этот раз SSIS обнаружил все изменения, даже уведомив меня об обновлении столбцов в расширенном редакторе, который работал нормально.
Таким образом, в основном все эти проблемы были вызваны моим плохим знанием DBA и его лучших практик.
Как насчет использования Advanced Editor
и нажав Refresh
кнопка слева внизу?
Я нашел способ исправить это, но это было немного сложно.
Даже при том, что я полностью удалял ссылки на таблицу из своих пакетов, я всегда получал старые метаданные.
У меня до сих пор нет четкого решения, но вот что я сделал, чтобы исправить это:
- Удалены любые ссылки на соответствующие таблицы источника и назначения.
- Удалил папку obj и bin из папки проекта
- Сохранено, закрыто, а затем вновь открыто проект
- Создан новый поток данных с нуля и обновленные метаданные наконец-то появились
Не знаю, где была кэширована эта информация, но я подозреваю, что в папке obj хранится кэшированная копия ваших пакетов или что Visual Studio хранит метаданные в памяти, которая освобождается при закрытии. В любом случае, следуя этим шагам, это нужно исправить.