태그 보관물: ssis

ssis

SSIS 2008 패키지 구성이 무시 됨 외부 파일의로드를

명령 줄에 / ConfigFile something.dtsConfig를 지정할 때 2005와 비교하여 2008 년 패키지 구성이 변경되면서 패키지에 정의 된 변수는 구성 파일의 설정을 사용하는 대신 디자인 타임 값을 유지합니다.

외부 구성 파일을 전혀 사용하지 않는 방법을 잘 모르겠습니다. 설정된 디자인 타임 구성 만 외부 파일의로드를 덮어 쓰 겠다는 기사를 읽었습니다. 이것은 변수를 빈 문자열로 변경할 수 있으며 덮어 쓰게됩니까? 변수를 완전히 삭제할 수 없습니다! 정수는 어떻습니까?

패키지의 패키지 구성을 사용하여 끄기에 관한 기사를 보았습니다.

SSIS 패키지 편집기 또는 XML 편집기를 사용하여 패키지의 구성 파일 경로를 변경할 수 있으며 해당 파일의 설정을 “마지막”(외부 / ConfigFile 옵션에 관계없이) 사용합니다. 패키지 변경. Test.dtsConfig 및 Production.dtsConfig가있는 하나의 패키지가 필요하며 패키지를 변경하지 않고 앞뒤로 교환 할 수 있습니다.

지금 권장되는 방법은 무엇입니까?



답변

BIDS에 의해 실행될 때 패키지는 먼저 구성 파일에서 변수 값을 가져오고 구성 파일이 존재하지 않는 경우에만 경고를 발생시키고 패키지에서 값을 가져옵니다.

이제 명령 행의 상황이 약간 다릅니다. 다음과 같은 상황이 발생할 수 있습니다.

  1. 구성 파일을 선택하지 않고 cmd 행에서 패키지를 실행하십시오.

    dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx"
    • 원본 구성 파일 (이름을 Prod로 지정)이 패키지의 메타 데이터에 정의 된 동일한 경로에 존재하지 않으면 패키지 내부의 값이 사용되며 구성 파일이 누락되었다는 경고 만 표시됩니다.
    • 원래 구성 파일이 존재하고 유효한 경우 구성 파일의 값이 사용됩니다 (내부 값은 무시 됨).
  2. 구성 파일을 선택하지 않고 호출에 변수를 설정하여 cmd 행에서 패키지를 실행하십시오.

    dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx" /SET \Package.Variables[checkMe];"outside the package in cmd line"
    • 원래 구성 파일이 존재하지 않으면 값은 / SET 패키지 호출에서 가져옵니다.
    • 원래 구성 파일이 존재하면 구성 파일에서 값을 가져 와서 / SET도 무시됩니다 (위의 경우에만 사용됨).
  3. 새로운 설정 파일과 함께 cmd 줄에서 패키지를 실행하십시오 (DEV 대신 Prod라고 가정하십시오).

    dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx" /configFile "c:\ETL Config\TestPackage_config_Dev.dtsConfig"
    • 새 구성 파일 (Dev) 파일이 존재하고 이전 파일 (Prod)이 없으면 해당 파일의 값이 사용됩니다.
    • Dev 및 Prod 구성 파일이 모두 존재하는 경우 Prod의 값만 사용됩니다 (명령 행 호출에 지정된 경우에도 DEV는 무시 됨).
  4. 호출에서 새 구성 파일과 SET 문을 사용하여 cmd 행에서 패키지를 실행하십시오.

    dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx" /configFile "c:\ETL Config\TestPackage_config_Dev.dtsConfig" /SET \Package.Variables[checkMe];"outside the package in cmd line - DEV config"
    • 두 구성 파일이 모두 존재하면 Prod가 사용되며 다른 모든 파일은 무시되며 SET도 마찬가지입니다.
    • 구성 파일이 없으면 SET 값이 사용됩니다.

즉, 새 구성 파일을 사용하려면 이전 구성 파일의 이름을 바꾸거나 이전 파일을 / configFile로 호출해야합니다. 충분하지 않고 새 구성 파일을 재정의하려면 / SET 변수를 사용하십시오. 또는 구성 파일을 무시하고 배치 호출에서 / SET 문을 사용할 수 있습니다.

잘하면 그것은 당신의 가능성에 약간의 빛을 비출 것입니다.


답변