Azure Synapse Analytics에서 전용 SQL 풀(이전의 SQL DW)을 업그레이드하여 성능 최적화

전용 SQL 풀(이전의 SQL DW)을 최신 세대의 Azure 하드웨어 및 스토리지 아키텍처로 업그레이드합니다.

업그레이드가 필요한 이유

이제 지원되는 지역의 Azure Portal에서 전용 SQL Data Warehouse(이전의 SQL DW) 컴퓨팅 최적화 Gen2 계층으로 원활하게 업그레이드할 수 있습니다. 지역이 자체 업그레이드를 지원하지 않는 경우 지원되는 지역으로 업그레이드하거나, 지역에서 자체 업그레이드를 사용할 수 있게 될 때까지 기다릴 수 있습니다. 지금 바로 업그레이드하여 최신 세대 Azure 하드웨어와 더 빠른 성능, 더 높은 확장성, 무제한 열 형식 스토리지를 비롯한 향상된 스토리지 아키텍처를 활용하세요.

Important

이 업그레이드는 지원되는 지역에서 컴퓨팅 최적화 Gen1 계층 전용 SQL 풀(이전의 SQL DW)에 적용됩니다.

시작하기 전에

  1. 사용자의 지역에서 GEN1-GEN2 마이그레이션이 지원되는지 확인합니다. 자동 마이그레이션 날짜를 기록해 둡니다. 자동 프로세스 충돌을 방지하려면 자동 프로세스 시작 날짜 전에 수동 마이그레이션을 진행하도록 계획합니다.

  2. 아직 지원되지 않는 지역에 있는 경우 지역이 추가되는지 여부를 계속 확인하거나 복원을 사용하여 지원되는 지역으로 업그레이드합니다.

  3. 사용자의 지역이 지원되는 Azure Portal을 통해 업그레이드합니다.

  4. 전용 SQL 풀(이전의 SQL DW)의 제안된 성능 수준 선택은 아래에 있는 매핑을 사용하여 컴퓨팅 최적화 Gen1 계층의 현재 성능 수준을 기반으로 합니다.

    컴퓨팅 최적화 Gen1 계층 컴퓨팅 최적화 Gen2 계층
    DW100 DW100c
    DW200 DW200c
    DW300 DW300c
    DW400 DW400c
    DW500 DW500c
    DW600 DW500c
    DW1000 DW1000c
    DW1200 DW1000c
    DW1500 DW1500c
    DW2000 DW2000c
    DW3000 DW3000c
    DW6000 DW6000c

참고 항목

제안된 성능 수준은 직접 변환이 아닙니다. 예를 들어, DW600에서 DW500c로 변환하는 것이 좋습니다.

Azure Portal을 사용하여 지원되는 지역에서 업그레이드

  • Azure Portal을 통해 Gen1에서 Gen2로 마이그레이션하면 영구적으로 적용됩니다. Gen1로 되돌릴 수 있는 프로세스는 없습니다.
  • Gen2로 마이그레이션하려면 전용 SQL 풀(이전의 SQL DW)이 실행 중이어야 합니다.

시작하기 전에

참고 항목

Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.

  • Azure Portal에 로그인합니다.
  • 전용 SQL 풀(이전의 SQL DW)이 실행되고 있는지 확인합니다. Gen2로 마이그레이션해야 합니다.

PowerShell 업그레이드 명령

  1. 업그레이드할 컴퓨팅 최적화 Gen1 계층 전용 SQL 풀(이전의 SQL DW)이 일시 중지된 경우 전용 SQL 풀(이전의 SQL DW)을 재개합니다.

  2. 몇 분 정도의 가동 중지 시간에 대비합니다.

  3. 컴퓨팅 최적화 Gen1 성능 수준에 대한 코드 참조를 식별하고, 동등한 컴퓨팅 최적화 Gen2 성능 레벨로 수정합니다. 아래에는 업그레이드 전에 코드 참조를 업데이트해야 는 두 가지 예제입니다.

    원래 Gen1 PowerShell 명령:

    Set-AzSqlDatabase -ResourceGroupName "myResourceGroup" -DatabaseName "mySampleDataWarehouse" -ServerName "mynewserver-20171113" -RequestedServiceObjectiveName "DW300"
    

    다음으로 수정됨:

    Set-AzSqlDatabase -ResourceGroupName "myResourceGroup" -DatabaseName "mySampleDataWarehouse" -ServerName "mynewserver-20171113" -RequestedServiceObjectiveName "DW300c"
    

    참고 항목

    -RequestedServiceObjectiveName “DW300”이 - RequestedServiceObjectiveName “DW300c”로 변경되었습니다.

    원래 Gen1 T-SQL 명령:

    ALTER DATABASE mySampleDataWarehouse MODIFY (SERVICE_OBJECTIVE = 'DW300') ;
    

    다음으로 수정됨:

    ALTER DATABASE mySampleDataWarehouse MODIFY (SERVICE_OBJECTIVE = 'DW300c') ;
    

    참고 항목

    SERVICE_OBJECTIVE = ‘DW300’이 SERVICE_OBJECTIVE = ‘DW300c’로 변경되었습니다.

