Как преобразовать неструктурированный файл json из Azure cosmos Db в структурированную таблицу? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть файл json с динамической схемой в Azure Cosmos Db (Mongo API).Я хочу прочитать этот файл, преобразовать его в структурированную таблицу sql и сохранить в хранилище данных SQL Azure.Как мне этого добиться?

Я уже пытался читать неструктурированные данные из фабрики данных Azure с помощью операции копирования, но кажется, что ADF не может читать неструктурированные данные.

Пример данных из моей базы данных Cosmos: -

{
    "name" : "Dren",
    "details" : [
        {
            "name" : "Vinod",
            "relation" : "Father",
            "age" : 40,
            "country" : "India",
            "ph1" : "+91-9492918762",
            "ph2" : "+91-8769187451"
        },
        {
            "name" : "Den",
            "relation" : "Brother",
            "age" : 10,
            "country" : "India"
        },
        {
            "name" : "Vinita",
            "relation" : "Mother",
            "age" : 40,
            "country" : "India",
            "ph1" : "+91-9103842782"
        } ]
}

Я ожидаю значения NULL для тех столбцов, значение которых не существует в файле json.

1 Ответ

0 голосов
/ 29 апреля 2019

Как вы заметили, фабрика данных не манипулирует неструктурированными данными. Relequestual правильно предположил, что потребуется сторонний преобразователь данных, поскольку хранилище данных Azure также не предлагает манипулирование JSON. Есть несколько способов сделать это из фабрики данных. Оба связаны с вызовом другой службы для обработки сопоставления для вас.

1) Пусть конвейер вызовет функцию Azure для выполнения работы. Конвейер не сможет передавать данные в функцию и из нее - ему нужно будет читать из Cosmos и записывать в Azure DW самостоятельно. Между ними вы можете выполнять отображение на любом языке, на котором вы пишете функцию. Плюс в том, что они довольно просты в написании, но ваша способность к масштабированию будет несколько ограничена количеством данных, которые ваша функция может обработать в течение нескольких минут.

2) Выполните промежуточный переход в Azure Data Lake . Вы должны скопировать данные в учетную запись хранения (есть несколько вариантов работы с Data Lake Analytics), вызвать задание USQL, а затем загрузить результаты в Azure DW. Недостатком этого является то, что вы добавляете дополнительное чтение / запись к учетной записи хранения. Тем не менее, он позволяет вам масштабировать столько, сколько вам нужно, исходя из вашего объема. Он также использует язык, похожий на SQL, если вы предпочитаете это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...