SQL Server Fabric Data Warehouse로의 마이그레이션 방법

적용 대상: Microsoft Fabric의✅ Warehouse

이 글에서는 SQL Server에서 Microsoft Fabric Data Warehouse로 데이터 웨어하우스를 마이그레이션하는 방법을 설명합니다.

팁 (조언)

전략과 계획에 대한 자세한 내용은 이주 계획: SQL Server에서 Fabric Data Warehouse을 참조하세요.

SQL Server로부터 자동화된 마이그레이션을 위해 Fabric Migration Assistant for Data Warehouse를 활용하세요. 이 글의 나머지 부분에서는 더 많은 수동 마이그레이션 단계를 설명합니다.

다음 표는 데이터 스키마(DDL), 데이터베이스 코드(DML), 데이터 마이그레이션 방법을 요약합니다. 각 옵션은 이 글의 후반부에서 설명됩니다.

Option Method 용도 기술 또는 선호 Scenario
1 데이터 팩토리 스키마 변환
데이터 추출
데이터 수집
데이터 팩토리 파이프라인 단순화된 스키마와 데이터 마이그레이션. 차원 테이블에 권장됩니다.
2 파티션이 있는 데이터 팩토리 스키마 변환
데이터 추출
데이터 수집
데이터 팩토리 파이프라인 대규모 팩트 테이블을 위한 병렬화된 마이그레이션.
3 스키마 우선 마이그레이션 스키마 변환 데이터 팩토리 파이프라인 먼저 스키마를 마이그레이션한 후, 처리량을 더 잘 제어하기 위해 별도로 데이터를 추출하고 인징하세요.
4 SQL 마이그레이션 스크립트 스키마 변환
데이터 추출
코드 평가
T-SQL 마이그레이션 작업을 세분적으로 제어하기 위해 IDE와 스크립트를 사용하세요.
5 SQL 데이터베이스 프로젝트 스키마 변환
코드 평가
SQL 프로젝트 소스 관리, 평가, 배포를 위해 데이터베이스 프로젝트를 활용하세요.
6 dbt 스키마 변환
데이터베이스 코드 변환
dbt 기존 DBT 프로젝트를 어댑터와 대상 설정을 변경하여 재사용하세요.

초기 마이그레이션을 위한 워크로드 선택

Fabric Data Warehouse SQL Server 마이그레이션 프로젝트를 어디서 시작할지 결정할 때, 다음과 같은 작업 영역을 선택하세요:

  • 새로운 환경의 이점을 신속하게 제공함으로써 Fabric Data Warehouse로의 이주 가능성을 입증하세요. 작고 단순하게 시작해서 여러 번의 작은 이동을 준비하세요.
  • 기술 직원들이 다른 워크로드를 이전하는 데 사용하는 프로세스와 도구에 대해 관련 경험을 쌓을 시간을 주세요.
  • SQL Server 환경, 도구, 프로세스에 특화된 추가 마이그레이션용 템플릿을 만드세요.

팁 (조언)

마이그레이션이 필요한 객체들의 목록을 만들고, 마이그레이션 과정을 처음부터 끝까지 문서화하여 다른 데이터베이스나 워크로드에서도 반복할 수 있도록 하세요.

초기 마이그레이션에서 데이터 양은 Fabric Data Warehouse의 기능과 이점을 입증할 만큼 충분히 크지만, 빠르게 가치를 입증할 수 있을 만큼 적어야 합니다. 1-10TB 범위의 크기가 일반적입니다.

Fabric Data Factory로 마이그레이션하기

Fabric Data Factory는 테이블 DDL 변환과 SQL Server 데이터 마이그레이션이 가능한 로우코드 인터페이스를 제공합니다.

Fabric Data Factory는 다음 작업을 수행할 수 있습니다.

  • 스키마(DDL)를 Fabric Data Warehouse 문법으로 변환하세요.
  • Fabric Data Warehouse에서 스키마 객체를 만드세요.
  • 데이터를 Fabric Data Warehouse로 이전하세요.

옵션 1. Copy Assistant를 이용한 스키마 및 데이터 마이그레이션

이 방법은 데이터 팩토리 복사 어시스턴트를 사용해 소스 SQL Server 데이터베이스에 연결하고, 테이블 DDL을 Fabric 문법으로 변환하며, 데이터를 Fabric Data Warehouse로 복사합니다. 하나 이상의 소스 테이블을 선택할 수 있습니다. 생성된 파이프라인은 ForEach 활동을 사용하여 선택한 테이블을 병렬로 복사합니다.

복사 작업을 구성할 때:

  • 소스 연결은 SQL Server 커넥터를 사용하세요.
  • 병렬 복사본을 소스 데이터베이스와 네트워크가 유지할 수 있는 수준으로 제한하세요.
  • 추출 시 소스 CPU, I/O, 트랜잭션 로그 사용, 생산 워크로드 지연 시간을 모니터링하세요.

