Поделиться через


Оптимизация производительности путем обновления выделенного пула SQL (ранее — хранилище данных SQL) в Azure Synapse Analytics

Обновите выделенный пул SQL (ранее — хранилище данных SQL) до последнего поколения оборудования и архитектуры хранилища Azure.

Зачем выполнять обновление

Вы можете легко перейти на оптимизированный для вычислений выделенный пул SQL 2-го поколения (ранее — хранилище данных SQL) на портале Azure, если такая возможность поддерживается в вашем регионе. Если ваш регион не поддерживает самостоятельное обновление, можно перейти на поддерживаемый регион или дождаться, когда функция самостоятельного обновления станет доступна в вашем регионе. Выполните обновление сейчас, чтобы воспользоваться преимуществами последнего поколения оборудования Azure и усовершенствованной архитектуры хранилища, включая повышенную производительность, масштабируемость и неограниченное хранение по столбцам.

Внимание

Это обновление применимо к выделенным пулам SQL уровня Compute Optimized Gen1 (ранее SQL DW) в поддерживаемых регионах.

Перед началом

  1. Проверьте, поддерживает ли ваш регион перенос хранилища 1-го поколения в хранилище 2-го поколения. Обратите внимание на даты автоматического переноса. Чтобы избежать конфликтов с автоматизированным процессом, запланируйте ручной перенос на дату, предшествующую дате запуска автоматизированного процесса.

  2. Если вы находитесь в регионе, который еще не поддерживается, регулярно проверяйте, не был ли ваш регион добавлен в список поддерживаемых, или выполните обновление с помощью восстановления в поддерживаемый регион.

  3. Если ваш регион не поддерживается, выполните обновление на портале Azure.

  4. Выберите предлагаемый уровень производительности для выделенного пула SQL (ранее SQL DW) на основе текущего уровня производительности в категории Compute Optimized Gen1, используя приведенное ниже соответствие:

    Compute Optimized Gen1 tier Compute Optimized Gen2 tier
    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

  • Миграцию из хранилища 1-го поколения в хранилище 2-го поколения на портале Azure невозможно отменить. Нет процедуры для возврата к первому поколению.
  • Dedicated SQL pool (formerly SQL DW) must be running to migrate to Gen2

Перед началом

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Перенос Azure PowerShell с AzureRM на Az.

  • Войдите на портал Azure.
  • Убедитесь, что выделенный пул SQL (ранее — SQL DW) запущен — это необходимо для выполнения миграции на Gen2.

Команды обновления PowerShell

  1. If the Compute Optimized Gen1 tier dedicated SQL pool (formerly SQL DW) to be upgraded is paused, resume dedicated SQL pool (formerly SQL DW).

  2. Будьте готовы к непродолжительному простою.

  3. Определите все ссылки на код, связанные с уровнями производительности 1-го поколения "Оптимизировано для вычислений" и измените их на эквивалентный уровень производительности 2-го поколения "Оптимизировано для вычислений" Ниже представлены два примера, в которых нужно обновить ссылки на код перед обновлением:

    Исходная команда PowerShell 1-го поколения:

    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"

    Исходная команда T-SQL 1-го поколения:

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

    Изменено на:

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

    Примечание.

    SERVICE_OBJECTIVE = 'DW300' изменено на SERVICE_OBJECTIVE = 'DW300c'

