Задачи - создание сценариев в Azure Synapse Serverless SQL

Я работаю с экземпляром SQL Azure Synapse Serverless, подключенным через самую последнюю версию SSMS. У меня есть несколько внешних таблиц, определенных для паркетных файлов в Azure Data Lake (Gen2).

У меня вопрос: как использовать типичные сценарии создания задач для создания определений внешних таблиц, подобных тем, к которым я привык в SQL Server? Или сделайте что-то подобное (пакетный экспорт определений внешних таблиц) ... в этот момент кажется, что мне нужно перейти к внешней таблице по внешней таблице (щелкните правой кнопкой мыши - ›таблица сценариев как -› перетащите и создайте в - ›Файл, так далее.).

Любой совет приветствуется, спасибо!


person user24536    schedule 09.12.2020    source источник


Ответы (1)


В настоящее время это не поддерживается в SSMS. Вы можете создавать сценарии для внешних таблиц одну за другой, как вы писали из пользовательского интерфейса SSMS.

Мы действительно планируем оказать в этом поддержку в будущем.

Вы можете использовать PowerShell для создания сценариев для нескольких внешних таблиц. Взгляните на этот запись в блоге, которую мы написали для подробностей.

Краткое содержание сообщения в блоге:

  1. Откройте PowerShell

  2. Бег: Install-Module dbatools

  3. Создайте скрипт, который создает внешние таблицы

    Если вы создали набор внешних таблиц в Synapse SQL и хотите переместить их определения в другой экземпляр или сохранить сценарий создания локально или в какой-либо системе управления версиями, вы можете легко создать сценарий, который создает все внешние таблицы.

Если вы установили последнюю версию DbaTools, вы можете использовать следующий сценарий для создания сценариев CREATE EXTERNAL TABLE для набора ваших таблиц:

    $loginName = "<login>"
    $synapseSqlName = "<sql endpoint name>"
    $databaseName = "<database name>"
    $login = Get-Credential -Message "Enter your SQL serverless password" -UserName $loginName
    $script = Get-DbaDbTable -SqlInstance "$synapseSqlName.sql.azuresynapse.net" -Database $databaseName -SqlCredential $login | Export-DbaScript -Passthru | Out-String
    $script -replace ' NULL', ''

Вам необходимо вместо (например, mysynapsesqlendpoint-ondemand) ввести имя бессерверной конечной точки Synapse SQL, имя входа, которое вы будете использовать для подключения к базе данных Synapse SQL вместо, и имя базы данных, в которой размещаются ваши внешние таблицы вместо.

После запуска этого сценария вы увидите сценарий, который создает внешние таблицы в окне вывода.

Export-DbaScript позволяет настраивать сценарий и экспортировать операторы CREATE TABLE в некоторый файл, определяя кодирование, исключение схемы и т. д. У вас есть много опций, которые вы можете использовать для настройки генерации скрипта.

В приведенном выше примере я использовал команду Get-DbaDbTable для получения всех внешних таблиц из моей базы данных. . Вы также можете настроить эту команду, чтобы получать таблицы из нескольких баз данных или указать набор таблиц, которые вы хотите экспортировать.

Заключение

DbaTools - это очень полезный набор команд PowerShell, которые могут позволить вам автоматизировать задачи администрирования в ваших базах данных Synapse SQL. В этом примере вы видели горячую генерацию сценариев, которые создают и удаляют таблицы, но вы можете легко изменить этот сценарий для создания / удаления пользователей, баз данных и т. Д.

person Stefan Azarić - Microsoft    schedule 24.12.2020