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).
- Confira informações sobre como mover projetos de machine learning do ML Studio (clássico) para o Azure Machine Learning.
- Saiba mais sobre o Azure Machine Learning.
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:
- Não há suporte para Enterprise Pacote de Segurança
- /tmp/hive não gravável
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.
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 .
Clique em Iniciar Assistente de Importação de Dados e siga os prompts.
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.
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 .
Para a fonte de dados, selecione Consulta hive.
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>;
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
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.
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.
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ê digitariamyshared
.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.
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.
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:
Este artigo fornece um passo a passo detalhado de como criar um cluster, carregar dados e chamar os dados do Studio (clássico) usando o Hive: Advanced Analytics Process and Technology in Action: Using HDInsight Hadoop clusters.
Este blog da MVP Vesa Tikkanen descreve alguns problemas e soluções alternativas ao ler arquivos muito grandes (consultas distribuídas) de um cluster HD no Linux: Lendo o Hive do Linux HDInsight do Azure ML
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:
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