Copy Assistant를 사용하면 DDL을 변환하고 선택한 테이블을 한 번에 인징하는 간단한 인터페이스가 있습니다. 이 방법은 차원 테이블과 작은 작업 부하에 적합합니다.

큰 테이블의 경우, 읽기와 쓰기 병렬성을 높이기 위해 분할 조정을 사용하세요.

옵션 2. 파티션을 이용한 데이터 마이그레이션

큰 팩트 테이블의 경우, 각 테이블에 대해 복사 작업를 사용하고 소스 파티셔닝을 설정하세요. 가능한 경우 물리적 파티션을 사용하거나, 적절한 숫자 또는 날짜 열과 그 최소값과 최대 값을 지정하여 동적 범위 분할을 구성할 수 있습니다.

다이내믹 레인지 파티션 옵션이 있는 파이프라인 소스 스크린샷입니다.

파티션을 사용할 때:

  • 행을 고르게 분배하는 파티션 열을 선택하세요.
  • SQL Server가 처리할 수 있는 것보다 더 많은 동시 소스 쿼리를 생성하지 않으면서도 운영 워크로드에 영향을 주지 않도록 하세요.
  • 파티션 범위와 병렬 복사 설정을 대표적인 워크로드와 비교해 테스트하세요.
  • 출발지와 목적지를 모니터링하면서 병렬성을 점진적으로 늘려가세요.

병렬 추출이 처리량을 향상시킬 때는 대규모 팩트 테이블에 데이터 팩토리 파티셔닝을 사용하세요. 배치 수와 파티션 범위를 소스 데이터베이스 자원과 네트워크 용량에 맞게 조정하세요.

옵션 3. 스키마 우선 마이그레이션

더 큰 데이터베이스의 경우, 스키마 마이그레이션과 데이터 마이그레이션을 분리하세요:

  1. Fabric Data Warehouse에서 테이블 스키마를 변환하고 생성하세요.
  2. 원본 데이터를 Azure Data Lake Storage (ADLS) Gen2에 추출하세요.
  3. 단계 데이터를 Fabric Data Warehouse에 인징하기 위해 Data Factory 또는 COPY INTO 명령을 사용하세요.

이 단계를 분리하면 추출과 섭취를 독립적으로 조정할 수 있습니다.

데이터 팩토리를 이용한 스키마 마이그레이션

Fabric 파이프라인을 사용하여 행을 복사하지 않고 SQL Server에서 Fabric Data Warehouse로 테이블 스키마를 마이그레이션할 수 있습니다.

Fabric Data Factory에서 캡처한 스크린샷으로, DDL을 마이그레이션하는 ForEach 활동과 연결된 조회 활동이 보여집니다.

파이프라인 매개변수 구성

마이그레이션할 스키마를 지정하는 매개변수를 SchemaName 만드세요. 기본값으로 사용 dbo 하거나, 쉼표로 구분된 리스트를 입력하세요.'dbo','sales'

Data Factory에서 SchemaName 파이프라인 매개변수를 보여주는 스크린샷입니다.

조회 활동 구성

Lookup 활동을 생성하고, 소스 SQL Server 데이터베이스와의 연결을 설정하세요. 설정 탭에서 다음을 수행합니다.

  • 데이터 저장소 유형을 외부로 설정합니다.
  • 소스 SQL Server 연결을 선택하세요.
  • 쿼리 사용을 쿼리로 설정하세요.
  • 소스 스키마와 테이블 이름을 반환하는 동적 쿼리를 추가하세요.

쿼리를 생성하기 위해 다음 식을 사용하세요:

@concat('
SELECT s.name AS SchemaName,
t.name AS TableName
FROM sys.tables AS t
INNER JOIN sys.schemas AS s
ON t.type = ''U''
AND s.schema_id = t.schema_id
AND s.name in (',coalesce(pipeline().parameters.SchemaName, 'dbo'),')
')

Data Factory에서 Lookup 활동에서 동적 쿼리가 보이는 스크린샷입니다.

ForEach 활동을 구성

ForEach 활동의 설정 탭에서:

  • 반복이 동시에 실행되도록 하려면 Sequential을 비활성화하세요.
  • 배치 수를 소스 데이터베이스가 유지할 수 있는 값으로 설정하세요. 보수적인 값으로 시작해서 테스트해 보세요.
  • 항목을/를 @activity('Get List of Source Objects').output.value로 설정하세요.

ForEach 활동 설정 스크린샷입니다.

복사 작업 구성

ForEach 활동 내에서 복사 작업를 추가하세요. 원본 탭에서:

  • 데이터 저장소 유형을 외부로 설정합니다.
  • 소스 SQL Server 연결을 선택하세요.
  • Use query를 Query로 설정하세요.
  • 쿼리를 테이블 @concat('SELECT TOP 0 * FROM ',item().SchemaName,'.',item().TableName) 메타데이터만 마이그레이션하도록 설정하세요.

Data Factory에서 캡처한 스크린샷으로, 복사 작업의 소스 설정을 보여줍니다.

대상 탭에서:

  • 데이터 저장소 유형을 작업 영역으로 설정합니다.
  • Workspace 데이터 저장소 유형을Data Warehouse로 설정하고, 목적지 웨어하우스를 선택하세요.
  • 목적지 스키마 @item().SchemaName를 로 설정하세요.
  • 목적지 테이블 @item().TableName을 로 설정하세요.

Data Factory에서 캡처한 스크린샷으로, 복사 작업의 목적지 설정이 보여요.

파이프라인을 실행한 후에는 Fabric Data Warehouse 선택된 각 테이블이 예상 스키마를 포함하는지 확인하세요.

SQL 스크립트를 이용한 마이그레이션

스키마 변환, 데이터 추출, 코드 평가를 세밀하게 제어하고 싶을 때는 T-SQL과 PowerShell 마이그레이션 스크립트를 사용하세요.

마이그레이션 스크립트는 다음과 같은 기능을 할 수 있습니다:

  • 스키마(DDL)를 Fabric Data Warehouse 문법으로 변환하세요.
  • Fabric Data Warehouse에서 스키마 객체를 만드세요.
  • SQL Server에서 데이터를 추출하여 ADLS Gen2로 전송합니다.
  • 저장 프로시저, 함수, 뷰에서 지원되지 않는 T-SQL 문법을 플래그로 표시합니다.

Microsoft Fabric CAT 팀은 패브릭 마이그레이션 저장소에서 마이그레이션 코드 샘플을 제공합니다.

T-SQL에 익숙하고, 통합 개발 환경을 선호하며, 개별 마이그레이션 작업을 통제해야 할 때는 스크립트를 사용하세요. 추출된 데이터를 Fabric Data Warehouse에 적재하려면 COPY INTO 또는 Data Factory를 사용하세요.

SQL 데이터베이스 프로젝트를 사용하여 마이그레이션

Fabric Data Warehouse는 Visual Studio Code용 SQL Database Projects 확장에서 지원됩니다.

SQL 데이터베이스 프로젝트는 소스 제어, 데이터베이스 테스트, 스키마 검증 및 배포 기능을 제공합니다. 다음과 같은 기능이 있습니다.

  • 스키마(DDL)를 Fabric Data Warehouse 문법으로 변환하세요.
  • Fabric Data Warehouse에서 스키마 객체를 만드세요.
  • 저장 프로시저, 함수, 뷰에서 지원되지 않는 T-SQL 문법을 평가합니다.

데이터 마이그레이션을 위해서는 Data Factory를 사용해 SQL Server에서 직접 복사하거나, 데이터를 ADLS Gen2로 추출하여 Data Factory와 함께 COPY INTO 인징하세요.

SQL 데이터베이스 프로젝트를 마이그레이션 스크립트와 함께 사용하는 방법에 대한 안내는 fabric-migration 저장소를 참조하세요.

자세한 내용은 SQL 데이터베이스 프로젝트 확장 기능과명령줄에서 데이터베이스 프로젝트 구축 기능을 참조하세요.

DBT와 함께한 마이그레이션

SQL Server data warehouse가 dbt를 사용한다면, dbt 어댑터를 Fabric Data Warehouse사용해 대상 프로필과 어댑터를 변경하여 스키마와 데이터베이스 코드를 변환할 수 있습니다.

dbt 프레임워크는 모델 파일로부터 DDL 및 DML 스크립트를 생성합니다. 데이터는 Data Factory나 이 글의 다른 데이터 마이그레이션 옵션을 사용하여 별도로 마이그레이션해야 합니다.

시작하려면 튜토리얼: Fabric Data Warehouse를 위한 DBT 설정 과정을 참고하세요.

Fabric Data Warehouse로의 데이터 수집

스테이징된 데이터의 경우, COPY INTO 또는 Fabric Data Factory를 사용하여 ADLS Gen2의 파일을 Fabric Data Warehouse로 수집하세요. 다음 지침을 고려해 보세요:

  • 소스 데이터베이스와 네트워크에 충분한 용량이 있을 때 대규모 테이블을 병렬로 추출합니다.
  • 저장 공간과 네트워크 사용을 줄이고 인제 효율을 높이기 위해 Parquet 파일을 선호하세요.
  • Fabric 용량이 작업을 감당할 수 있을 때 여러 목적지 테이블을 동시에 로드하세요.
  • 소스 추출과 Fabric 용량을 모두 모니터링하여 최적의 병렬성 수준을 찾으세요.