Я разработчик бизнес-аналитики. Я разрабатываю / поддерживаю решение Microsoft BI в нашей компании (SSIS, SSAS и др. c.). Недавно я обновил свою Visual Studio до 2019 Enterprise (до этого я был на 2015 Enterprise). Расширение Integration Services версии 3.4. (также проверено 3.2). С VS2015 все было хорошо ..
Часть нашего хранилища данных - это данные, поступающие из базы данных PostgreSQL. Я подключаюсь к этому, используя официальный драйвер Postgres ODB C (32Bit, Unicode). Я пробовал версии 10.01 (старая, работала с VS15 без проблем) и 12.01 (текущая).
Проблема заключается в следующем: я открыл пакет, с которым у меня есть проблемы. Он предупреждает меня, что источник данных PSQL -ODB C нуждается в новых метаданных (тем не менее, там ничего не изменилось ..). Я могу запустить (без изменений) пакет без каких-либо проблем! Затем я дважды щелкаю Источник. Появится диалоговое окно, если я хочу исправить метаданные источника в соответствии с БД, на которые он указывает. Тогда предупреждение исчезает. Но если я запустил пакет сейчас, он сразу не сможет сказать, что только что обновленному источнику нужны новые метаданные.
Я отследил проблему до минимального примера. Если я получаю данные из столбца timestamp в PSQL -ODB C -Dasasource, который я всегда получаю, сразу после выполнения пакета, VS_NEEDSNEWMETADATA-Error в Visual Studio (SSIS), и пакет не запускается. На Источнике нет желтого восклицательного знака, как обычно. Все кажется хорошо на время проектирования. Я даже могу просмотреть вывод источника в его свойствах. Если я выберу другой столбец вместо столбца timestamp, то это не проблема. Если я снова выберу столбец timestamp, он снова выдаст ошибку во время выполнения. Я также пробовал разные Postgres серверы с разными версиями как Source и разными ODB C -драйверами.
Если я устанавливаю ValidateExternalMetadat в False на источнике, все работает нормально, но это не может быть решением как он работал безупречно в прошлом.
Похоже, что SSIS-пакеты, созданные с помощью Visual Studio 2019, не могут извлечь столбцы меток времени из PSQL -ODB C -Sources, если включен ValidateExternalMetadata. Я, чокнутый!
Кто-нибудь имел эту проблему и нашел решение?
Привет
Редактировать : Дальнейшее расследование: Похоже, что VS2019 переводит PostgreSQL Отметка времени теперь для dbTimeStamp2 вместо dbTimeStamp (как в 2015 году) в столбцах вывода. Но метаданные, также хранящиеся в пакете - Xml, говорят, что это столбцы dbTimeStamp. Это несоответствие, по-видимому, является основной проблемой, почему пакет сообщает, что метаданные должны быть обновлены!?