업그레이드 시작

  1. Azure Portal에서 컴퓨팅 최적화 Gen1 전용 SQL 풀(이전의 SQL DW)로 이동합니다. 업그레이드할 컴퓨팅 최적화 Gen1 계층 전용 SQL 풀(이전의 SQL DW)이 일시 중지된 경우 전용 SQL 풀을 재개합니다.

  2. 작업 탭에서 Gen2로 업그레이드 카드를 선택합니다. Upgrade_1

    참고 항목

    [작업] 탭 아래 Gen2로 업그레이드 카드가 표시되지 않으면 구독 유형이 현재 지역으로 제한됩니다. 지원 티켓을 제출하여 승인된 구독을 가져옵니다.

  3. 업그레이드 전에 워크로드가 실행되고 정지되었는지 확인합니다. 전용 SQL 풀(이전의 SQL DW)이 컴퓨팅 최적화 Gen2 계층 전용 SQL 풀(이전의 SQL DW)로 다시 온라인 상태가 되기 전에 몇 분 동안 가동 중지 시간이 발생합니다. 업그레이드를 선택합니다.

    Upgrade_2

  4. Azure Portal에서 상태를 확인하여 업그레이드를 모니터링합니다.

    Upgrade3

    비율 크기 조정 작업(“업그레이드 - 오프라인”)을 통해 업그레이드 프로세스의 첫 단계가 진행됩니다. 여기서는 모든 세션이 종료되며 연결이 삭제됩니다.

    업그레이드 프로세스의 두 번째 단계는 데이터 마이그레이션(“업그레이드 - 온라인”)입니다. 데이터 마이그레이션은 지속적인 온라인 백그라운드 프로세스입니다. 이 프로세스는 로컬 SSD 캐시를 활용하여 열 형식의 데이터가 이전 스토리지 아키텍처에서 새로운 스토리지 아키텍처로 느리게 이동합니다. 이 시간 동안 전용 SQL 풀(이전의 SQL DW)은 쿼리 및 로드에 대해 온라인 상태가 됩니다. 데이터는 마이그레이션 여부에 관계 없이 쿼리에 사용할 수 있습니다. 데이터 마이그레이션은 데이터 크기, 성능 수준 및 columnstore 세그먼트의 수에 따라 다양한 속도로 발생합니다.

  5. 선택적 권장 사항: 크기 조정 작업이 완료되면 데이터 마이그레이션 백그라운드 프로세스의 속도를 높일 수 있습니다. 더 큰 SLO 및 리소스 클래스에서 쿼리하는 모든 기본 columnstore 테이블에서 Alter Index rebuild를 실행하여 데이터를 강제로 이동할 수 있습니다. 이 작업은 지속적인 백그라운드 프로세스와 비교할 때 오프라인 방식이므로, 테이블의 크기와 수에 따라 완료하는 데 몇 시간이 걸릴 수 있습니다. 그러나 완료되면 고품질의 행 그룹으로 인해 스토리지 아키텍처가 새롭게 개선되므로 데이터 마이그레이션이 훨씬 더 빨라집니다.

참고 항목

Alter Index rebuild는 오프라인 작업이며, 다시 빌드가 완료될 때까지 테이블을 사용할 수 없습니다.

다음 쿼리는 데이터 마이그레이션을 더 신속히 처리하기 위해 필요한 Alter Index Rebuild 명령을 생성합니다.

SELECT 'ALTER INDEX [' + idx.NAME + '] ON ['
       + Schema_name(tbl.schema_id) + '].['
       + Object_name(idx.object_id) + '] REBUILD ' + ( CASE
                                                         WHEN (
                                                     (SELECT Count(*)
                                                      FROM   sys.partitions
                                                             part2
                                                      WHERE  part2.index_id
                                                             = idx.index_id
                                                             AND
                                                     idx.object_id =
                                                     part2.object_id)
                                                     > 1 ) THEN
              ' PARTITION = '
              + Cast(part.partition_number AS NVARCHAR(256))
              ELSE ''
                                                       END ) + '; SELECT ''[' +
              idx.NAME + '] ON [' + Schema_name(tbl.schema_id) + '].[' +
              Object_name(idx.object_id) + '] ' + (
              CASE
                WHEN ( (SELECT Count(*)
                        FROM   sys.partitions
                               part2
                        WHERE
                     part2.index_id =
                     idx.index_id
                     AND idx.object_id
                         = part2.object_id) > 1 ) THEN
              ' PARTITION = '
              + Cast(part.partition_number AS NVARCHAR(256))
              + ' completed'';'
              ELSE ' completed'';'
                                                    END )
