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

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

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

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

Важно!

Это обновление применяется к оптимизированным для вычислений выделенным пулам SQL 1-го поколения (ранее — хранилище данных SQL) в поддерживаемых регионах.

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

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

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

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

  4. Выберите предлагаемый уровень производительности оптимизированного для вычислений выделенного пула SQL 1-го поколения (ранее — хранилище данных SQL) в соответствии с текущим уровнем производительности. Используйте приведенное ниже сопоставление:

    Уровень 1-го поколения "Оптимизировано для вычислений" Уровень 2-го поколения "Оптимизировано для вычислений"
    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 невозможно отменить. Возврат к использованию хранилища 1-го поколения не предусмотрен.
  • Для миграции в хранилище 2-го поколения требуется работающий выделенный пул SQL (ранее — хранилище данных SQL).

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

Примечание

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

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

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

  1. Если работа оптимизированного для вычислений выделенного пула SQL 1-го поколения (прежнее название — хранилище данных SQL) приостановлена, возобновите ее.

  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). Если работа оптимизированного для вычислений пула SQL 1-го поколения (прежнее название — хранилище данных SQL) приостановлена, возобновите ее.

  2. Выберите карточку Обновить до 2-го поколения на вкладке "Задачи": Upgrade_1

    Примечание

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

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

    Upgrade_2

  4. Наблюдайте за процессом обновления, проверяя состояние на портале Azure.

    Upgrade3

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

    Второй шаг процесса обновления — перенос данных ("Обновление — в сети"). Перенос данных является малозаметным фоновым сетевым процессом. Он медленно перемещает данные столбцов из старой архитектуры службы хранилища в новую архитектуру службы хранилища, использующую локальный кэш SSD. В течение этого времени выделенный пул SQL (ранее — хранилище данных SQL) будет подключен к сети для выполнения запросов и загрузки. При этом все данные будут доступны для запросов, вне зависимости от того, были ли они перенесены. Перенос данных происходит с разной скоростью в зависимости от их размера, уровня производительности и количества сегментов columnstore.

  5. Дополнительная рекомендация. После завершения операции масштабирования можно ускорить фоновый процесс переноса данных. Вы можете сразу инициировать перемещение данных, выполнив инструкцию Alter Index rebuild для всех основных таблиц columnstore, которые вы сможете запрашивать при наличии более высокого целевого уровня обслуживания и оптимального класса ресурсов. Эта операция является автономной по сравнению с малозаметным фоновым процессом, который может потребовать несколько часов в зависимости от количества и размеров таблиц. Тем не менее после завершения этой операции перенос данных будет происходить намного быстрее благодаря новой улучшенной архитектуре хранилища с высококачественными группами строк.

Примечание

Операция "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 с помощью восстановления на портале Azure

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

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

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

  3. В верхней области колонки "Обзор" выберите Новая точка восстановления.

    Новая точка восстановления

  4. Укажите имя точки восстановления.

    Имя точки восстановления

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

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

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

  3. В верхней области колонки "Обзор" выберите Восстановление.

     Команда восстановления на странице обзора

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

    Точки автоматического восстановления

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

Примечание

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

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

Примечание

Можно выполнить геовосстановление в хранилище 2-го поколения! Для этого в качестве необязательного параметра укажите имя 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

Примечание

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

Восстановленная база данных будет поддерживать прозрачное шифрование данных, если исходная база данных поддерживает прозрачное шифрование данных.

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

Дальнейшие действия

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