Integration Services에 대한 Azure 기능 팩(SSIS)

적용 대상: Azure Data Factory SSIS Integration Runtime SQL Server

Azure용 SSIS(SQL Server Integration Services) 기능 팩은 Azure 서비스에 연결하고, Azure 및 온-프레미스 데이터 원본 간에 데이터를 전송하고, Azure에 저장된 데이터를 처리하기 위해 SSIS에 이 페이지에 나열된 구성 요소를 제공하는 확장 프로그램입니다.

Azure용 SSIS 기능 팩 다운로드

다운로드 페이지도 필수 구성 요소에 대한 정보를 포함합니다. 서버에 Azure 기능 팩을 설치하기 전에 SQL Server가 설치되었는지 또는 서버에서 SSIS 카탈로그 데이터베이스인 SSISDB에 패키지를 배포할 때 기능 팩의 구성 요소를 사용할 수 없는지 확인합니다.

기능 팩의 구성 요소

TLS 1.2 사용

Azure 기능 팩에서 사용하는 TLS 버전은 시스템 .NET Framework 설정을 따릅니다. TLS 1.2를 사용하려면 다음 두 개의 레지스트리 키 아래에 데이터가 1SchUseStrongCrypto라는 REG_DWORD 값을 추가합니다.

  1. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319

Java에 대한 종속성

Java는 Azure Data Lake Store/유연한 파일 커넥터에 ORC/Parquet 파일 형식을 사용해야 합니다.
Java 빌드의 아키텍처(32/64비트)는 사용할 SSIS 런타임과 일치해야 합니다. 다음과 같은 Java 빌드가 테스트되었습니다.

Zulu OpenJDK 설치

  1. zip 패키지를 다운로드하여 추출합니다.
  2. 명령 프롬프트에서 sysdm.cpl을 실행합니다.
  3. 고급 탭에서 환경 변수를 선택합니다.
  4. 시스템 변수 섹션 아래에서 새로 만들기를 선택합니다.
  5. 변수 이름에 대해 JAVA_HOME을 입력합니다.
  6. 디렉터리 찾아보기를 선택하여 추출된 폴더로 이동하고, jre 하위 폴더를 선택합니다. 그런 다음, 확인을 선택하면 변수 값이 자동으로 채워집니다.
  7. 확인을 선택하여 새 시스템 변수 대화 상자를 닫습니다.
  8. 확인을 선택하여 환경 변수 대화 상자를 닫습니다.
  9. 확인을 선택하여 시스템 속성 대화 상자를 닫습니다.

Parquet 형식을 사용하고 "Java를 호출할 때 오류가 발생했습니다. 메시지: java.lang.OutOfMemoryError:Java heap space"라는 오류가 발생하는 경우 환경 변수 _JAVA_OPTIONS 를 추가하여 JVM의 최소/최대 힙 크기를 조정할 수 있습니다.

jvm heap

예: 변수 _JAVA_OPTIONS-Xms256m -Xmx16g 값으로 설정합니다. 플래그 Xms는 JVM(Java Virtual Machine)의 초기 메모리 할당 풀을 지정하고, Xmx는 최대 메모리 할당 풀을 지정합니다. 즉, JVM은 Xms의 메모리 양으로 시작하고 최대 Xmx의 메모리 양을 사용할 수 있음을 의미합니다. 기본값은 최소 64MB, 최대 1G입니다.

Azure-SSIS Integration Runtime에서 Zulu OpenJDK 설정

이 작업은 Azure-SSIS Integration Runtime에 대한 사용자 지정 설정 인터페이스를 통해 수행해야 합니다. zulu8.33.0.1-jdk8.0.192-win_x64.zip을 사용한다고 가정합니다. Blob 컨테이너는 다음과 같이 구성할 수 있습니다.

main.cmd
install_openjdk.ps1
zulu8.33.0.1-jdk8.0.192-win_x64.zip

진입 점으로 main.cmd 는 PowerShell 스크립트 install_openjdk.ps1의 실행을 트리거하여 zulu8.33.0.1-jdk8.0.192-win_x64.zip을 추출하고 이에 따라 JAVA_HOME을 설정합니다.

main.cmd

powershell.exe -file install_openjdk.ps1

Parquet 형식을 사용하고 "Java를 호출할 때 오류가 발생했습니다. 메시지: java.lang.OutOfMemoryError:Java heap space"라는 오류가 발생하는 경우 main.cmd 명령을 추가하여 JVM의 최소/최대 힙 크기를 조정할 수 있습니다. 예제:

setx /M _JAVA_OPTIONS "-Xms256m -Xmx16g"

플래그 Xms는 JVM(Java Virtual Machine)의 초기 메모리 할당 풀을 지정하고, Xmx는 최대 메모리 할당 풀을 지정합니다. 즉, JVM은 Xms의 메모리 양으로 시작하고 최대 Xmx의 메모리 양을 사용할 수 있음을 의미합니다. 기본값은 최소 64MB, 최대 1G입니다.

install_openjdk.ps1

Expand-Archive zulu8.33.0.1-jdk8.0.192-win_x64.zip -DestinationPath C:\
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\zulu8.33.0.1-jdk8.0.192-win_x64\jre", "Machine")

