Share via


Importar da consulta do Hive

Importante

O suporte para o Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. É recomendável fazer a transição para o Azure Machine Learning até essa data.

A partir de 1º de dezembro de 2021, você não poderá criar recursos do Machine Learning Studio (clássico). Até 31 de agosto de 2024, você pode continuar usando os recursos existentes do Machine Learning Studio (clássico).

A documentação do ML Studio (clássico) está sendo desativada e pode não ser atualizada no futuro.

Este artigo descreve como usar o módulo Importar Dados no Machine Learning Studio (clássico), para obter dados de clusters Hadoop e armazenamento distribuído hdInsight.

Observação

Aplica-se a: somente Machine Learning Studio (clássico)

Módulos semelhantes do tipo "arrastar e soltar" estão disponíveis no designer do Azure Machine Learning.

Importar dados do Hive é particularmente útil para carregar grandes conjuntos de dados ou se você quiser pré-processar os dados usando um trabalho MapReduce antes de carregar os dados em um experimento de machine learning.

Importante

Em 31 de julho de 2018, Microsoft Azure HDInsight versão 3.3 foi a última versão do HDInsight no Windows. Se você tiver clusters HDInsight no Windows 3.3 ou anterior, deverá migrar para o HDInsight no Linux (HDInsight versão 3.5 ou posterior). Consulte a seção Versões desativadas para obter mais informações sobre versões desativadas do HDInsight. Machine Learning Studio (clássico) dará suporte ao HDInsight no Linux em determinados cenários.

Suporte para HDInsight no Linux

Machine Learning Studio (clássico) tem suporte para HDInsight no Linux nos seguintes cenários:

  • Blob do Hadoop 2.7.3 (HDI 3.6) como padrão, secundário do ADLS
  • Blob do Spark 2.1.0 (HDI 3.6) como padrão, secundário do ADLS
  • Blob do Spark 2.2.0 (HDI 3.6) como padrão, secundário do ADLS
  • Blob spark 2.3.0 (HDI 3.6) como padrão, secundário do ADLS

Problemas conhecidos

Há vários problemas conhecidos com o uso do módulo Importar Dados para Consultas hive com o HDInsight no Linux:

Como importar dados de consultas do Hive

Usar o assistente

O módulo apresenta um novo assistente para ajudá-lo a escolher uma opção de armazenamento, selecionar entre assinaturas e contas existentes e configurar rapidamente todas as opções.

  1. Adicione o módulo Importar Dados ao experimento. Você pode encontrar o módulo no Studio (clássico), na categoria Entrada e Saída de Dados .

  2. Clique em Iniciar Assistente de Importação de Dados e siga os prompts.

  3. Quando a configuração for concluída, para realmente copiar os dados em seu experimento, clique com o botão direito do mouse no módulo e selecione Executar Selecionado.

Se você precisar editar uma conexão de dados existente, o assistente carregará todos os detalhes de configuração anteriores para que você não precise começar novamente do zero

Definir manualmente as propriedades de importação

As etapas a seguir descrevem como configurar manualmente a fonte de importação.

  1. Adicione o módulo Importar Dados ao experimento. Você pode encontrar o módulo no Studio (clássico), na categoria Entrada e Saída de Dados .

  2. Para a fonte de dados, selecione Consulta hive.

  3. Na caixa de texto de consulta do banco de dados hive , especifique os dados que você deseja ler usando o HiveQL.

    O HiveQL é uma linguagem de consulta semelhante a SQL que também pode ser usada para agregar dados e executar a filtragem de dados antes de adicionar os dados ao Machine Learning Studio (clássico). No entanto, a consulta hive deve retornar os dados em um formato tabular.

    Por exemplo, esta instrução é uma consulta válida do Hive:

    SELECT <column list> FROM table WHERE <expression>;

  4. Clique na caixa de texto URI do servidor HCatalog e digite o nome totalmente qualificado do cluster.

    Por exemplo, se você criou um cluster com o nome mycluster001, use este formato: https://mycluster001.azurehdinsight.net

  5. Clique na caixa de texto nome da conta de usuário do Hadoop e cole na conta de usuário do Hadoop que você usou quando provisionou o cluster.

  6. Clique na caixa de texto de senha da conta de usuário do Hadoop e digite as credenciais usadas quando provisionou o cluster.

    Para obter mais informações sobre nomenclatura e autenticação de cluster para Hadoop, consulte Provisionar clusters Hadoop no HDInsight.

  7. Para o local dos dados de saída, selecione a opção que indica onde os dados estão armazenados. Se os dados estiverem no HDFS (sistema de arquivos distribuído do Hadoop), ele deverá estar acessível por meio da mesma conta e senha que você acabou de inserir. Se os dados estiverem no Azure, forneça o local e as credenciais da conta de armazenamento.

    • HDFS: digite ou cole o URI do servidor HDFS. Certifique-se de usar o nome do cluster HDInsight sem o HTTPS:// prefixo.

    • Azure: para o nome da conta de armazenamento do Azure, digite o nome da conta do Azure. Por exemplo, se a URL completa da conta de armazenamento for https://myshared.blob.core.windows.net, você digitaria myshared.

    • Chave de armazenamento do Azure: copie e cole a chave fornecida para acessar a conta de armazenamento.

    • Para o nome do contêiner do Azure, especifique o contêiner padrão para o cluster. Consulte a seção Dicas para obter ajuda para descobrir qual contêiner usar.

  8. Selecione as opções Usar resultados armazenados em cache se você não espera que os dados mudem muito ou se quiser evitar recarregar os dados sempre que executar o experimento.

    Quando isso é selecionado, se não houver outras alterações nos parâmetros do módulo, o experimento carregará os dados na primeira vez em que o módulo for executado e, depois disso, usará uma versão armazenada em cache do conjunto de dados.

    Se você quiser recarregar o conjunto de dados em cada iteração do conjunto de dados do experimento, desmarque a opção Usar resultados armazenados em cache . Os resultados também são carregados novamente quando há alterações nos parâmetros de Importação de Dados.

  9. Execute o experimento.