Начало обновления

  1. На портале Azure перейдите к оптимизированному для вычислений выделенному пулу SQL 1-го поколения (ранее — хранилище данных SQL). If the Compute Optimized Gen1 tier dedicated SQL pool (formerly SQL DW) to be upgraded is paused, resume dedicated SQL pool.

  2. Select Upgrade to Gen2 card under the Tasks tab:

    Примечание.

    Если карта Повысить до Gen2 не отображается на вкладке "Задачи", для типа вашей подписки действуют ограничения в текущем регионе. Отправьте запрос в службу поддержки для утверждения вашей подписки.

  3. Ensure your workload has completed running and quiesced before upgrading. Вы испытаете простой в течение нескольких минут, прежде чем ваш выделенный пул SQL (ранее SQL DW) снова станет доступен в качестве выделенного пула SQL уровня Compute Optimized Gen2 (ранее SQL DW).

  4. Выберите Обновить.

  5. Отслеживайте обновление, проверяя состояние в портале Azure. Скорее всего, появится баннер сообщения, указывающий на "Это хранилище данных обновляется до 2-го поколения".

    Первым шагом процесса обновления является масштабирование ("Обновление — автономный режим"), при котором все сеансы будут прерваны, а соединение разорвано.

    Второй шаг процесса обновления — перенос данных ("Обновление — в сети"). Перенос данных является малозаметным фоновым сетевым процессом. This process slowly moves columnar data from the old storage architecture to the new storage architecture using a local SSD cache. В течение этого времени выделенный пул SQL (ранее — хранилище данных SQL) будет подключен к сети для выполнения запросов и загрузки. При этом все данные будут доступны для запросов, вне зависимости от того, были ли они перенесены. Перенос данных происходит с разной скоростью в зависимости от их размера, уровня производительности и количества сегментов columnstore.

  6. Дополнительная рекомендация. После завершения операции масштабирования можно ускорить фоновый процесс переноса данных. You can force data movement by running ALTER INDEX ... REBUILD on all primary columnstore tables you'd be querying at a larger SLO and resource class. This operation is offline, it will degrade or block other queries, but will finish faster compared to the trickle background process, which can take hours to complete depending on the number and sizes of your tables. Тем не менее после завершения этой операции перенос данных будет происходить намного быстрее благодаря новой улучшенной архитектуре хранилища с высококачественными группами строк.

Примечание.

Операция "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';

Upgrade from an Azure geographical region using restore through the Azure portal

Создание определяемой пользователем точки восстановления с помощью портала Azure

  1. Войдите на портал Azure.
  2. Перейдите к выделенному пулу SQL (ранее — хранилище данных SQL), для которого необходимо создать точку восстановления.
  3. На панели инструментов страницы "Обзор" нажмите кнопку "Создать точку восстановления".
  4. Укажите имя точки восстановления.

Восстановление активной или приостановленной базы данных с помощью портала Azure

  1. Войдите на портал Azure.

  2. Перейдите к выделенному пулу SQL (ранее — хранилище данных SQL), из которого требуется выполнить восстановление.

  3. На панели инструментов раздела "Обзор " выберите " Восстановить".

  4. Выберите Точки автоматического восстановления или Пользовательские точки восстановления. Для пользовательских точек восстановления выберите имеющуюся точку восстановления или создайте новую. Для сервера выберите Создать, затем выберите сервер в географическом регионе, где поддерживается 2-е поколение.

    Снимок экрана: портал Azure с точками восстановления для выбора.

Восстановление из географического региона Azure с помощью PowerShell

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Перенос Azure PowerShell с AzureRM на Az.

Для восстановления базы данных используйте командлет Restore-AzSqlDatabase.

Примечание.

You can perform a geo-restore to Gen2! Для этого в качестве необязательного параметра укажите имя ServiceObjectiveName 2-го поколения (например, DW1000c).

  1. Откройте Windows PowerShell.
  2. Подключитесь к своей учетной записи Azure и выведите список всех подписок, связанных с ней.
  3. Выберите подписку, содержащую базу данных, которую нужно восстановить.
  4. Получите базу данных, которую требуется восстановить.
  5. Создайте запрос на восстановление для базы данных, указав ServiceObjectiveName 2-го поколения.
  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

Примечание.

Чтобы настроить базу данных после восстановления, см. раздел Настройка базы данных после восстановления.

The recovered database will be TDE-enabled if the source database is TDE-enabled.

Если у вас возникли проблемы с выделенным пулом SQL, создайте запрос в службу поддержки и укажите "Обновление до 2-го поколения" в качестве возможной причины.

Обновленный выделенный пул SQL (ранее — хранилище данных SQL) подключен к сети. Чтобы воспользоваться преимуществами расширенной архитектуры, ознакомьтесь с дополнительными сведениями о классах ресурсов.

Следующий шаг