Как получить действительный JSON для наборов данных / конвейеров Azure Data Factory V2 с помощью PowerShell? - PullRequest
0 голосов
/ 22 октября 2018

У меня есть несколько конвейеров в Azure Data Factory V2, которые мне нужно обновить.В частности, мне нужно обновить схему наборов данных.Я изначально создал их с помощью пользовательского интерфейса.Поскольку количество столбцов очень велико, пользовательский интерфейс стал очень медленным для работы с ними, поэтому я бы хотел перейти на использование PowerShell.

Я собрал скрипт, который я могу использовать для обновления их из файла JSON с помощью командлетов Set-AzureRmDataFactoryV2Dataset и Set-AzureRmDataFactoryV2Pipeline.Я также хотел бы иметь возможность создавать файлы JSON с текущими конфигурациями с помощью PowerShell.Я попытался использовать соответствующие командлеты Get-AzureRmDataFactoryV2Dataset и Get-AzureRmDataFactoryV2Pipeline, которые были полезны для получения общей информации о них, но я не смог перейти от объекта PSDataSet, возвращенного к допустимому файлу JSON.Ниже приведены команды, которые я пробовал, но в итоге получаю кучу пустых JSON-массивов для схемы.

$dtSrc = Get-AzureRmDataFactoryV2Dataset -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $dtSrcName
ConvertTo-Json $dtSrc.Properties -Depth 100 | Out-File "$dtSrcName.json" -Width 1000000

Редактировать: Основано на ответе ВанаЧжан, я отредактировал свое заявление ConvertTo-Json, как показано ниже.Вывод теперь выглядит намного лучше (без пустых массивов), но он по-прежнему не соответствует схеме JSON Azure Dataset.

$dtSrc = Get-AzureRmDataFactoryV2Dataset -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $dtSrcName
ConvertTo-Json $dtSrc -Depth 1 | Out-File "$dtSrcName.json" -Width 1000000

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Вы можете просто скачать шаблоны ARM для вашего АПД (они используют формат json), отредактировать их и загрузить снова, используя пользовательский интерфейс, az-cli или даже powershell.

Или, что еще лучше, свяжите git-репозиторий с ADF, а затем просто локально клонируйте репо, внесите изменения и опубликуйте их в ADF, выполнив передачу в указанную производственную ветвь (обычно master).

0 голосов
/ 23 октября 2018

Не могли бы вы указать причину, по которой вы установили " -Depth -100 " во второй команде?Кажется, удалите его и измените вторую команду, так как хорошо работает следующее:

ConvertTo-Json $ dtSrc.Properties |Out-File "$ dtSrcName.json" -Width 1000000

Пожалуйста, попробуйте.

...