Как перенести данные из документа в CosmosDB в базу данных SQL Azure? - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь настроить систему, в которой моя функция Azure запускается (Cosmos DB Trigger) каждый раз, когда в моем хранилище Cosmos DB появляется новый файл, и моя цель - получить входящие данные из файла и отправитьэто к моему SQL Azure, чтобы я мог сделать живой отчет Power BI на основе этого.У меня есть несколько вопросов по поводу всего процесса, и я благодарен, если кто-нибудь может помочь, потому что я озадачен количеством информации (актуальной и неактуальной), которую я читаю в документации Microsoft.

  1. Нужно литаблица в моей базе данных SQL Azure, соответствующая данным json?Например, я должен подготовить шаблон таблицы или преобразование происходит автоматически?
  2. Для такого сценария, когда я выполняю свою функцию Azure, требуется ли привязка ввода / вывода?Мое собственное понимание состояло в том, что мне не понадобится какое-либо связывание, но я не уверен.
  3. Могу ли я выбрать какие данные для передачи в SQL из документа?Или я могу только сказать, что все данные должны быть переданы в базу данных SQL?
  4. Что такое команда / код для такой задачи?например, если я хочу сказать, перенести эти данные (или весь документ, предоставив его в виде файла json) в базу данных SQL.
  5. Я не нашел никакой документации для этой конкретной задачи, поэтому, если кто-нибудь из вас может выслать мне ссылку на это, я был бы также признателен.
  6. Чтобы функция Azure находилась между базой данных Cosmos и базой данных SQL Azure, мне, очевидно, нужно, чтобы имя коллекции / коллекции было включено в мою настройку функции Azure, но я понятия не имею, что это такое.это что-то создавать при создании Cosmos DB на Azure?

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

Заранее спасибо.

1 Ответ

0 голосов
/ 26 ноября 2018

Ваше описание подробное, я попытался ответить на все ваши вопросы.

1. Мне нужно создать таблицу в базе данных SQL Azure, соответствующую данным json?Например, я должен сделать шаблон таблицы готовым или преобразование происходит автоматически?

Да, вам нужно создать таблицу, соответствующую формату json, в коллекции БД космос. Это не происходит автоматически.

2. Для такого сценария, когда я выполняю свою функцию Azure, нужно ли привязывать ввод / вывод?Мое собственное понимание состояло в том, что мне не понадобится какая-либо привязка, но я не уверен.

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

3.Могу ли я выбрать, какие данные для передачи в SQL из документа?Или я могу только сказать, что все данные должны быть перенесены в базу данных SQL?

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

a. Используйте функцию Azure Cosmos Db Trigger для отслеживания документов, которые добавляются или обновляются в вашей коллекции.

b. В приведенной выше функции вам необходимо собрать входящие документы, а затем использовать cosmos db sdk длясохраните их в новую коллекцию. (назовите ее временной коллекцией сейчас)

c. Здесь дело доходит до того, что используйте операцию копирования фабрики данных Azure для копирования данных из временной коллекции в базу данных sql.обратитесь к этим документам:

https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-cosmos-db

https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-sql-database

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

4. Какая команда / код для такой задачи?например, если я хочу сказать, перенести эти данные (или весь документ, предоставив его в виде файла json) в базу данных SQL.

Операция копирования фабрики данных Azure может быть вызвана с помощью sdk или powershell.Пожалуйста, обратитесь к этому документ .

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

Найдите ответ в приведенных выше представлениях.

6.Для того, чтобы функция Azure находилась между Cosmos DB и базой данных SQL Azure, мне, очевидно, нужноимя коллекции / коллекции, которая будет включена в мою настройку функции Azure, но я понятия не имею, что это такое, это что-то, что нужно создать при создании Cosmos DB в Azure?

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

...