Импорт из запроса Hive
Важно!
Поддержка Студии машинного обучения (классической) будет прекращена 31 августа 2024 г. До этой даты рекомендуется перейти на Машинное обучение Azure.
Начиная с 1 декабря 2021 года вы не сможете создавать новые ресурсы Студии машинного обучения (классической). Существующие ресурсы Студии машинного обучения (классическая версия) можно будет использовать до 31 августа 2024 г.
- См. сведения о перемещении проектов машинного обучения из ML Studio (классической) в Машинное обучение Azure.
- См. дополнительные сведения о Машинном обучении Azure.
Поддержка документации по ML Studio (классической) прекращается, а сама документация может не обновляться в будущем.
В этой статье описывается использование модуля импорта данных в Машинное обучение Studio (классическая модель) для получения данных из кластеров Hadoop и распределенного хранилища HDInsight.
Примечание
Область применения: только Машинное обучение Studio (классическая версия)
Подобные модули перетаскивания доступны в конструкторе машинного обучения Azure.
Импорт данных из Hive особенно полезен для загрузки больших наборов данных или для предварительной обработки данных с помощью задания MapReduce перед загрузкой данных в эксперимент машинного обучения.
Важно!
По состоянию на 31 июля 2018 г. Microsoft Azure HDInsight версии 3.3 была последней версией HDInsight на Windows. Если у вас есть кластеры HDInsight на Windows 3.3 или более ранних версий, необходимо выполнить миграцию в HDInsight в Linux (HDInsight версии 3.5 или более поздней). Дополнительные сведения об устаревших версиях HDInsight см. в разделе "Устаревшие версии". Машинное обучение Studio (классическая модель) поддерживает HDInsight в Linux в определенных сценариях.
Поддержка HDInsight в Linux
Машинное обучение Studio (классическая модель) поддерживает HDInsight в Linux в следующих сценариях:
- Blob-объект Hadoop 2.7.3 (HDI 3.6) по умолчанию, дополнительный ОБЪЕКТ ADLS
- Blob-объект Spark 2.1.0 (HDI 3.6) по умолчанию, дополнительный ОБЪЕКТ ADLS
- Blob-объект Spark 2.2.0 (HDI 3.6) по умолчанию, дополнительный ОБЪЕКТ ADLS
- Blob-объект Spark 2.3.0 (HDI 3.6) по умолчанию, дополнительный ОБЪЕКТ ADLS
Известные проблемы
Существует несколько известных проблем с использованием модуля импорта данных для запросов Hive с HDInsight в Linux:
- Enterprise пакет безопасности не поддерживается
- /tmp/hive not writeable
Импорт данных из запросов Hive
Использование мастера
Модуль содержит новый мастер, который поможет выбрать вариант хранения, выбрать один из существующих подписок и учетных записей, а также быстро настроить все параметры.
Добавьте модуль импорта данных в эксперимент. Модуль можно найти в Студии (классической) в категории входных и выходных данных .
Нажмите кнопку "Запустить мастер импорта данных" и следуйте инструкциям.
По завершении настройки, чтобы фактически скопировать данные в эксперимент, щелкните модуль правой кнопкой мыши и выберите "Выполнить выбранный".
Если вам нужно изменить существующее подключение к данным, мастер загружает все предыдущие сведения о конфигурации, чтобы вам не нужно было начинать заново с нуля.
Настройка свойств импорта вручную
Ниже описано, как вручную настроить источник импорта.
Добавьте модуль импорта данных в эксперимент. Модуль можно найти в Студии (классической) в категории входных и выходных данных .
Для источника данных выберите "Запрос Hive".
В текстовом поле запроса базы данных Hive укажите данные, которые требуется прочитать с помощью HiveQL.
HiveQL — это язык запросов, подобный SQL, который также можно использовать для агрегирования данных и фильтрации данных перед добавлением данных в Машинное обучение Studio (классическая модель). Однако запрос Hive должен возвращать данные в табличном формате.
Например, этот оператор является допустимым запросом Hive:
SELECT <column list> FROM table WHERE <expression>;
Щелкните текстовое поле URI сервера HCatalog и введите полное имя кластера.
Например, если вы создали кластер с именем mycluster001, используйте следующий формат:
https://mycluster001.azurehdinsight.net
Щелкните текстовое поле имени учетной записи пользователя Hadoop и вставьте учетную запись пользователя Hadoop, которая использовалась при подготовке кластера.
Щелкните текстовое поле пароля учетной записи пользователя Hadoop и введите учетные данные, используемые при подготовке кластера.
Дополнительные сведения об именовании кластеров и проверке подлинности для Hadoop см. в статье "Подготовка кластеров Hadoop в HDInsight".
В поле "Расположение выходных данных" выберите параметр, указывающий, где хранятся данные. Если данные хранятся в распределенной файловой системе Hadoop (HDFS), они должны быть доступны через ту же учетную запись и пароль, которые вы только что ввели. Если данные есть в Azure, укажите расположение и учетные данные учетной записи хранения.
HDFS: введите или вставьте URI сервера HDFS. Не забудьте использовать имя кластера HDInsight без
HTTPS://
префикса.Azure: для имени учетной записи хранения Azure введите имя учетной записи Azure. Например, если указан полный URL-адрес учетной записи
https://myshared.blob.core.windows.net
хранения, введитеmyshared
.Ключ хранилища Azure: скопируйте и вставьте ключ, предоставленный для доступа к учетной записи хранения.
Для имени контейнера Azure укажите контейнер по умолчанию для кластера. Сведения о том, какой контейнер следует использовать, см. в разделе Советы.
Выберите параметры "Использовать кэшированные результаты ", если вы не ожидаете, что данные изменятся много, или если вы хотите избежать перезагрузки данных при каждом запуске эксперимента.
Если этот параметр выбран, при отсутствии других изменений параметров модуля эксперимент загружает данные при первом запуске модуля, а затем использует кэшированную версию набора данных.
Если вы хотите повторно загрузить набор данных при каждой итерации набора данных эксперимента, отмените выбор параметра Use cached results (Использовать кэшированные результаты ). Результаты также загружаются повторно при изменении параметров импорта данных.
Запустите эксперимент.
Результаты
По завершении щелкните выходной набор данных и выберите "Визуализировать ", чтобы узнать, успешно ли импортированы данные.
При возникновении ошибок проверьте данные на наличие отсутствующих значений, дополнительных пустых столбцов или несовместимых типов данных.
Примеры
Примеры настройки кластера HDInsight и использования запросов Hive в экспериментах машинного обучения см. в следующих ресурсах:
В этой статье содержится подробное пошаговое руководство по созданию кластера, отправке данных и вызову данных из Студии (классической) с помощью Hive: advanced Analytics Process and Technology in Action: Using HDInsight Hadoop clusters.
В этом блоге MVP Vesa Tikkanen описываются некоторые проблемы и обходные пути при чтении очень больших файлов (распределенных запросов) из кластера HD в Linux: чтение Linux HDInsight Hive из Azure ML
Хотя Hive предлагает превосходные функции для многих видов очистки и предварительной обработки данных, после импорта эти средства могут оказаться полезными для подготовки данных для моделирования:
Изменение метаданных и других модулей позволяет изменить имена столбцов, указать, какие столбцы содержат метки и компоненты, а также указать тип данных столбца. Примеры см. в разделе "Обработка набора данных".
Текстовые данные после обработки с помощью Python для удаления пунктуации, флага частей речи и многого другого. Примеры см. в разделе "Классификация текста".
Объединение нескольких таблиц из разных источников в одну таблицу обучающих данных. Примеры см. в разделе прогнозного обслуживания.
Технические примечания
В этом разделе содержатся сведения о реализации, советы и ответы на часто задаваемые вопросы.
Как определить контейнер по умолчанию
Если вы создали кластер, принимая все значения по умолчанию, контейнер с тем же именем, что и кластер, был создан одновременно с кластером. Этот контейнер является контейнером по умолчанию для кластера. Однако если при создании кластера выбран параметр CUSTOM CREATE , вы можете выбрать контейнер по умолчанию двумя способами. Первый вариант — выбрать существующий контейнер. При этом этот контейнер становится контейнером хранилища по умолчанию для кластера. Вторым вариантом является создание контейнера по умолчанию. При использовании этого параметра контейнер по умолчанию имеет то же имя, что и кластер.
Вызов скриптов Python из запроса Hive
Модуль импорта данных можно использовать для выполнения запросов Hive, которые вызывают Python определяемых пользователем функций для обработки записей.
Дополнительные сведения см. в статье "Использование Python с Hive и Pig в HDInsight".
Предотвращение нехватки памяти при использовании Hive для предварительной обработки данных
При использовании запросов Hive для получения записей из источников данных большого размера иногда конфигурация по умолчанию для кластера Hadoop слишком ограничена для поддержки выполнения заданий MapReduce. Например, в этих заметках о выпуске для HDInsight параметры по умолчанию определяются как кластер с четырьмя узлами.
Если требования задания MapReduce превышают доступную емкость, запросы Hive могут возвращать сообщение об ошибке нехватки памяти, что приводит к сбою операции импорта данных. В этом случае можно изменить выделение памяти по умолчанию для запросов Hive в модуле импорта данных , как показано ниже.
В этом примере команды set mapreduce.map.memory.mb
и set mapreduce.reduce.memory.mb
используются для увеличения объема памяти до максимально допустимого в кластере.
Часто задаваемые вопросы
Как избежать повторной загрузки одних и того же данных без необходимости
При изменении исходных данных можно обновить набор данных и добавить новые данные, повторно запустив импорт данных. Однако если вы не хотите повторно считывать данные из источника при каждом запуске эксперимента, выберите параметр "Использовать кэшированные результаты " в значение TRUE. Если для этого параметра задано значение TRUE, модуль проверит, выполняется ли эксперимент ранее с использованием одного источника и одного и того же входного параметра, а при обнаружении предыдущего запуска используются данные в кэше вместо повторной загрузки данных из источника.
Можно ли фильтровать данные по мере чтения из источника
Сам модуль импорта данных не поддерживает фильтрацию по мере чтения данных.
Чтобы отфильтровать данные перед чтением в Машинное обучение Studio (классическая модель), используйте запрос Hive или задание MapReduce для агрегирования и преобразования данных.
После загрузки данных в Машинное обучение Studio (классическая модель) также существует несколько вариантов фильтрации данных.
- Используйте пользовательский скрипт R, чтобы получить только нужные данные.
- Используйте модуль split Data с относительным выражением или регулярным выражением, чтобы изолировать нужные данные, а затем сохранить его в виде набора данных.
Примечание
Если вы загрузили больше данных, чем требуется, вы можете перезаписать кэшированный набор данных. Для этого необходимо считать новый набор данных и сохранить его под именем, идентичным имени большего, ранее записанного набора данных.
Параметры модуля
Имя | Диапазон | Тип | По умолчанию | Описание |
---|---|---|---|---|
Источник данных | Список | Источник данных или приемник | хранилище BLOB-объектов Azure | Источником данных может быть HTTP, FTP, анонимный ПРОТОКОЛ HTTPS или FTPS, файл в хранилище BLOB-объектов Azure, таблица Azure, База данных SQL Azure, локальная база данных SQL Server, таблица Hive или конечная точка OData. |
Запрос базы данных Hive | any | StreamReader | Запрос HQL | |
URI сервера HCatalog | any | Строка | Конечная точка Templeton | |
Имя учетной записи пользователя Hadoop | any | Строка | Имя пользователя Hadoop HDFS/HDInsight | |
Пароль учетной записи пользователя Hadoop | any | SecureString | Пароль Hadoop HDFS/HDInsight | |
Расположение выходных данных | any | DataLocation | HDFS | Указание HDFS или Azure для outputDir |
URI HDFS-сервера | any | Строка | Конечная точка rest HDFS | |
Имя учетной записи хранения Azure | any | Строка | Имя учетной записи хранения Azure | |
Ключ к хранилищу Azure | any | SecureString | Ключ к хранилищу Azure | |
Имя контейнера Azure | any | Строка | Имя контейнера Azure | |
Тип содержимого данных | Список (подмножество) | Содержимое URL-адреса | OData | Тип формата данных |
URL-адрес источника | any | Строка | URL-адрес для источника данных Power Query | |
Использование кэшированных результатов | True или false | Логическое | FALSE | description |
Выходные данные
Имя | Тип | Описание |
---|---|---|
Набор данных результатов | Таблица данных | Набор данных с загруженными данными |
Исключения
Исключение | Описание |
---|---|
Ошибка 0027 | Исключение возникает, если два объекта должны быть одинакового размера, но это не так. |
Ошибка 0003 | Исключение возникает, если один или несколько входных аргументов имеют значение NULL или пусты. |
Ошибка 0029 | Исключение возникает при передаче недопустимого универсального кода ресурса. |
Ошибка 0030 | Исключение возникает, если невозможно скачать файл. |
Ошибка 0002 | Исключение возникает, если один или несколько параметров не удалось проанализировать или преобразовать из заданного типа в необходимый для целевого метода тип. |
Ошибка 0009 | Исключение возникает, если имя учетной записи хранилища Azure или имя контейнера указаны неверно. |
Ошибка 0048 | Исключение возникает, когда не удается открыть файл. |
Ошибка 0015 | Исключение возникает, если произошел сбой подключения к базе данных. |
Ошибка 0046 | Исключение возникает, если не удается создать каталог по указанному пути. |
Ошибка 0049 | Исключение возникает, когда не удается проанализировать файл. |
Список ошибок, относящихся к модулям Студии (классическая модель), см. в разделе Машинное обучение коды ошибок.
Список исключений API см. в разделе Машинное обучение коды ошибок REST API.
См. также раздел
Импорт данных
Экспорт данных
Импорт с URL-адреса в Интернете с использованием HTTP
Импорт из Базы данных SQL Azure
Импорт из таблицы Azure
Импорт из Хранилища BLOB-объектов Azure
Импорт из поставщиков веб-каналов данных
Импорт из локальной базы данных SQL Server