Resultados

Ao concluir, clique no conjunto de dados de saída e selecione Visualizar para ver se os dados foram importados com êxito.

Se você receber erros, verifique se há valores ausentes, colunas vazias adicionais ou tipos de dados incompatíveis.

Exemplos

Para obter exemplos de como configurar um cluster HDInsight e usar consultas hive em experimentos de machine learning, consulte estes recursos:

Embora o Hive ofereça recursos superiores para muitos tipos de limpeza e pré-processamento de dados, após a importação, você pode achar essas ferramentas úteis para preparar os dados para modelagem:

  • Use os Metadados de Edição e outros módulos para alterar nomes de coluna, especificar quais colunas contêm rótulos e recursos e especificar o tipo de dados de coluna. Para obter exemplos, consulte Processamento de conjunto de dados.

  • Dados de texto pós-processo usando Python, para remover pontuação, sinalizar partes da fala e muito mais. Para obter exemplos, consulte Classificação de Texto.

  • Combine várias tabelas de diferentes fontes em uma única tabela de dados de treinamento. Para obter exemplos, consulte manutenção preditiva.

Observações técnicas

Esta seção contém detalhes de implementação, dicas e respostas para perguntas frequentes.

Como determinar o contêiner padrão

Se você criou seu cluster aceitando todos os padrões, um contêiner com o mesmo nome que o cluster foi criado ao mesmo tempo em que o cluster foi criado. Esse contêiner é o contêiner padrão para o cluster. No entanto, se você escolher a opção CUSTOM CREATE ao criar um cluster, você recebe duas opções para selecionar o contêiner padrão. A primeira opção é selecionar um contêiner existente. Quando você faz isso, esse contêiner se torna o contêiner de armazenamento padrão para o cluster. A segunda opção é Criar contêiner padrão. Quando você usa essa opção, o contêiner padrão tem o mesmo nome que o cluster.

Como chamar scripts python de uma consulta do Hive

Você pode usar o módulo Importar Dados para executar consultas do Hive que chamam UDFs do Python para processar registros.

Para obter mais informações, consulte Usar Python com Hive e Pig no HDInsight.

Evitar problemas de memória fora da memória ao usar o Hive para pré-processar dados

Ao usar consultas do Hive para extrair os registros de grandes fontes de dados, às vezes, a configuração padrão do cluster Hadoop pode ser muito limitada para permitir a execução da tarefa Mapear/Reduzir. Por exemplo, nestas Notas de Versão para HDInsight, as configurações padrão são definidas como um cluster de quatro nós.

Se os requisitos do trabalho MapReduce excederem a capacidade disponível, as consultas do Hive poderão retornar uma mensagem de erro Fora de Memória, o que faz com que a operação Importar Dados falhe. Se isso acontecer, você poderá alterar a alocação de memória padrão para consultas hive no módulo Importar Dados , conforme mostrado aqui:

Increase memory to maximum allowed on cluster

Neste exemplo, os comandos set mapreduce.map.memory.mb e set mapreduce.reduce.memory.mb foram usados para aumentar a quantidade de memória para o máximo permitido no cluster.

Perguntas comuns

Como posso evitar recarregar os mesmos dados desnecessariamente

