Поделиться через


Импорт из Хранилища BLOB-объектов Azure

Важно!

Поддержка Студии машинного обучения (классической) будет прекращена 31 августа 2024 г. До этой даты рекомендуется перейти на Машинное обучение Azure.

Начиная с 1 декабря 2021 года вы не сможете создавать новые ресурсы Студии машинного обучения (классической). Существующие ресурсы Студии машинного обучения (классическая версия) можно будет использовать до 31 августа 2024 г.

Поддержка документации по ML Studio (классической) прекращается, а сама документация может не обновляться в будущем.

в этом разделе описывается использование модуля импорт данных в Машинное обучение Studio (классическая модель) для чтения данных из Хранилище BLOB-объектов Azure, чтобы можно было использовать данные в эксперименте машинного обучения.

Примечание

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

Подобные модули перетаскивания доступны в конструкторе машинного обучения Azure.

Служба BLOB-объектов Azure предназначена для хранения больших объемов данных, включая двоичные данные. Доступ к BLOB-объектам Azure можно получить из любого места с помощью протокола HTTP или HTTPS. В зависимости от типа хранилища BLOB-объектов может потребоваться проверка подлинности.

  • Общедоступные большие двоичные объекты могут быть доступны любому пользователю или пользователям с URL-адресом SAS.
  • Для частных BLOB-объектов требуется имя входа и учетные данные.

Для импорта из хранилища BLOB-объектов необходимо, чтобы данные хранились в больших двоичных объектах, которые используют формат блочного BLOB-объекта . Файлы, хранящиеся в большом двоичном объекте, должны использовать форматы с разделителями-запятыми (CSV) или с разделителями-табуляциями (TSV). При чтении файла записи и все применимые заголовки атрибутов загружаются в память в виде строк в качестве набора данных.

Примечание

модуль импорта данных не поддерживает подключение к учетной записи Хранилище BLOB-объектов Azure, если включен параметр "требуется безопасное перемещение".

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

Совет

Нужно импортировать данные в формате, который не поддерживается? Можно использовать Python или R. см. пример в Коллекция решений ИИ Azure: загрузка нетекстового файла из Хранилище BLOB-объектов Azure

