Azure Фабрика данных - SQL до вложенного JSON - PullRequest
1 голос
/ 30 марта 2020

У меня есть база данных SQL с таблицами для персонала и назначений (1 сотрудник: много назначений). Я хотел бы использовать Azure фабрику данных, чтобы вывести это на вложенный JSON в хранилище BLOB-объектов в формате, подобном приведенному ниже:

[
   {
      "staffid":"101",
      "firstname":"Donald",
      "lastname":"Duck",
      "appointments":[
         {
            "appointmentid":"201",
            "startdate":"2020-02-01T00:00:00",
            "enddate":"2020-04-29T23:00:00"
         },
         {
            "appointmentid":"202",
            "startdate":"2020-01-01T00:00:00",
            "enddate":"2020-01-31T00:00:00"
         }
      ]
   },
   {
      "staffid":"102",
      "firstname":"Mickey",
      "lastname":"Mouse",
      "appointments":[
         {
            "appointmentid":"203",
            "startdate":"2020-02-01T00:00:00",
            "enddate":"2020-04-29T23:00:00"
         },
         {
            "appointmentid":"204",
            "startdate":"2020-01-01T00:00:00",
            "enddate":"2020-01-31T00:00:00"
         }
      ]
   }
]

Я пытался использовать операцию копирования, но это производит плоские JSON структуры, а не вложенную структуру, описанную выше. У кого-нибудь есть способ сделать это, пожалуйста?

1 Ответ

1 голос
/ 31 марта 2020

Больше сценариев ios для JSON данные в АПД сглаживаются. Однако, согласно вашему описанию, вам нужно создать JSON, содержащий Json группу массивов по нескольким столбцам. Что-то вроде слияния appointment things по тем же staff.

Если мое понимание верно, то вы могли бы получить некоторые подсказки из моего предыдущего случая: Как разбить на под-документы с разделителем вложений? . Пожалуйста, обратитесь к моему тесту:

Имитируйте ваши данные выборки:

enter image description here

Используйте sql в sql db исходном наборе данных:

select app.staffid,app.firstname,app.lastname,
'appointments' = (
            SELECT
                appointmentid AS 'appointmentid',startdate as 'startdate',enddate as 'enddate'
            FROM
                dbo.appoint as app2
            where app2.staffid = app.staffid and
            app2.firstname = app.firstname and
            app2.lastname = app.lastname
            FOR JSON PATH)
from dbo.appoint as app
group by app.staffid,app.firstname,app.lastname
FOR JSON Path;

enter image description here

Вывод в хранилище BLOB-объектов:

enter image description here

Я пытаюсь проверить формат json, и он правильный.

enter image description here

...