Импорт из Azure Cosmos DB

В этой статье описывается, как использовать модуль Import Data (импорт данных ) в машинное обучение Azure Studio (классическая модель) для импорта данных из Azure Cosmos DB для использования в эксперименте машинного обучения.

Примечание

Применимо к: машинное обучение Studio (классическая модель)

Это содержимое относится только к Studio (классическая модель). Аналогичные модули перетаскивания были добавлены в конструктор Машинное обучение Azure. Дополнительные сведения см. в статье сравнение двух версий.

Azure Cosmos DB поддерживает хранилище базы данных NoSQL, используя гибкую модель данных. Преимущества использования API-интерфейсов SQL в этом хранилище данных для машинного обучения: быстрая и прогнозируемая производительность, автоматическое масштабирование, глобальное распределение и широкие возможности запросов.

В сочетании с базой данных SQL Azure этот параметр позволяет динамически фильтровать входящие DataSets.

Узнайте, как это работает: Узнайте о Azure Cosmos DB

  • Чтобы приступить к работе с машинным обучением, используя данные из Azure Cosmos DB, необходимо иметь доступ к существующей учетной записи Azure Cosmos DB, содержащей коллекцию связанных документов.

Примечание

Пользовательский интерфейс в Машинное обучение Azure Studio (классическая модель) по-прежнему использует имя DocumentDB во многих местах. Поэтому вы можете по-прежнему видеть ссылки на DocumentDB, даже если API был включен в Azure Cosmos DB.

Использование импорта данных с Azure Cosmos DB

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

Импорт данных с помощью мастера

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

  1. Добавьте модуль Импорт данных в эксперимент. Модуль можно найти в разделе входные и выходные данные.

  2. Щелкните запустить мастер импорта данных и следуйте инструкциям.

  3. После завершения настройки, чтобы фактически скопировать данные в эксперимент, щелкните модуль правой кнопкой мыши и выберите команду Выполнить выбранное.

Совет

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

Установка свойств вручную в модуле "Импорт данных"

Следующие шаги описывают настройку источника импорта вручную.

  1. Добавьте модуль Импорт данных в эксперимент. Этот модуль можно найти в категории входные и выходные данные .

  2. В качестве источника данных выберите Azure DocumentDB.

    Может потребоваться указать сведения о соединении для базы данных документов.

    Совет

    Найдите имя параметра в Машинное обучение Studio (классическая модель), чтобы изменить его позже. Изменение имени не повлияло на функции импорта.

  3. В поле URL-адрес конечной точки на портале Azure щелкните ключи и скопируйте содержимое поля URI в верхней части страницы.

  4. В поле Database ID (идентификатор базы данных) Вставьте имя используемой базы данных.

    Чтобы получить имя базы данных на портале Azure, щелкните Обозреватель документов. На этой панели можно просмотреть список баз данных и коллекций.

  5. В качестве ключа DocumentDB вставьте ключ доступа для учетной записи.

    Чтобы выбрать ключи, щелкните ключи, а затем скопируйте содержимое полей первичный ключ или вторичный ключ .

  6. В поле идентификатор коллекции введите имя коллекции, как показано в указанной базе данных CosmosDB.

  7. Определите SQL-запрос и условие фильтра для данных с помощью параметров SQL- запрос и параметры запроса SQL .

    Для SQL-запроса введите запрос, определяющий данные, которые необходимо получить из коллекции. Рекомендуется использовать Обозреватель запросов для предварительного создания и тестирования запросов CosmosDB.

    Для параметров запроса SQL укажите выражение в формате JSON, которое можно использовать для динамической фильтрации возвращаемых данных. Обычно при запуске эксперимента в составе веб-службы указывается фактическое значение параметра.

    При использовании параметра необходимо определить имя переменной фильтра как часть предложения WHERE, указанного в текстовом поле SQL-запрос .

    Если не указать критерий фильтра, по умолчанию устанавливается значение " {} " и возвращаются все записи.

    В разделе " Технические примечания " приведены примеры, известные проблемы и дополнительные советы по SQL запросы в CosmosDB.

  8. Если вы хотите повторно использовать существующие результаты, выберите параметр использовать кэшированные результаты .

    Если отменить выбор этого параметра, данные считываются из источника каждый раз при выполнении эксперимента независимо от того, совпадают ли данные.

    Машинное обучение Azure не удается сравнить кэшированные данные с данными в вашей учетной записи CosmosDB. Таким образом, невозможно выполнять добавочные обновления Машинное обучение Azure.

    Если требуется повторно импортировать данные только при изменении данных, необходимо определить логику в другом приложении, например в фабрике данных Azure. Дополнительные сведения см. в статье перемещение данных в Azure Cosmos DB с помощью фабрики данных Azure и обратно.

  9. Запустите эксперимент или выберите только модуль Импорт данных и нажмите кнопку Выполнить выбранное.

Результаты

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