Se os dados de origem forem alterados, você poderá atualizar o conjunto de dados e adicionar novos dados executando novamente os Dados de Importação. No entanto, se você não quiser ler novamente da origem sempre que executar o experimento, selecione a opção Usar resultados armazenados em cache para TRUE. Quando essa opção for definida como TRUE, o módulo verificará se o experimento foi executado anteriormente usando a mesma origem e as mesmas opções de entrada e, se uma execução anterior for encontrada, os dados no cache serão usados, em vez de recarregar os dados da origem.

Posso filtrar dados enquanto eles estão sendo lidos da origem

O módulo Importar Dados em si não dá suporte à filtragem, pois os dados estão sendo lidos.

Para filtrar dados antes de lê-los no Machine Learning Studio (clássico), use uma consulta hive ou um trabalho MapReduce para agregar e transformar os dados.

Também há várias opções para filtrar dados depois de serem carregados no Machine Learning Studio (clássico):

  • Use um script R personalizado para obter apenas os dados desejados.
  • Use o módulo Dividir Dados com uma expressão relativa ou uma expressão regular para isolar os dados desejados e, em seguida, salvá-los como um conjunto de dados.

Observação

Se você achar que você carregou dados mais do que o necessário, você pode substituir o conjunto de dados em cache lendo um novo conjunto de dados e salvando-o com o mesmo nome que os dados mais antigos e maiores.

Parâmetros do módulo

Nome Intervalo Type Padrão Descrição
Fonte de dados Lista Fonte de dados ou coletor Armazenamento do Blobs do Azure A fonte de dados pode ser HTTP, FTP, HTTPS anônimo ou FTPS, um arquivo no armazenamento de BLOB do Azure, uma tabela do Azure, um Banco de Dados SQL do Azure, um banco de dados SQL Server local, uma tabela do Hive ou um ponto de extremidade OData.
Consulta de banco de dados de Hive any StreamReader Consulta HQL
URI do servidor HCatalog any String Ponto de extremidade templeton
Nome da conta de usuário do Hadoop any String Nome de usuário do HDFS/HDInsight do Hadoop
Senha da conta de usuário do Hadoop any SecureString Senha do HDFS/HDInsight do Hadoop
Local de dados de saída any DataLocation HDFS Especificar HDFS ou Azure para outputDir
URI do servidor HDFS any String Ponto de extremidade rest do HDFS
Nome da conta de armazenamento do Azure any String Nome da conta de armazenamento do Azure
Chave de armazenamento do Azure any SecureString Chave de armazenamento do Azure
Nome do contêiner do Azure any String Nome do contêiner do Azure
Tipo de conteúdo de dados Lista (subconjunto) Conteúdo da URL OData Tipo de formato de dado
URL de origem any String URL para Power Query fonte de dados
Usar resultados armazenados em cache TRUE/FALSE Boolean FALSE descrição

Saídas

Nome Tipo Descrição
Conjunto de dados de resultados Tabela de Dados Conjunto de dados com dados baixados

Exceções

Exceção Descrição
Erro 0027 Uma exceção ocorre quando dois objetos precisam ser do mesmo tamanho, mas eles não são.
Erro 0003 Ocorrerá uma exceção se uma ou mais das entradas forem nulas ou estiverem vazias.
Erro 0029 Ocorrerá uma exceção quando um URI inválido for passado.
Erro 0030 Uma exceção ocorre quando não é possível baixar um arquivo.
Erro 0002 Ocorrerá uma exceção se um ou mais parâmetros não puderem ser analisados ou convertidos do tipo especificado para o tipo exigido pelo método de destino.
Erro 0009 Ocorrerá uma exceção se o nome da conta de armazenamento do Azure ou o nome do contêiner foi especificado incorretamente.
Erro 0048 Uma exceção ocorre quando não for possível abrir um arquivo.
Erro 0015 Ocorrerá uma exceção se houve uma falha na conexão de banco de dados.
Erro 0046 Ocorrerá uma exceção quando não for possível criar um diretório no caminho especificado.
Erro 0049 Uma exceção ocorre quando não for possível analisar um arquivo.

Para obter uma lista de erros específicos dos módulos do Studio (clássico), consulte Machine Learning códigos de erro.

Para obter uma lista de exceções de API, consulte Machine Learning códigos de erro da API REST.

Confira também

Importar dados
Exportar dados
Importar da URL da Web via HTTP
Importar do Banco de Dados SQL do Azure
Importar da Tabela do Azure
Importar do Armazenamento de Blobs do Azure
Importar de provedores de feed de dados
Importar de um Banco de dados do SQL Server local