Share via


Importar do Armazenamento de Blobs do Azure

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 tópico descreve como usar o módulo Importar Dados no Machine Learning Studio (clássico) para ler dados do Armazenamento de Blobs do Azure, para que você possa usar os dados em um experimento de machine learning.

Observação

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

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

O Serviço blob do Azure é para armazenar grandes quantidades de dados, incluindo dados binários. Os blobs do Azure podem ser acessados de qualquer lugar, usando HTTP ou HTTPS. A autenticação pode ser necessária dependendo do tipo de armazenamento de blob.

  • Blobs públicos podem ser acessados por qualquer pessoa ou por usuários que têm uma URL SAS.
  • Blobs privados exigem um logon e credenciais.

A importação do armazenamento de blobs exige que os dados sejam armazenados em blobs que usam o formato de blob de blocos. Os arquivos armazenados no blob devem usar formatos CSV (separados por vírgula) ou TSV (separados por tabulação). Quando você lê o arquivo, os registros e quaisquer títulos de atributo aplicáveis são carregados como linhas na memória como um conjuntos de dados.

Observação

O módulo Importar dados não dá suporte à conexão Armazenamento de Blobs do Azure conta se a opção "Transferência Segura Necessária" estiver habilitada.

Para outras restrições sobre os tipos de armazenamento de blob com suporte para uso com Machine Learning, consulte a seção Notas técnicas.

Dica

Precisa importar dados em um formato sem suporte? Você pode usar Python ou R. Consulte este exemplo no Galeria de IA do Azure: Carregar arquivo sem texto do Armazenamento de Blobs do Azure

Como importar dados de blobs do Azure

É recomendável que você faça o perfil dos dados antes da importação para garantir que o esquema seja o esperado. O processo de importação examina algumas linhas de cabeça para determinar o esquema, mas as linhas posteriores podem conter colunas extras ou dados que causam erros.

Usar o Assistente de Importação de Dados

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 seu 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 iniciar novamente do zero.

Definir propriedades manualmente no módulo Importar Dados

