Ativos de dados de importação (versão prévia)

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)

Neste artigo, você aprenderá a importar dados para a plataforma do Azure Machine Learning de fontes externas. Uma importação de dados bem-sucedida cria e registra automaticamente um ativo de dados do Azure Machine Learning com o nome fornecido durante essa importação. Um ativo de dados do Azure Machine Learning é semelhante a um indicador do navegador da Web (favoritos). Você não precisa se lembrar de caminhos de armazenamento longos (URIs) que apontam para os dados usados com mais frequência. Em vez disso, crie um ativo de dados e acesse esse ativo com um nome amigável.

Uma importação de dados cria um cache dos dados de origem, juntamente com metadados, para acesso mais rápido e confiável a dados em trabalhos de treinamento do Azure Machine Learning. O cache de dados evita restrições de rede e conexão. Os dados armazenados em cache têm controle de versão para dar suporte à reprodutibilidade. Isso fornece recursos de controle de versão para os dados importados de fontes do SQL Server. Além disso, os dados armazenados em cache fornecem a linhagem de dados para tarefas de auditoria. Uma importação de dados usa a ADF (pipelines do Azure Data Factory) nos bastidores, o que significa que os usuários podem evitar interações complexas com o ADF. Nos bastidores, o Azure Machine Learning também lida com o gerenciamento do tamanho do pool de recursos de computação do ADF, provisionamento de recursos de computação e desmontagem, para otimizar a transferência de dados determinando a paralelização adequada.

Os dados transferidos são particionados e armazenados com segurança como arquivos parquet no armazenamento do Azure. Isso permite um processamento mais rápido durante o treinamento. Os custos de computação do ADF envolvem apenas o tempo usado para transferências de dados. Os custos de armazenamento envolvem apenas o tempo necessário para armazenar os dados em cache, pois os dados armazenados em cache são uma cópia dos dados importados de uma fonte externa. O armazenamento do Azure hospeda essa origem externa.

O recurso de cache envolve custos iniciais de computação e armazenamento. No entanto, ele se paga e pode economizar dinheiro, pois reduz os custos recorrentes de computação de treinamento, em comparação com conexões diretas com dados de origem externa durante o treinamento. Ele armazena em cache dados como arquivos parquet, o que torna o treinamento de trabalho mais rápido e confiável em relação aos tempos limite de conexão para conjuntos de dados maiores. Isso leva a menos repetições e menos falhas de treinamento.

Você pode importar dados do Amazon S3, do SQL do Azure e do Snowflake.

Importante

Esse recurso está atualmente em visualização pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos.

Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Pré-requisitos

Para criar e trabalhar com ativos de dados, você precisa do seguinte:

Observação

Para que a importação de dados seja bem-sucedida, verifique se você instalou o pacote azure-ai-ml mais recente (versão 1.15.0 ou posterior) para o SDK e a extensão ml (versão 2.15.1 ou posterior).

Se você tiver um pacote SDK mais antigo ou uma extensão da CLI, remova a antiga e instale a nova com o código mostrado na seção da guia. Siga as instruções para o SDK e a CLI, como mostrado aqui:

Versões do código

az extension remove -n ml
az extension add -n ml --yes
az extension show -n ml #(the version value needs to be 2.15.1 or later)

Importar de um banco de dados externo como um ativo de dados mltable

Observação

Os bancos de dados externos podem ter formatos Snowflake, SQL do Azure, etc.

Os exemplos de código a seguir podem importar dados de bancos de dados externos. O connection que manipula a ação de importação determina os metadados da fonte de dados do banco de dados externo. Nesse exemplo, o código importa dados de um recurso do Snowflake. A conexão aponta para uma fonte do Snowflake. Com uma pequena modificação, a conexão pode apontar para uma fonte de banco de dados SQL do Azure e uma fonte de banco de dados SQL do Azure. O ativo importado type de uma fonte de dados externa é mltable.

Criar um arquivo YAML<file-name>.yml:

$schema: http://azureml/sdk-2-0/DataImport.json
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# Datastore: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}


type: mltable
name: <name>
source:
  type: database
  query: <query>
  connection: <connection>
path: <path>

Em seguida, execute o seguinte comando na CLI:

> az ml data import -f <file-name>.yml

Importar dados de um sistema de arquivos externo como um ativo de dados de pasta

Observação

Um recurso de dados do Amazon S3 pode servir como um recurso de sistema do arquivos externo.

O connection que manipula a ação de importação de dados determina os aspectos da fonte de dados externa. A conexão define um bucket do Amazon S3 como o destino. A conexão espera um valor path válido. Um valor de ativo importado de uma origem do sistema de arquivos externo tem um type de uri_folder.

O próximo exemplo de código importa dados de um recurso do Amazon S3.

Criar um arquivo YAML<file-name>.yml:

$schema: http://azureml/sdk-2-0/DataImport.json
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# path: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}


type: uri_folder
name: <name>
source:
  type: file_system
  path: <path_on_source>
  connection: <connection>
path: <path>

Em seguida, execute este comando na CLI:

> az ml data import -f <file-name>.yml

Verificar o status de importação de fontes de dados externas

A ação de importação de dados é uma ação assíncrona. Pode levar muito tempo. Após o envio de uma ação de importação de dados por meio da CLI ou do SDK, o Serviço do Azure Machine Learning pode precisar de vários minutos para se conectar à fonte de dados externa. Em seguida, o serviço iniciaria a importação de dados e lidaria com o cache e o registro de dados. O tempo necessário para uma importação de dados também depende do tamanho do conjunto de dados de origem.

O próximo exemplo retorna o status da atividade de importação de dados enviada. O comando ou método usa o nome "ativo de dados" como a entrada para determinar o status da materialização de dados.

> az ml data list-materialization-status --name <name>

Próximas etapas