Фабрика данных Использование запроса для создания json

У меня такая ситуация, когда мне нужно создать json на основе метаданных, и у меня возникла проблема с созданием.

Я использую базу данных для выполнения запроса, и это выглядит так: Использовать запрос:

SELECT CONCAT(
'
{
"entries": [
{
"example": true,
"url": "https://xxxxxx.core.windows.net/xxxxx/',
'@{pipeline().Pipeline}',
'/',
 '@{
 concat(
item().name
)
}',
'"
}]}'
)AS json

Результат будет таким:

{"json":"\n{\n\"entries\": [\n{\n\"example\": true,\n\"url\": \"https://xxxxx.core.windows.net/xxxxx/yyyyyyy/table.aaaa.20200914003004.ooo.20200914003004.false.json\"\n}]}"}

Как избавиться от перевода строки \ n?

Также пробовал это:

ВЫБРАТЬ СЦЕПИТЬ ('{записи: [{пример: true, url: https: //xxxxxx.core.windows.net/yyyyyyyy/','@ {Pipeline () .Pipeline}', '/', '@ {concat (item (). name)} ','}]} ') AS json

Конечный результат должен выглядеть так

>    {
>       "entries": [
>         {
>           "example": true,
>           "url": "https://xxx.blob.core.windows.net/yyy/asasadasdek/asdaedasd"
>         }
>       ]
>     }

Обновить

Задачи: Получить имена файлов из blob, имена и скопировать имена в один файл json

Получить имена файлов из большого двоичного объекта, имена и скопировать имена в один файл json

Копирование исходного действия должно создать такой формат

    SELECT CONCAT(
'
{
"entries": [
{
"example": true,
"url": "https://xxxxxx.core.windows.net/xxxxx/',
'@{pipeline().Pipeline}',
'/',
 '@{
 concat(
item().name
)
}',
'"
}]}'
)AS json

введите код сюда

Но у него все еще есть проблема с \ n


person kaarel    schedule 25.11.2020    source источник
comment
Вы можете попробовать функцию @json() в ADF, чтобы преобразовать ее в тип json?   -  person Joseph Xu    schedule 25.11.2020
comment
Привет, @kaarel, поправьте меня, если я неправильно понял ваш ответ.   -  person Joseph Xu    schedule 27.11.2020
comment
Это непростая вещь. Я вернусь к этому, когда у меня будет решение :)   -  person kaarel    schedule 27.11.2020


Ответы (1)


Обновление:
Итак, мы можем изменить запрос на SELECT CONCAT(' '@{CONCAT(activity('variable1'))}' ') AS JSON. Затем мы можем удалить символ \n.

person Joseph Xu    schedule 26.11.2020
comment
Очень хороший пример! на самом деле это не решает проблему. Я пытаюсь получить метаданные из BLOB-объекта, имена файлов, а затем записать имена файлов в файл json. 1. Getfilenames = childitems 2. установить переменную, в которой я использую Variables Array1 @activity ('Getfilenames'). Output.childItems (идея переменной от вас) 3. sql и раковина И теперь у меня есть копия sql, в которой я пытаюсь скопировать все имена в json, который работает, но перевод строки сбегает, потому что он создает строку - person kaarel; 27.11.2020
comment
Поскольку информация, которую я могу получить по вашему вопросу, ограничена, здесь я выполняю преобразование типов только для удаления выходов перевода строки, вы можете добавить детали и требования к вопросу или добавить новый вопрос, я постараюсь изо всех сил вам помочь. - person Joseph Xu; 27.11.2020
comment
Я сделал это так: 1. ВЫБЕРИТЕ CONCAT ('' @ {CONCAT (activity ('variable1'))} '') AS JSON - person kaarel; 27.11.2020
comment
Отлично, вы решили проблему. Я также обновил ответ. Если мой ответ полезен для вас, вы можете принять его как ответ (щелкните галочку рядом с ответом, чтобы переключить его с серого на заполненный). Это может быть полезно для других членов сообщества. Большое спасибо! - person Joseph Xu; 05.12.2020