Импорт данных из больших двоичных объектов Azure

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

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

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

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

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

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

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

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

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

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

  2. в качестве источника данныхвыберите Хранилище BLOB-объектов Azure.

  3. В поле Тип проверки подлинностивыберите общедоступный (URL-адрес SAS) , если известно, что сведения предоставлены в качестве общедоступного источника данных. URL-адрес SAS — это ограниченный по времени URL-адрес для общедоступного доступа, который можно создать с помощью служебной программы хранилища Azure.

    В противном случае выберите учетная запись.

  4. Если данные находятся в общедоступном большом двоичном объекте, доступ к которому можно получить с помощью URL-адреса SAS, дополнительные учетные данные не требуются, так как строка URL-адреса содержит все сведения, необходимые для загрузки и проверки подлинности.

    В поле URI введите или вставьте полный URI, определяющий учетную запись и общедоступный большой двоичный объект.

    Примечание

    На странице, доступной через URL-адрес SAS, данные могут храниться только в следующих форматах: CSV, TSV и ARFF.

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

    • В поле имя учетной записивведите или вставьте имя учетной записи, содержащей большой двоичный объект, к которому требуется получить доступ.

      Например, если полный URL-адрес учетной записи хранения — https://myshared.blob.core.windows.net , введите myshared .

    • В поле ключ учетной записивставьте ключ доступа к хранилищу, связанный с учетной записью.

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

  6. В поле путь к контейнеру, каталогу или большому двоичномуобъекту введите имя конкретного большого двоичного объекта, который требуется получить.

    Например, если вы перегрузили файл с именем data01.csv в контейнер траинингдата в учетной записи с именем мимлдата, полный URL-адрес файла будет следующим: https://mymldata.blob.core.windows.net/trainingdata/data01.txt .

    Таким образом, в поле путь к контейнеру, каталогу или BLOB-объектуследует ввести следующее: trainingdata/data01.csv

    Чтобы импортировать несколько файлов, можно использовать подстановочные знаки * (звездочки) или ? (вопросительный знак).

    Например, если контейнер trainingdata содержит несколько файлов с совместимым форматом, можно использовать следующую спецификацию для чтения всех файлов, начиная с data , и объединить их в один набор данных:

    trainingdata/data*.csv

    В именах контейнеров нельзя использовать подстановочные знаки. Если необходимо импортировать файлы из нескольких контейнеров, используйте отдельный экземпляр модуля Import Data для каждого контейнера, а затем объедините наборы данных с помощью модуля Добавление строк .

    Примечание

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

  7. для параметра формат файла Blob-объектавыберите параметр, указывающий формат данных, хранящихся в большом двоичном объекте, чтобы Машинное обучение может обрабатывать данные соответствующим образом. Поддерживаются следующие форматы:

    • CSV: значения с разделителями-запятыми (csv) — это формат хранения по умолчанию для экспорта и импорта файлов в Машинное обучение. Если данные уже содержат строку заголовка, убедитесь, что выбран параметр, файл содержит строку заголовка, или заголовок будет рассматриваться как строка данных.

      дополнительные сведения о формате CSV, используемом в Машинное обучение, см. в разделе [преобразование в CSV] (convert-to-csv.md

    • TSV: значения с разделителями-табуляциями (TSV) — это формат, используемый многими инструментами машинного обучения. Если данные уже содержат строку заголовка, убедитесь, что выбран параметр, файл содержит строку заголовка, или заголовок будет рассматриваться как строка данных.

      дополнительные сведения о формате TSV, используемом в Машинное обучение, см. в разделе Convert to TSV.

    • ARFF. Этот формат поддерживает импорт файлов в формате, используемом набором инструментов weka. Дополнительные сведения см. в разделе Convert to ARFF.

    • CSV с заданной кодировкой: Используйте этот параметр для CSV-файлов, которые могли быть подготовлены с помощью другого разделителя полей, или если в источнике может использоваться другая кодировка символов, чем в кодировке UTF – 8. Этот формат не поддерживается для файлов, хранящихся в URL-адресе SAS.

    • Excel: используйте этот параметр для чтения данных из книг Excel, хранящихся в Хранилище BLOB-объектов Azure. формат Excel не поддерживается для файлов, хранящихся в URL-адресе SAS.

  8. Для CSV-файлов с особыми кодировками задайте следующие дополнительные параметры для управления соответствующим импортом символов:

    • Формат разделителя-запятой: выберите из списка общих символов, используемых в качестве разделителей полей, включая символ табуляции в виде запятой , и точку с запятой ; .

    • Формат кодировки: выберите кодировку, используемую файлом, который требуется считать. Список поддерживаемых кодировок см. в разделе Технические примечания .

    • Файл содержит строку заголовка: Выберите этот параметр, если данные уже содержат строку заголовка. В противном случае заголовок импортируется как строка данных.

  9. для Excel файлов после указания учетной записи и контейнера, в котором хранится файл Excel, необходимо указать Excel формат и диапазон или имя таблицы, используя следующие параметры:

    • Excel формат данных: укажите, находятся ли данные в диапазоне листа Excel или в таблице Excel.

    • Excel листа или внедренной таблицы: если выбрать параметр лист Excel , укажите имя листа (имя вкладки) или таблицу, внедренную в книгу. Все данные с листа считываются; нельзя указать диапазон ячеек. если выбран параметр таблицы Excel , необходимо получить имя таблицы, а не имя листа, даже если на листе имеется только одна таблица. Чтобы просмотреть имя таблицы, щелкните внутри таблицы, а затем просмотрите свойство имя таблицы на вкладке средства таблицы .

  10. Запустите эксперимент.

Примеры

сведения об использовании данных из Хранилище BLOB-объектов Azure в экспериментах машинного обучения см. в коллекции Azure:

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

В этом разделе содержатся сведения и советы относительно реализации, а также ответы на часто задаваемые вопросы.

Часто задаваемые вопросы

Существует ли способ автоматизации импорта данных?

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

Для автоматизации выполнения эксперимента обычно требуется создание веб-службы, которую затем можно запустить с помощью планировщика задач, PowerShell или другого пользовательского кода.

Почему при попытке чтения входных данных из существующего большого двоичного объекта возникает ошибка?

Существует несколько возможных проблем.

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

неподдерживаемый формат: при чтении из Хранилище BLOB-объектов Azure в настоящее время Машинное обучение требует, чтобы большой двоичный объект использовал формат блочного большого двоичного объекта , что позволяет эффективно передавать большие двоичные объекты. Например, если отправить CSV-файл в хранилище BLOB-объектов, файл будет храниться как блочный большой двоичный объект. Однако при программном создании файла BLOB-объекта может быть создан другой тип большого двоичного объекта, например тип Аппендблоб, который не поддерживается.

В качестве обходного решения рекомендуется использовать тип блочного BLOB-объекта .

Важно!

После создания большого двоичного объекта его тип изменить нельзя.

Дополнительные сведения см. в разделе понятие блочных BLOB-объектов, Добавление больших двоичных объектов и страничных больших двоичных объектов.

Неподдерживаемый тип учетной записи. модули импорта и экспорта могут считывать и записывать данные только из учетных записей хранения Azure, созданных с помощью классической модели развертывания. иными словами, новый тип учетной записи Хранилище BLOB-объектов Azure, предлагающий горячий и холодный уровни доступа к хранилищу, пока не поддерживается. Как правило, все учетные записи хранения Azure, которые могли быть созданы до того, как этот параметр службы стали доступны, не будут затронуты.

если необходимо создать новую учетную запись для использования с Машинное обучение, выберите классическая для модели развертыванияили используйте Resource manager и для типа учетной записивыберите общее назначение , а не хранилище Blob-объектов.

Как избежать повторной загрузки одних и тех же данных?

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

Можно ли фильтровать данные по мере их считывания из источника?

Модуль импорта данных не поддерживает фильтрацию по мере считывания данных.

после загрузки данных в Машинное обучение Studio (классическая модель) можно изменить данные с помощью следующих средств:

  • Используйте пользовательский скрипт R для фильтрации или преобразования данных.

  • Используйте модуль Split Data (разделение данных ) с относительным выражением или регулярным выражением, чтобы изолировать нужные данные, а затем сохраните их как набор данных.

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

Почему процесс импорта добавляет лишнюю строку в конец набора данных при обнаружении конечной новой строки?

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

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

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

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

Что происходит при импорте данных, загруженных из разных географических регионов?

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

Почему некоторые символы в заголовке исходного файла отображаются неправильно?

Машинное обучение обычно поддерживает кодировку UTF-8. Если исходный файл использует другой тип кодирования, символы могут быть неправильно импортированы.

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

Существуют ли недопустимые символы или символы, измененные во время импорта?

Если данные атрибутов содержат кавычки или escape-последовательности символов, они будут обработаны с помощью правил для таких символов в Microsoft Excel. Все остальные символы обрабатываются с использованием следующих спецификаций в качестве рекомендации: RFC 4180.

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

  • Оцените 10 минут или больше за ГБ данных.
  • чтобы оптимизировать производительность, используйте учетную запись хранения в том же регионе, который использует служба ML Azure.

Для передачи больших файлов (до 10 ГБ) существует несколько подходов:

  • Используйте сжатый ZIP-файл. наборы данных можно отправить в Azure ML Studio (классическая модель) в формате zip, а затем использовать модуль распаковки наборов данных для распаковки и сохранения dataset. Архивные наборы данных также можно распаковать с помощью модуля выполнить сценарий R , но производительность может быть ограничена.

  • Используйте быструю служебную программу Azure, например AzCopy. разработайте данные для Microsoft Azure служба хранилища больших двоичных объектов с помощью служебной программы, такой как AzCopy. Затем с помощью модуля Импорт данных импортируйте данные из хранилища BLOB-объектов в класс Studio (классическая модель).

    Например, в следующем коде показан синтаксис AzCopy для записи в хранилище BLOB-объектов.

    cd "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy"
    .\AzCopy.exe /Source:C:\LocalFolder /Dest:https://mystorage.blob.core.windows.net/mycontainer /DestKey:MyStorageAccountKey /Pattern:myfile.csv
    

Файл CSV импортирован с использованием указанной кодировки, но при использовании параметра для визуализации текст отображается неправильно. Почему?

для передаваемых наборов данных Машинное обучение обычно поддерживает только UTF-8. Однако модуль Импорт данных поддерживает дополнительные форматы кодирования. Поэтому после импорта файла с использованием одного из этих форматов может оказаться, что символы отображаются неправильно. Решение заключается в преобразовании кодировки в UTF-8 с помощью одного из следующих методов:

  • Сохраните импортированные данные в виде набора данных. (Использование сохраненного набора данных вместо CSV-данных также может повысить производительность.)

  • Если вы используете набор данных в модуле выполнить сценарий R , вы можете применить правильный код, используя следующий сценарий:

    dataset <- maml.mapInputPort(1)
    Encoding(dataset$city) <- "UTF-8"
    maml.mapOutputPort("dataset")
    

    Затем можно использовать визуализацию на выходе модуля выполнить сценарий R и убедиться, что символы отображаются правильно.

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

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

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

Пользовательское кодирование CSV-файлов

Ранние версии модуля импорта данных не поддерживали некоторые типы ДОПУСТИМЫх CSV-файлов. Например, в данных, экспортированных из Excel, иногда содержались символы, которые не позволяли правильно проанализировать файл.

Для поддержки более широкого диапазона разделителей и форматов символов Импорт данных теперь поддерживает выбор разделителя и формата кодирования. Использование параметра CSV с кодировкой обеспечивает более надежный и эффективный результат анализа CSV-файла.

Можно использовать следующие кодировки символов:

Тип Кодирование
Юникод Юникод (UTF-8)

Юникод

Юникод (UTF-32)

Юникод (UTF-7)
CJYK Китайская традиционная (Big5)

Китайская, упрощенное письмо (GB2312)

Китайская, упрощенное письмо (Mac)

Китайская, упрощенное письмо (GB2312-80)

Китайская, упрощенное письмо (ISO-2022)

Китайская упрощенная (GB18030)

Японская (JIS)

Корейская (ISO)

Корейская (Mac)
Другое Западно-европейская (Windows)

Западноевропейская (ISO)

Иврит (ISO-Visual)

US ASCII

Совет

После импорта CSV рекомендуется сохранить импортированные файлы в виде набора данных, чтобы импортированные данные применялись в эксперименте с кодировкой UTF-8.

Вывод типа данных в форматах CSV и TSV

когда модуль импорта данных загружает данные из файла CSV или TSV в Хранилище BLOB-объектов Azure, средство подбора типов выполняет поиск по категориям или числовым данным в исходном файле и представляет обнаруженный тип в метаданных для нового набора данных.

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

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

Общие параметры

Имя Диапазон Тип По умолчанию Описание
Источник данных Список Источник данных или приемник хранилище BLOB-объектов Azure источником данных может быть HTTP, FTP, anonymous HTTPS или FTPS, файл в хранилище BLOB-объектов azure, таблица Azure, База данных SQL Azure, локальная SQL Server база данных, таблица Hive или конечная точка OData.
Authentication type (Тип проверки подлинности) PublicOrSas и учетная запись Строка Учетная запись Укажите, находятся ли данные в общедоступном контейнере, доступном через URL-адрес SAS, или в частной учетной записи хранения, которая требует проверки подлинности для доступа.
Использование кэшированных результатов True или false Логическое FALSE Выберите, чтобы избежать загрузки данных между запусками

Общедоступные или SAS-общедоступные варианты хранения

Имя Диапазон Тип По умолчанию Описание
URI any Строка нет Конечная точка RESTful HDFS
Формат файла ARFF, CSV или TSV Строка CSV Выберите один из поддерживаемых форматов
URI содержит строку заголовка Логическое True или false true Значение true, если файл содержит строку заголовка; Если значение равно false, то в качестве заголовков столбцов используются первая строка данных

Учетная запись — параметры частного хранилища

Имя Диапазон Тип По умолчанию Описание
Имя учетной записи any Строка нет Введите имя учетной записи хранения
Ключ учетной записи any SecureString нет Вставьте ключ учетной записи
Путь к контейнеру, каталогу или большому двоичному объекту any Строка Н/Д Введите имя контейнера или каталога
Blob file format (Формат файла большого двоичного объекта) ARFF, CSV или TSV Строка CSV Выберите один из поддерживаемых форматов
Файл содержит строку заголовков any Строка True Имя учетной записи хранения Azure

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

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

Исключения

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

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

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

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

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