FROM   sys.indexes idx
       INNER JOIN sys.tables tbl
               ON idx.object_id = tbl.object_id
       LEFT OUTER JOIN sys.partitions part
                    ON idx.index_id = part.index_id
                       AND idx.object_id = part.object_id
WHERE  idx.type_desc = 'CLUSTERED COLUMNSTORE';

Azure Portal 통한 복원으로 Azure 지역에서 업그레이드

Azure Portal을 사용하여 사용자 정의 복원 지점 만들기

  1. Azure Portal에 로그인합니다.

  2. 복원 지점을 만들려는 전용 SQL 풀(이전의 SQL DW)로 이동합니다.

  3. 개요 섹션 위쪽에서 +새 복원 지점을 선택합니다.

    New Restore Point

  4. 복원 지점에 대한 이름을 지정합니다.

    Name of Restore Point

Azure Portal을 사용하여 활성 또는 일시 중지된 데이터베이스 복원

  1. Azure Portal에 로그인합니다.

  2. 복원할 전용 SQL 풀(이전의 SQL DW)로 이동합니다.

  3. 개요 섹션 위쪽에서 복원을 선택합니다.

     Restore Overview

  4. 자동 복원 지점 또는 사용자 정의 복원 지점 중 하나를 선택합니다. 사용자 정의 복원 지점에 대해 사용자 정의 복원 지점을 선택하거나 새 사용자 정의 복원 지점을 만듭니다. 서버에 대해 새로 만들기를 선택하고 Gen2 지원 지역에서 서버를 선택합니다.

    Automatic Restore Points

PowerShell을 사용하여 Azure 지역에서 복원

참고 항목

Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.

데이터베이스를 복구하려면 Restore-AzSqlDatabase cmdlet을 사용합니다.

참고 항목

지역 복원을 Gen2로 수행할 수 있습니다! 이렇게 하려면 Gen2 ServiceObjectiveName(예: DW1000c)을 선택적 매개 변수로 지정하세요.

  1. Windows PowerShell을 엽니다.
  2. Azure 계정에 연결하고 사용자 계정과 연결된 모든 구독을 나열합니다.
  3. 복원할 데이터베이스가 포함된 구독을 선택합니다.
  4. 복구하려는 데이터베이스를 가져옵니다.
  5. Gen2 ServiceObjectiveName을 지정하여 데이터베이스에 대한 복구 요청을 만듭니다.
  6. 지역에서 복원된 데이터베이스의 상태를 확인합니다.
Connect-AzAccount
Get-AzSubscription
Select-AzSubscription -SubscriptionName "<Subscription_name>"

# Get the database you want to recover
$GeoBackup = Get-AzSqlDatabaseGeoBackup -ResourceGroupName "<YourResourceGroupName>" -ServerName "<YourServerName>" -DatabaseName "<YourDatabaseName>"

# Recover database
$GeoRestoredDatabase = Restore-AzSqlDatabase –FromGeoBackup -ResourceGroupName "<YourResourceGroupName>" -ServerName "<YourTargetServer>" -TargetDatabaseName "<NewDatabaseName>" –ResourceId $GeoBackup.ResourceID -ServiceObjectiveName "<YourTargetServiceLevel>" -RequestedServiceObjectiveName "DW300c"

# Verify that the geo-restored database is online
$GeoRestoredDatabase.status

참고 항목

복원이 완료된 후에 데이터베이스를 구성하려면 복구 후 데이터베이스 구성을 참조하세요.

원본 데이터베이스가 TDE를 사용할 수 있는 경우 복구된 데이터베이스도 TDE를 사용할 수 있습니다.

전용 SQL 풀에 문제가 발생하는 경우 지원 요청을 만들고 가능한 원인으로 "Gen2 업그레이드"를 참조합니다.

다음 단계

업그레이드된 전용 SQL 풀(이전의 SQL DW)이 온라인 상태입니다. 향상된 아키텍처를 이용하려면 워크로드 관리를 위한 리소스 클래스를 참조하세요.