As etapas a seguir descrevem como configurar manualmente a origem da importação.

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

  2. Para Fonte de dados, selecione Armazenamento de Blobs do Azure.

  3. Para Tipo de autenticação, escolha Público (URL SAS) se você sabe que as informações foram fornecidas como uma fonte de dados pública. Uma URL de SAS é uma URL com limite de tempo para acesso público que você pode gerar usando um utilitário de armazenamento do Azure.

    Caso contrário, escolha Conta.

  4. Se os dados estão em um blob público que pode ser acessado usando uma URL SAS, você não precisa de credenciais adicionais porque a cadeia de caracteres de URL contém todas as informações necessárias para download e autenticação.

    No campo URI , digite ou colar o URI completo que define a conta e o blob público.

    Observação

    Em uma página acessível por meio da URL de SAS, os dados podem ser armazenados usando apenas estes formatos: CSV, TSV e ARFF.

  5. Se os dados estão em uma conta privada , você deve fornecer credenciais, incluindo o nome da conta e a chave.

    • Em Nome da conta, digite ou colar o nome da conta que contém o blob que você deseja acessar.

      Por exemplo, se a URL completa da conta de armazenamento for https://myshared.blob.core.windows.net, digite myshared.

    • Para Chave de conta, colar a chave de acesso de armazenamento associada à conta.

      Se você não conhece a chave de acesso, consulte a seção "Gerenciar suas contas de armazenamento do Azure" neste artigo: Sobre as contas de Armazenamento Azure.

  6. Em Caminho para contêiner, diretório ou blob, digite o nome do blob específico que você deseja recuperar.

    Por exemplo, se você carregou um arquivo chamadodata01.csv para os dados de treinamento de contêiner em uma conta chamada mymldata, a URL completa do arquivo seria: https://mymldata.blob.core.windows.net/trainingdata/data01.txt.

    Portanto, no campo Caminho para contêiner, diretório ou blob, você digitaria: trainingdata/data01.csv

    Para importar vários arquivos, você pode usar os caracteres curinga * (asterisco) ou ? (ponto de interrogação).

    Por exemplo, trainingdata supondo que o contêiner contenha vários arquivos de um formato compatível, datavocê pode usar a seguinte especificação para ler todos os arquivos começando com e concatená-los em um único conjuntos de dados:

    trainingdata/data*.csv

    Você não pode usar curingas em nomes de contêiner. Se você precisar importar arquivos de vários contêineres, use uma instância separada do módulo Importar Dados para cada contêiner e, em seguida, mescale os conjuntos de dados usando o módulo Adicionar Linhas.

    Observação

    Se você tiver selecionado a opção Usar resultados armazenados em cache, as alterações feitas nos arquivos no contêiner não dispararão uma atualização dos dados no experimento.

  7. Para formato de arquivo blob, selecione uma opção que indica o formato dos dados armazenados no blob, para que Machine Learning possa processar os dados adequadamente. Os formatos a seguir são suportados:

    • CSV: Valores separados por vírgula (CSV) é o formato de armazenamento padrão para exportar e importar arquivos em Machine Learning. Se os dados já contiverem uma linha de header, selecione a opção Arquivo com linha de header ou o header será tratado como uma linha de dados.

      Para obter mais informações sobre o formato CSV usado no Machine Learning, consulte [Converter em CSV](convert-to-csv.md

    • TSV: valores separados por tabulação (TSV) é um formato usado por muitas ferramentas de machine learning. Se os dados já contiverem uma linha de header, selecione a opção Arquivo com linha de header ou o header será tratado como uma linha de dados.

      Para obter mais informações sobre o formato TSV usado Machine Learning, consulte Converter em TSV.

    • ARFF: esse formato dá suporte à importação de arquivos no formato usado pelo modelo de ferramentas do Weka. Para obter mais informações, consulte Converter em ARFF.

    • CSV com uma codificação especificada: use essa opção para arquivos CSV que podem ter sido preparados usando um separador de campo diferente ou se a origem pode ter usado uma codificação de caractere diferente da UTF-8. Esse formato não tem suporte para arquivos armazenados em uma URL SAS.

    • Excel: use essa opção para ler dados de Excel de trabalho armazenadas em Armazenamento de Blobs do Azure. O Excel não tem suporte para arquivos armazenados em uma URL SAS.

  8. Para arquivos CSV com codificações especiais, de definido estas opções adicionais para controlar a importação adequada dos caracteres:

    • Formato de separador de vírgula: escolha em uma lista de caracteres comuns usados como separadores de campo, , incluindo o caractere de guia vírgula e ponto e vírgula ;.

    • Formato de codificação: escolha a codificação de caracteres usada pelo arquivo que você deseja ler. Consulte a seção Notas técnicas para ver uma lista de codificações com suporte.

    • Arquivo tem linha de header: selecione esta opção se os dados já contiver uma linha de header. Caso contrário, o header será importado como uma linha de dados.

  9. Para Excel arquivos, depois de especificar a conta e o contêiner em que o arquivo Excel está armazenado, você deve indicar o formato Excel e o nome da tabela, usando estas opções:

    • Excel formato de dados: indique se os dados estão em um intervalo Excel planilha ou em uma tabela Excel dados.

    • Excel planilha ou tabela inserida: se você selecionar a opção Excel planilha, especifique o nome da planilha (o nome da guia) ou uma tabela inserida na pasta de trabalho. Todos os dados da planilha são lidos; não é possível especificar um intervalo de células. Se você selecionar a Excel de tabela, deverá obter o nome da tabela e não o nome da planilha, mesmo que haja apenas uma tabela em uma planilha. Para exibir o nome da tabela, clique dentro da tabela e, em seguida, veja a propriedade Nome da Tabela na guia Ferramentas de Tabela.

  10. Execute o experimento.

Exemplos

Para saber como usar dados de Armazenamento de Blobs do Azure em experimentos de machine learning, confira a Galeria do Azure:

Observações técnicas

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

Perguntas comuns

Há alguma maneira de automatizar a importação de dados?

Há várias maneiras de obter novos dados e usá-los para atualizar regularmente um experimento. Muito depende de onde os dados de origem se originam e das ferramentas que você prefere para movimentação de dados. consulte estes artigos para algumas ideias.

A automatização da execução do experimento geralmente requer a criação de um serviço Web, que pode ser disparado por um agendador de tarefas, PowerShell ou outro código personalizado.

Por que eu fiz um erro ao tentar ler dados de entrada de um blob existente?

Há vários problemas possíveis:

  • O blob usa um formato sem suporte
  • A própria conta foi criada usando uma opção que ainda não tem suporte do Machine Learning.

Formato sem suporte: ao ler do Armazenamento de Blobs do Azure, o Machine Learning requer que o blob use o formato de blob de blocos, que permite carregar blobs grandes com eficiência. Por exemplo, se você carregar um arquivo CSV no armazenamento de blob, o arquivo será armazenado como um blob de blocos. No entanto, quando você cria um arquivo de blob programaticamente, pode estar gerando um tipo diferente de blob, como o tipo AppendBlob, que não tem suporte.

Como alternativa, recomendamos que você use o tipo de blob de blocos.

Importante

Depois que o blob tiver sido criado, o tipo não poderá ser alterado.

Para obter mais informações, consulte Noções básicas sobre blobs de blocos, blobs de anexação e blobs de páginas.

Tipo de conta sem suporte: os módulos de importação e exportação podem ler e gravar dados somente de contas de armazenamento do Azure que foram criadas usando o modelo de implantação Clássico. Em outras palavras, o novo tipo Armazenamento de Blobs do Azure conta que oferece camadas de acesso de armazenamento quente e frio ainda não tem suporte. Em geral, todas as contas de armazenamento do Azure que você possa ter criado antes da disponibilização dessa opção de serviço não devem ter sido afetadas.

Se você precisar criar uma nova conta para uso com o Machine Learning, selecione Clássico para o Modelo de implantação ou use Gerenciador de recursos e, para Tipo de conta, selecione Uso geral em vez de Armazenamento de Blob.

Como evitar carregar os mesmos dados desnecessariamente?

Se os dados de origem mudarem, você poderá atualizar o conjuntos de dados e adicionar novos dados executando importar dados. No entanto, se você não quiser ler a partir da origem sempre que executar o experimento, selecione a opção Usar resultados armazenados em cache como 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 versão anterior for encontrada, os dados no cache serão usados, em vez de carregar os dados da origem.

Posso filtrar os dados conforme eles estão sendo lidos da origem?

O módulo Importar Dados não dá suporte à filtragem à medida que os dados estão sendo lidos.

Depois de carregar os dados no Machine Learning Studio (clássico), você poderá modificar os dados com estas ferramentas:

  • Use um script R personalizado para filtrar ou transformar dados.

  • Use o módulo Dividir Dados com uma expressão relativa ou uma expressão regular para isolar os dados que você deseja e, em seguida, salvá-los como um conjuntos de dados.

Se você achar que carregou mais dados do que o necessário, poderá substituir o conjuntos de dados lendo um novo conjuntos de dados e especificar que ele será salvo com o mesmo nome que os dados maiores e mais antigos.

Por que o processo de importação adiciona uma linha extra no final do meu conjuntos de dados quando encontra uma nova linha à frente?

Se o módulo Importar Dados encontrar uma linha de dados seguida por uma linha vazia ou um caractere de nova linha à frente, uma linha extra que contém valores ausentes será adicionada no final da tabela.

O motivo para interpretar uma nova linha à frente como uma nova linha é que Importar Dados não pode determinar a diferença entre uma linha vazia real e uma linha vazia que é criada pelo usuário pressionando ENTER no final de um arquivo.

Como alguns algoritmos de aprendizado de máquina suportam dados ausentes e, portanto, tratariam essa linha como um caso (que, por sua vez, poderia afetar os resultados), você deve usar Limpar Dados Ausentes para verificar se há valores ausentes e removê-los conforme necessário.

Antes de verificar se há linhas vazias, você também pode querer separar a linha vazia final de outras linhas com valores ausentes parciais, que podem representar valores ausentes reais nos dados de origem. Para fazer isso, você pode dividir o conjuntos de dados usando Dividir Dados. Selecione a opção Selecionar linhas de cabecinha N para ler todas as linhas, menos a linha final.

O que acontece se você importar dados carregados de diferentes regiões geográficas?

Se a conta de armazenamento de blob ou tabela estiver em uma região diferente do nó de computação usado para o experimento de aprendizado de máquina, o acesso a dados poderá ser mais lento. Além disso, você será cobrado pela entrada e saída de dados na assinatura.

Por que alguns caracteres no meu arquivo de origem não são exibidos corretamente no cabeçalho?

Machine Learning geralmente dá suporte à codificação UTF-8. Se o arquivo de origem usar outro tipo de codificação, os caracteres poderão não ser importados corretamente.

Se tiver problemas ao carregar dados corretamente, tente usar a opção CSV com codificação e especificar os parâmetros para delimitadores personalizados, a página de código e assim por diante.

Há caracteres ou caracteres proibidos que são alterados durante a importação?

Se os dados de atributos contiverem aspas ou sequências de caracteres de escape, eles serão manipulados usando as regras para esses caracteres no Microsoft Excel. Todos os outros caracteres são tratados usando as seguintes especificações como uma diretriz: RFC 4180.

O limite de tamanho para carregar conjuntos de dados locais diretamente Machine Learning é de 1,98 GB. Com arquivos muito grandes, adicionar o conjuntos de dados à sua conta de experimento pode levar muito tempo para ser concluído.

  • Estimar 10 minutos ou mais por GB de dados.
  • Para otimizar o desempenho, use uma conta de armazenamento na mesma região usada pelo serviço ML Azure.

Para carregar arquivos maiores, até 10 GB, há várias abordagens:

  • Use um arquivo recortado. Você pode carregar conjuntos de dados no Azure ML Studio (clássico) no formato recortado e, em seguida, usar o módulo Desempacotar Conjuntos de Dados Desempacotado para desempacotar e salvar o conjuntos de dados. Os conjuntos de dados recortados também podem ser desempacodados usando o módulo Executar Script R , mas o desempenho pode ser limitado.

  • Use um utilitário rápido do Azure, como o AzCopy. Stage os dados para Microsoft Azure blob Armazenamento usando um utilitário como o AzCopy. Em seguida, use o módulo Importar Dados para importar dados do armazenamento de blob para o Studio (clássico).

    Por exemplo, o código a seguir mostra a sintaxe AzCopy para escrever no armazenamento de 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
    

Eu importei um arquivo CSV usando uma codificação especificada, mas o texto não é exibido corretamente quando uso a opção para visualizar. Por quê?

Para conjuntos de dados carregados, Machine Learning geralmente dá suporte apenas a UTF-8. No entanto, o módulo Importar Dados dá suporte a formatos de codificação adicionais. Portanto, depois de importar um arquivo usando um desses formatos, você poderá descobrir que os caracteres não estão sendo exibidos corretamente. A solução é converter a codificação em UTF-8 usando um destes métodos:

  • Salve os dados importados como um conjuntos de dados. (Usar um conjuntos de dados salvo em vez dos dados CSV também pode melhorar o desempenho.)

  • Se você estiver usando o conjuntos de dados no módulo Executar Script R , poderá impor a codificação correta usando um script como este:

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

    Em seguida, você pode usar Visualizar na saída do módulo Executar Script R e verificar se os caracteres são exibidos corretamente.

Quais opções tenho para importar arquivos de texto? O CSV não é apropriado para meus dados.

Processar e limpar texto não estruturado para se ajustar perfeitamente em colunas é sempre um desafio. No entanto, se você precisar importar colunas de dados de texto, o formato TSV geralmente apresentará menos dificuldades, embora você ainda precise verificar se há caracteres de tabulação em excesso com antecedência.

Recomendamos que você revise o modelo classificação de texto, noGaleria de IA do Azure, para ver um exemplo de ingestão e processamento de texto no Machine Learning Studio (clássico).

Codificação personalizada para arquivos CSV

As versões anteriores do módulo Importar Dados não suportam alguns tipos de arquivos CSV válidos. Por exemplo, os dados exportados do Excel algumas vezes continham caracteres que impediam a análise correta do arquivo.

Para dar suporte a uma maior variedade possível de delimitadores e formatos de caracteres, Importar Dados agora dá suporte à escolha do formato delimitador e de codificação. Se você usar a opção CSV com codificação, o resultado é uma análise mais robusta e eficiente do arquivo CSV.

Você pode usar as seguintes codificações de caractere:

Tipo Codificação
Unicode Unicode (UTF-8)

Unicode

Unicode (UTF-32)

Unicode (UTF-7)
CJYK Chinês Tradicional (Big5)

Chinês Simplificado (GB2312)

Chinês Simplificado (Mac)

Chinês Simplificado (GB2312-80)

Chinês Simplificado (ISO-2022)

Chinês Simplificado (GB18030)

Japonês (JIS)

Coreano (ISO)

Coreano (Mac)
Outro Europeu Ocidental (Windows)

Europeu Ocidental (ISO)

Hebraico (ISO-Visual)

US-ASCII

Dica

Após a conclusão da importação de CSV, recomendamos que você salve os arquivos importados como um conjunto de dados para garantir que eles usem a codificação UTF-8 em seu experimento.

Inferência de tipo de dados nos formatos CSV e TSV

quando o módulo importar dados carrega dados de um arquivo CSV ou TSV no Armazenamento de Blobs do Azure, um palpiter de tipo procura por dados categóricos ou numéricos no arquivo de origem e representa o tipo descoberto nos metadados para o novo dataset.

No entanto, você pode substituir os resultados do adivinhador de tipo editando os atributos de coluna no módulo Editar metadados depois que os dados tiverem sido carregados.

Parâmetros do módulo

Opções gerais

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 blobs do azure, uma tabela do azure, um Banco de Dados SQL do Azure, um banco de dados SQL Server local, uma tabela Hive ou um ponto de extremidade OData.
Tipo de autenticação PublicOrSas/conta Cadeia de caracteres Conta Especifique se os dados estão em um contêiner público acessível via URL SAS ou se estão em uma conta de armazenamento privada que requer autenticação para acesso.
Usar resultados em cache TRUE/FALSE Boolean FALSE Selecione para evitar o carregamento de dados entre execuções

Público ou SAS – opções de armazenamento público

Nome Intervalo Type Padrão Descrição
URI any Cadeia de caracteres nenhum Ponto de extremidade REST do HDFS
Formato de arquivo ARFF, CSV ou TSV Cadeia de caracteres CSV Selecione um dos formatos com suporte
URI tem linha de cabeçalho Boolean TRUE/FALSE TRUE True se o arquivo contiver uma linha de cabeçalho; Se for false, a primeira linha de dados será usada como títulos de coluna

Conta – opções de armazenamento privado

Nome Intervalo Type Padrão Descrição
Nome da conta any String nenhum Digite o nome da conta de armazenamento
Chave de conta any SecureString nenhum Colar a chave da conta
Caminho para o contêiner, diretório ou blob any String N/D Digite o nome do contêiner ou do diretório
Formato de arquivo do Blob ARFF, CSV ou TSV String CSV Selecione um dos formatos com suporte
O arquivo tem uma linha de cabeçalho any Cadeia de caracteres verdadeiro Nome da conta de armazenamento do Azure

Saídas

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

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 ocorrerá uma exceção quando não for 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 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 ver uma lista de erros específicos dos módulos do Studio (clássico), consulte Machine Learning Códigos de erro.

Para ver 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 da consulta do Hive
Importar do Banco de Dados SQL do Azure
Importar da Tabela do Azure
Importar de provedores de feed de dados
Importar de um Banco de dados do SQL Server local