Importar recursos de datos (versión preliminar)

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

En este artículo, obtendrá información sobre cómo importar datos a la plataforma de Azure Machine Learning desde orígenes externos. Una importación de datos correcta crea y registra automáticamente un recurso de datos de Azure Machine Learning con el nombre proporcionado durante la importación. Un activo de datos de Azure Machine Learning se parece a un marcador del explorador web (favoritos). No es necesario recordar rutas de acceso de almacenamiento largas (URI) que apunten a los datos usados con más frecuencia. En su lugar, puede crear un recurso de datos y luego acceder a este si le asigna un nombre descriptivo.

Una importación de datos crea una caché de los datos de origen, junto con los metadatos, para obtener acceso a datos más rápido y de forma más confiable en los trabajos de entrenamiento de Azure Machine Learning. La caché de datos evita restricciones de red y conexión. Los datos almacenados en caché se versionan para admitir la reproducibilidad. Esto proporciona funcionalidades de control de versiones para los datos importados desde orígenes de SQL Server. Además, los datos en caché proporcionan linaje de datos para las tareas de auditoría. Una importación de datos usa ADF (canalizaciones de Azure Data Factory) en segundo plano, lo que significa que los usuarios pueden evitar interacciones complejas con ADF. En segundo plano, Azure Machine Learning también controla la administración del tamaño del grupo de recursos de proceso de ADF, el aprovisionamiento de recursos de proceso y la anulación para optimizar la transferencia de datos mediante la determinación de la paralelización adecuada.

Los datos transferidos se particionan y almacenan de forma segura como archivos de Parquet en Azure Storage. Esto permite un procesamiento más rápido durante el entrenamiento. Los costos de proceso de ADF solo implican el tiempo usado para las transferencias de datos. Los costos de almacenamiento solo implican el tiempo necesario para almacenar en caché los datos, ya que los datos almacenados en caché son una copia de los datos importados desde un origen externo. Azure Storage hospeda ese origen externo.

La característica de almacenamiento en caché implica costos iniciales de proceso y almacenamiento. Sin embargo, prácticamente se paga solo y puede ahorrar dinero, ya que reduce los costes de proceso de entrenamiento periódicos en comparación con las conexiones directas a los datos de origen externos durante el entrenamiento. Almacena en caché los datos como archivos de Parquet, lo que hace que el entrenamiento del trabajo sea más rápido y confiable con respecto a los tiempos de espera de conexión para conjuntos de datos más grandes. Esto provoca menos repeticiones y menos errores de entrenamiento.

Puede importar datos de Amazon S3, Azure SQL y Snowflake.

Importante

Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin un Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas.

Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Requisitos previos

Para crear y trabajar con recursos de datos, necesita lo siguiente:

Nota

Para una importación correcta de datos, compruebe que ha instalado el paquete Azure-ai-ml más reciente (versión 1.5.0 o posterior) para el SDK y la extensión ml (versión 2.15.1 o posterior).

Si tiene un paquete de SDK o una extensión de CLI más antiguos, elimine el antiguo e instale el nuevo con el código que se muestra en la sección de pestañas. Siga las instrucciones del SDK y la CLI, como se muestra aquí:

Versiones de 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)

Importación desde una base de datos externa como un recurso de datos de mltable

Nota

Las bases de datos externas pueden tener formatos Snowflake, Azure SQL, etc.

Estos ejemplos de código pueden importar datos de bases de datos externas. La connection que controla la acción de importación determina los metadatos del origen de datos de la base de datos externa. En este ejemplo, el código importa datos de un recurso de Snowflake. La conexión apunta a un origen de Snowflake. Con una pequeña modificación, la conexión puede apuntar a un origen de base de datos de Azure SQL y a un origen de base de datos de Azure SQL. El recurso importado type de un origen de base de datos externa es mltable.

Creación de un archivo 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>

Luego, ejecute este comando en la CLI:

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

Importar datos de un sistema de archivos externo como un recurso de datos de carpeta

Nota

Un recurso de datos de Amazon S3 puede servir como un recurso de sistema de archivos externo.

La connection que controla la acción de importación de datos determina los aspectos del origen de datos externo. La conexión define un cubo de Amazon S3 como destino. La conexión espera un valor válido path. Un valor de recurso importado desde un origen de sistema de archivos externo tiene un type de uri_folder.

El siguiente ejemplo de código importa datos de un recurso de Amazon S3.

Creación de un archivo 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>

Luego, ejecute este comando en la CLI:

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

Comprobación del estado de importación de orígenes de datos externos

La acción de importación de datos es una acción asincrónica. Puede tardar mucho tiempo. Después de enviar una acción de importación de datos a través de la CLI o el SDK, es posible que el servicio Azure Machine Learning necesite varios minutos para conectarse al origen de datos externo. A continuación, el servicio iniciará la importación de datos y controlará el almacenamiento en caché de datos y el registro. El tiempo necesario para una importación de datos también depende del tamaño del conjunto de datos de origen.

En el ejemplo siguiente se devuelve el estado de la actividad de importación de datos enviada. El comando o método usa el nombre "data asset" (recurso de datos) como entrada para determinar el estado de la materialización de datos.

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

Pasos siguientes