Чтобы записать моментальный снимок этих данных в рабочую область Машинное обучение Azure в качестве набора данных, можно щелкнуть правой кнопкой мыши выходные данные модуля и выбрать Сохранить как набор данных. Однако это захватывает только те данные, которые доступны во время импорта. Если ожидается, что данные меняются часто, повторно запустите Импорт данных по мере необходимости.

Примеры

Подробное пошаговое руководство по использованию Azure Cosmos DB в качестве источника данных для машинного обучения см. в Коллекция решений ии Azure.

Технические примечания

Этот раздел содержит дополнительные параметры конфигурации и ответы на часто задаваемые вопросы.

Примеры простых и параметризованных запросов

Предположим, что вы хотите использовать только данные в вулканы с повышением прав под 10000 футов.

Простой запрос

Вставьте следующий запрос в текстовое поле SQL Query : Select * from volcanodb where volcanodb.Elevation < 10000

В этом случае значение критерия фильтра устанавливается равным " {} ", и возвращаются все записи.

Параметризованный запрос

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

  1. В текстовом поле SQL-запрос определите переменную, которая будет применена к Country полю как часть SQL-запроса:

    Select * from volcanodb where volcanodb.Country = @param1

  2. В текстовом поле Параметры запроса SQL укажите имя параметра и его значение в формате JSON следующим образом:

    {"@param1":"Turkey"}

Ресурсы

Если у вас нет хранилища документов, ознакомьтесь с этими статьями, чтобы приступить к работе.

Справка по синтаксису переноса данных и запросов

Чтобы получить примеры запросов к хранилищу данных JSON, скачайте таблицу Azure Cosmos DB запроса Памятка по.

Если необходимо передать содержимое в Azure Cosmos DB, рекомендуется использовать средство миграции Azure Cosmos DB. Он проверяет, передает и индексирует данные. Это средство поддерживает несколько источников, включая MongoDB, Amazon DynamoDB, HBase, SQL Server базы данных и CSV-файлы.

Использование запросов без схемы

Если данные являются постоянными и прогнозируемыми, можно использовать простой синтаксис, похожий на SQL, такой как SELECT * FROM <document collection> . Это называется запросом без схемы , так как вы не настроили точные атрибуты для возврата. Такой запрос возвратит все поля и все строки из указанной коллекции.

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

  1. Если атрибуты не указаны, модуль сканирует первую строку в базе данных CosmosDB.
  2. Модуль создает имена столбцов на основе атрибутов и определяет тип данных столбца, который должен быть основан на строке примера.
  3. Если в последующих строках содержатся новые или другие атрибуты, возникает ошибка времени выполнения.

Поэтому рекомендуется всегда указывать атрибуты и значения, возвращаемые из хранилища данных CosmosDB. Например, вместо использования SELECT * синтаксиса рекомендуется присвоить имя всем атрибутам, полученным в результате запроса, следующим образом:

SELECT MyTable.Gender, MyTable.Age, MyTable.Name FROM <document collection>

Параметры модуля

Следующая таблица содержит только те параметры модуля Импорт данных , которые применимы к параметру Azure Cosmos DB.

Имя Диапазон Type Обязательно По умолчанию Описание
Источник данных list HTTP обязательно нет Источником данных может быть HTTP, FTP, Anonymous HTTPS или FTPS, файл в хранилище BLOB-объектов Azure, Таблица Azure, база данных SQL Azure, таблица Hive, конечная точка OData или Azure Cosmos dB.
URL-адрес конечной точки any строка обязательно нет Укажите универсальный код ресурса (URI) для сервера Azure Cosmos DB
Идентификатор базы данных any строка обязательно нет Укажите имя базы данных Azure Cosmos DB
Ключ DocumentDB any SecureString обязательно нет Укажите допустимый ключ API для учетной записи Azure Cosmos DB
Идентификатор коллекции any строка обязательно нет Указание имени коллекции в базе данных Azure Cosmos DB
Запросы SQL any строка обязательно нет SQL-запрос, указывающий записи, возвращаемые из хранилища данных Azure Cosmos DB

Выходные данные

Имя Type Описание
Набор данных результатов Таблица данных Набор данных с загруженными данными

Исключения

Исключение Описание
Ошибка 0003 Исключение возникает, если один или несколько входных аргументов имеют значение NULL или пусты.
Ошибка 0029 Исключение возникает при передаче недопустимого универсального кода ресурса.
Ошибка 0002 Исключение возникает, если один или несколько параметров не удалось проанализировать или преобразовать из заданного типа в необходимый для целевого метода тип.
Ошибка 0048 Исключение возникает, когда не удается открыть файл.
Ошибка 0049 Исключение возникает, когда не удается проанализировать файл.

Список ошибок, относящихся к модулям студии (классическая версия), см. в разделе машинное обучение коды ошибок.

Список исключений API см. в разделе Машинное обучение REST API коды ошибок.

См. также раздел

Импорт данных
Экспорт данных
Импорт из URL-адреса через HTTP
Импорт из запроса Hive
Импорт из базы данных SQL Azure
Импорт из хранилища BLOB-объектов Azure
Импорт из поставщиков веб-каналов данных
Импорт из локальной базы данных SQL Server