Oracle Java SE Runtime Environment 설치

  1. exe 설치 관리자를 다운로드하여 실행합니다.
  2. 설치 관리자 지침에 따라 설치를 완료합니다.

시나리오: 빅 데이터 처리

Azure 커넥터를 사용하여 다음과 같은 빅 데이터 처리 작업을 완료합니다.

  1. Azure Blob 업로드 태스크를 사용하여 Azure Blob Storage에 입력 데이터를 업로드합니다.

  2. Azure HDInsight 클러스터 만들기 태스크를 사용하여 Azure HDInsight 클러스터를 만듭니다. 자체 클러스터를 사용하려는 경우 이 단계는 선택 사항입니다.

  3. Azure HDInsight Hive 태스크 또는 Azure HDInsight Pig 태스크를 사용하여 Azure HDInsight 클러스터에서 Pig 또는 Hive 작업을 호출합니다.

  4. 2단계에서 주문형 HDInsight 클러스터를 만든 경우 Azure HDInsight 클러스터 삭제 태스크를 사용하여 사용한 HDInsight 클러스터를 삭제합니다.

  5. Azure HDInsight Blob 다운로드 태스크를 사용하여 Azure Blob Storage에서 Pig/Hive 출력 데이터를 다운로드합니다.

SSIS Azure 커넥터 빅 데이터 시나리오를 보여 주는 스크린샷

시나리오: 클라우드의 데이터 관리

SSIS 패키지의 Azure Blob 대상을 사용하여 Azure Blob Storage에 출력 데이터를 쓰거나 Azure Blob 원본을 사용하여 Azure Blob Storage에서 데이터를 읽습니다.

OLE DB 원본에서 Azure Blob 대상으로의 데이터 흐름을 보여 주는 스크린샷

Azure Blob 원본에서 OLE DB 대상으로의 데이터 흐름을 보여 주는 스크린샷

Azure Blob 열거자에서 Foreach 루프 컨테이너를 사용하여 다중 blob 파일의 데이터를 처리합니다.

제어 흐름 Foreach 루프 컨테이너를 보여 주는 스크린샷

릴리스 정보

버전 1.21.0

향상 된 기능

  1. log4j를 버전 1.2.17에서 2.17.1로 업그레이드했습니다.

버전 1.20.0

향상 된 기능

  1. 대상 .NET Framework 버전을 4.6에서 4.7.2로 업데이트했습니다.
  2. “Azure SQL DW 업로드 작업” 이름을 “Azure Synapse Analytics 작업”으로 바꾸었습니다.

버그 수정

  1. Azure Blob Storage에 액세스할 때 SSIS를 실행하는 컴퓨터가 en-US가 아닌 로캘인 경우 패키지 실행에 실패하고 “유효한 DateTime 값으로 인식되지 않는 문자열”이라는 오류 메시지가 표시됩니다.
  2. Azure Storage 연결 관리자의 경우 Data Factory 관리 ID를 사용하여 인증하는 경우에도 비밀이 필요하고 사용되지 않습니다.

버전 1.19.0

개선 사항

  1. Azure Storage 연결 관리자에 대한 공유 액세스 서명 인증 지원이 추가되었습니다.

버전 1.18.0

개선 사항

  1. 유연한 파일 작업을 위한 다음 세 가지 개선 사항이 있습니다. (1) 복사/삭제 작업에 대한 와일드카드 지원이 추가되었습니다. (2) 사용자가 삭제 작업을 위한 재귀 검색을 사용하거나 사용하지 않도록 설정할 수 있습니다. (3) 원본 파일 이름을 유지하기 위해 복사 작업의 대상 파일 이름을 비워 둘 수 있습니다.

버전 1.17.0

SQL Server 2019에 대해서만 릴리스된 핫픽스 버전입니다.

버그 수정

  1. Visual Studio 2019에서 SQL Server 2019를 대상으로 실행하는 경우 유연한 파일 작업/원본/대상이 실패하고 다음 오류 메시지가 표시될 수 있습니다. Attempted to access an element as a type incompatible with the array.
  2. Visual Studio 2019에서 SQL Server 2019를 대상으로 실행하는 경우 ORC/Parquet 형식을 사용한 유연한 파일 원본/대상이 실패하고 다음 오류 메시지가 표시될 수 있습니다. Microsoft.DataTransfer.Common.Shared.HybridDeliveryException: An unknown error occurred. JNI.JavaExceptionCheckException.

버전 1.16.0

버그 수정

  1. 경우에 따라 패키지 실행 보고서에서 “오류: 파일이나 어셈블리 ‘Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed’ 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다.”를 보고합니다.

버전 1.15.0

개선 사항

  1. Flexible File 태스크에 폴더/파일 삭제 작업 추가
  2. Flexible File 원본에서 외부/출력 데이터 형식 변환 함수 추가

버그 수정

  1. 경우에 따라 "배열과 호환되지 않는 형식으로 요소를 액세스하려고 했습니다"라는 오류 메시지와 함께 Data Lake Storage Gen2에 대한 연결 테스트가 오작동합니다.
  2. Azure Storage 에뮬레이터에 대한 지원 재개