Importación desde Azure Blob Storage

En este tema se describe cómo usar el módulo importar datos en Azure machine learning Studio (clásico), para leer datos de Azure BLOB Storage, de modo que pueda usar los datos en un experimento de aprendizaje automático.

Nota

Se aplica a: machine learning Studio (clásico)

Este contenido solo pertenece a Studio (clásico). Se han agregado módulos similares de arrastrar y colocar al diseñador de Azure Machine Learning. Obtenga más información en este artículo comparativa de las dos versiones.

Azure Blob Service sirve para almacenar grandes cantidades de datos, incluidos datos binarios. Puede acceder a los blobs de Azure desde cualquier lugar, mediante HTTP o HTTPS. La autenticación puede ser necesaria según el tipo de almacenamiento de blobs.

  • Cualquier persona puede acceder a los blobs públicos, así como usuarios que tengan una dirección URL de SAS.
  • Los blobs privados requieren un inicio de sesión y credenciales.

Importing from Blob Storage requiere que los datos se almacenan en blobs que usen el formato blob en bloques. Los archivos almacenados en el BLOB deben usar formatos separados por comas (CSV) o separados por tabulaciones (TSV). Al leer el archivo, los registros y los encabezados de atributo aplicables se cargan como filas en la memoria como un conjunto de datos.

Nota

El módulo importar datos no admite la conexión a Azure Blob Storage cuenta si la opción "se requiere transferencia segura" está habilitada.

Para otras restricciones sobre los tipos de almacenamiento de blobs que se admiten para su uso con Azure Machine Learning, consulte la sección notas técnicas .

Sugerencia

¿Necesita importar datos con un formato que no sea compatible? Puede usar Python o R. Vea este ejemplo en el Azure AI Gallery: cargar un archivo que no es de texto desde Azure BLOB Storage

Cómo importar datos de blobs de Azure

Se recomienda encarecidamente generar el perfil de los datos antes de importar, para asegurarse de que el esquema sea el esperado. El proceso de importación examina algunas filas de encabezado para determinar el esquema, pero las filas posteriores pueden contener columnas adicionales o datos que provoquen errores.

Usar el Asistente para importación de datos

El módulo incluye un nuevo asistente que le ayuda a elegir una opción de almacenamiento, seleccionar entre las suscripciones y cuentas existentes y configurar rápidamente todas las opciones.

  1. Agregue el módulo Importación de datos al experimento. Puede encontrar el módulo en Studio (clásico), en la categoría entrada y salida de datos .

  2. Haga clic en iniciar el Asistente para importar datos y siga las indicaciones.

  3. Una vez completada la configuración, para copiar realmente los datos en el experimento, haga clic con el botón derecho en el módulo y seleccione Ejecutar seleccionado.

Si necesita modificar una conexión de datos existente, el asistente carga todos los detalles de configuración anteriores para que no tenga que volver a empezar desde cero.

Establecer manualmente las propiedades en el módulo Importar datos

En los pasos siguientes se describe cómo configurar manualmente el origen de la importación.

  1. Agregue el módulo Importación de datos al experimento. Puede encontrar este módulo en Studio (clásico), en la categoría entrada y salida de datos .

  2. En Origen de datos, seleccione Azure Blob Storage.

  3. Para Tipo de autenticación, elija Public (SAS URL) (Público [dirección URL de SAS]) si sabe que la información se ha proporcionado como origen de datos público. Una dirección URL de SAS es una dirección URL por tiempo limitado para el acceso público, que puede generar mediante una utilidad de almacenamiento de Azure.

    De lo contrario, elija Cuenta.

  4. Si los datos están en un blob público al que se puede acceder mediante una dirección URL de SAS, no necesita credenciales adicionales, ya que la cadena de dirección URL contiene toda la información necesaria para la descarga y autenticación.

    En el campo URI, escriba o pegue el URI completo que define la cuenta y el blob público.

    Nota

    En una página accesible a través de la dirección URL de SAS, los datos se pueden almacenar usando solo estos formatos: CSV, TSV y ARFF.

  5. Si los datos están en una cuenta privada, debe proporcionar credenciales, incluido el nombre de cuenta y la clave.

    • Para Nombre de cuenta, escriba o pegue el nombre de la cuenta que contiene el blob al que quiere acceder.

      Por ejemplo, si la dirección URL completa de la cuenta de almacenamiento es https://myshared.blob.core.windows.net, escribiría myshared.

    • Para Clave de cuenta, pegue la clave de acceso de almacenamiento asociada con la cuenta.

      Si no conoce la clave de acceso, consulte la sección "administración de las cuentas de almacenamiento de Azure" en este artículo: acerca de las cuentas de Azure Storage.

  6. Para Path to container, directory, or blob (Ruta de acceso a contenedor, directorio lo blob), escriba el nombre del blob específico que quiere recuperar.

    Por ejemplo, si se ha cargado un archivo denominado data01.csv al contenedor trainingdata en una cuenta denominada mymldata, la dirección URL completa del archivo sería: https://mymldata.blob.core.windows.net/trainingdata/data01.txt.

    Por lo tanto, en el campo Path to container, directory, or blob, escribiría: trainingdata/data01.csv.

    Para importar varios archivos, puede usar los caracteres comodín * (asterisco) o ? (signo de interrogación).

    Por ejemplo, suponiendo que el contenedor trainingdata incluya varios archivos de un formato compatible, puede usar la siguiente especificación para leer todos los archivos que empiecen con datay concatenarlos en un único conjunto de datos:

    trainingdata/data*.csv

    No puede usar caracteres comodín en nombres de contenedor. Si tiene que importar archivos de varios contenedores, use una instancia independiente del módulo Importación de datos para cada contenedor y, luego, combine los conjuntos de datos con el módulo Add Rows (Agregar filas).

    Nota

    Si ha seleccionado la opción Use cached results (Usar resultados en caché), los cambios que haga en los archivos en el contenedor no desencadenan una actualización de los datos en el experimento.

  7. Para Formato de archivo de blob, seleccione una opción que indique el formato de los datos que se almacenan en el blob, de modo que Azure Machine Learning pueda procesar los datos de forma adecuada. Se admiten los siguientes formatos:

    • CSV: valores separados por comas (CSV) es el formato de almacenamiento predeterminado para exportar e importar archivos en Azure machine learning. Si los datos ya contienen una fila de encabezado, no olvide seleccionar la opción, El archivo tiene una fila de encabezado o, de lo contrario, el encabezado se tratará como una fila de datos.

      Para obtener más información sobre el formato CSV que se usa en Azure Machine Learning, consulte [conversión a CSV] (conversión a csv.md

    • TSV: los valores separados por tabulaciones (TSV) son un formato que usan muchas herramientas de aprendizaje automático. Si los datos ya contienen una fila de encabezado, no olvide seleccionar la opción, El archivo tiene una fila de encabezado o, de lo contrario, el encabezado se tratará como una fila de datos.

      Para obtener más información sobre el formato TSV usado en Azure Machine Learning, vea Convert to TSV.

    • ARFF: este formato admite la importación de archivos en el formato usado por el conjunto de herramientas Weka. Para obtener más información, consulte convertir a ARFF.

    • CSV con una codificación especificada: Use esta opción para los archivos CSV que puedan haberse preparado con un separador de campos diferente, o si el origen podría haber usado una codificación de caracteres diferente de UTF-8. Este formato no se admite para los archivos almacenados en una dirección URL de SAS.

    • Excel: Utilice esta opción para leer datos de los libros de Excel almacenados en Azure BLOB Storage. El formato de Excel no se admite para los archivos almacenados en una dirección URL de SAS.

  8. En el caso de los archivos CSV con codificaciones especiales, establezca estas opciones adicionales para controlar la importación correcta de los caracteres:

    • Formato de delimitador de coma: Elija entre una lista de caracteres comunes que se usan como separadores de campo, incluidos el , carácter de tabulación de coma y punto y coma ; .

    • Formato de codificación: elija la codificación de caracteres utilizada por el archivo que desea leer. Consulte la sección notas técnicas para obtener una lista de codificaciones admitidas.

    • El archivo tiene la fila de encabezado: Seleccione esta opción si los datos ya contienen una fila de encabezado. De lo contrario, el encabezado se importa como una fila de datos.

  9. En el caso de los archivos de Excel, después de especificar la cuenta y el contenedor donde se almacena el archivo de Excel, debe indicar el formato de Excel, el intervalo o el nombre de la tabla, con estas opciones:

    • Formato de datos de Excel: indique si los datos están en un intervalo de hojas de cálculo de Excel o en una tabla de Excel.

    • Hoja de Excel o tabla incrustada: Si selecciona la opción hoja de Excel , especifique el nombre de la hoja de cálculo (el nombre de la pestaña) o una tabla incrustada en el libro. Se leen todos los datos de la hoja; no se puede especificar un intervalo de celdas. Si selecciona la opción tabla de Excel , debe obtener el nombre de la tabla y no el nombre de la hoja, aunque solo haya una tabla en una hoja. Para ver el nombre de la tabla, haga clic dentro de la tabla y, a continuación, vea la propiedad nombre de tabla en la pestaña herramientas de tabla .

  10. Ejecute el experimento.

Ejemplos

Para obtener información sobre cómo usar los datos de Azure Blob Storage en experimentos de aprendizaje automático, consulte la Galería de Azure:

Notas técnicas

Esta sección contiene detalles de implementación, sugerencias y respuestas a las preguntas más frecuentes.

Preguntas frecuentes

¿Hay alguna manera de automatizar la importación de datos?

Hay varias maneras de obtener nuevos datos y usarlos para actualizar periódicamente un experimento. Depende de dónde se originen los datos de origen y de las herramientas que prefiera para el movimiento de datos. Consulte estos artículos para ver algunas ideas.

La automatización de la ejecución del experimento generalmente requiere la creación de un servicio Web, que después puede ser desencadenada por un programador de tareas, PowerShell u otro código personalizado.

¿Por qué obtengo un error al intentar leer los datos de entrada de un BLOB existente?

Hay varios problemas posibles:

  • El BLOB usa un formato no admitido
  • La propia cuenta se creó con una opción que aún no es compatible con Azure Machine Learning.

Formato no compatible: cuando se lee desde Azure BLOB Storage, actualmente Azure machine learning requiere que el BLOB use el formato de BLOB en bloques , lo que permite cargar blobs grandes de forma eficaz. Por ejemplo, si carga un archivo CSV en el almacenamiento de blobs, el archivo se almacenaría como un BLOB en bloques. Sin embargo, cuando se crea un archivo de BLOB mediante programación, es posible que esté generando un tipo diferente de BLOB, como el tipo AppendBlob, que no se admite.

Como solución alternativa, se recomienda usar el tipo de BLOB en bloques .

Importante

Una vez creado el BLOB, no se puede cambiar el tipo.

Para obtener más información, consulte Descripción de los blobs en bloques, blobs en anexos y blobs en páginas.

Tipo de cuenta no admitida: los módulos de importación y exportación pueden leer y escribir datos solo de las cuentas de almacenamiento de Azure que se crearon con el modelo de implementación clásica. En otras palabras, todavía no se admite el nuevo tipo de cuenta de Azure Blob Storage que ofrece un nivel de acceso de almacenamiento frecuente y esporádico. Por lo general, las cuentas de almacenamiento de Azure que haya creado antes de que esta opción de servicio estuviera disponible no deberían haberse visto afectadas.

Si tiene que crear una cuenta nueva para usarla con Azure Machine Learning, seleccione clásico para el modelo de implementación, o bien use Resource Manager y, para tipo de cuenta, seleccione uso general en lugar de BLOB Storage.

¿Cómo puedo evitar volver a cargar los mismos datos innecesariamente?

Si los datos de origen cambian, puede actualizar el conjunto de datos y agregar nuevos datos volviendo a ejecutar importar datos. Sin embargo, si no desea volver a leer el origen cada vez que ejecute el experimento, seleccione TRUE para la opción Use cached results (Utilizar resultados almacenados en caché). Cuando esta opción se establece en TRUE, el módulo comprobará si el experimento se ejecutó previamente con el mismo origen y las mismas opciones de entrada y, si se encuentra una ejecución anterior, se utilizarán los datos de la memoria caché, en lugar de volver a cargar los datos desde el origen.

¿Se pueden filtrar los datos a medida que se leen desde el origen?

El módulo importar datos no admite el filtrado a medida que se leen los datos.

Una vez que haya cargado los datos en Azure Machine Learning Studio (clásico), puede modificar los datos con estas herramientas:

  • Use un script de R personalizado para filtrar o transformar datos.

  • Use el módulo dividir datos con una expresión relativa o una expresión regular para aislar los datos que desee y, a continuación, guárdelos como un conjunto de datos.

Si encuentra que ha cargado más datos de los que necesita, puede sobrescribir el conjunto de datos leyendo un nuevo conjunto de datos y especificar que se guarde con el mismo nombre que los datos más antiguos y más grandes.

¿Por qué el proceso de importación agrega una fila adicional al final de mi conjunto de filas cuando encuentra una nueva línea final?

Si el módulo importar datos encuentra una fila de datos seguida de una línea vacía o un carácter de nueva línea final, se agrega una fila adicional que contiene los valores que faltan al final de la tabla.

La razón para interpretar una nueva línea final como una nueva fila es que los datos de importación no pueden determinar la diferencia entre una línea vacía real y una línea vacía creada por el usuario al presionar entrar al final de un archivo.

Dado que algunos algoritmos de aprendizaje automático admiten datos que faltan y, por tanto, tratarían esta línea como un caso (lo que a su vez podría afectar a los resultados), debe usar limpiar datos que faltan para comprobar los valores que faltan y quitarlos según sea necesario.

Antes de comprobar si hay filas vacías, es posible que también desee separar la fila vacía final de otras filas con valores que faltan parcialmente, lo que podría representar valores ausentes reales en los datos de origen. Para ello, puede dividir el conjunto de datos con datos divididos. Seleccione la opción seleccionar Head N filas para leer todas las filas, pero la última fila.

¿Qué ocurre si se importan datos cargados desde distintas regiones geográficas?

Si la cuenta de BLOB Storage o de tabla se encuentra en una región diferente del nodo de proceso que se usa para el experimento de machine learning, el acceso a los datos puede ser más lento. Además, se le cobrará por la entrada y salida de datos en la suscripción.

¿Por qué algunos caracteres del archivo de origen no se muestran correctamente en el encabezado?

Generalmente, Azure Machine Learning admite la codificación UTF-8. Si el archivo de código fuente utiliza otro tipo de codificación, es posible que los caracteres no se importen correctamente.

Si tiene problemas al cargar los datos correctamente, pruebe a usar la opción CSV con codificación y especifique los parámetros para delimitadores personalizados, la página de códigos, etcétera.

¿Hay caracteres o caracteres prohibidos que se cambien durante la importación?

Si los datos de atributo contienen comillas o secuencias de caracteres de escape, se controlarán mediante las reglas para dichos caracteres de Microsoft Excel. Todos los demás caracteres se controlan mediante las siguientes especificaciones como directriz: RFC 4180.

El límite de tamaño para cargar directamente los conjuntos de valores locales en Azure Machine Learning es de 1,98 GB. Con archivos muy grandes, la adición del conjunto de los conjuntos de pruebas a su cuenta de experimentación puede tardar mucho tiempo en completarse.

  • Calcule 10 minutos o más por GB de datos.
  • Para optimizar el rendimiento, use una cuenta de almacenamiento en la misma región que usa el servicio de Azure ML.

Para cargar archivos de mayor tamaño, hasta 10 GB, existen varios enfoques:

  • Use un archivo comprimido. Puede cargar conjuntos de valores en Azure ML Studio (clásico) en formato comprimido y, a continuación, usar el módulo desempaquetar conjuntos de valores comprimidos para desempaquetar y guardar el conjunto de cambios. Los conjuntos de valores comprimidos también se pueden desempaquetar mediante el módulo Ejecutar script de R , pero el rendimiento puede estar limitado.

  • Use una utilidad rápida de Azure como AzCopy. Almacene provisionalmente los datos en Microsoft Azure Blob Storage mediante una utilidad como AzCopy. A continuación, use el módulo importar datos para importar datos de BLOB Storage a Studio (clásico).

    Por ejemplo, en el código siguiente se muestra la sintaxis de AzCopy para escribir en el almacenamiento de blobs.

    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
    

Se importó un archivo CSV con una codificación especificada, pero el texto no se muestra correctamente cuando se usa la opción para visualizar. ¿Por qué?

En el caso de los conjuntos de valores cargados, Azure Machine Learning generalmente solo admite UTF-8. Sin embargo, el módulo importar datos admite formatos de codificación adicionales. Por lo tanto, después de haber importado un archivo con uno de estos formatos, es posible que los caracteres no se muestren correctamente. La solución consiste en convertir la codificación a UTF-8 mediante uno de estos métodos:

  • Guarde los datos importados como un conjunto de datos. (El uso de un conjunto de datos guardado en lugar de los datos CSV también puede mejorar el rendimiento).

  • Si usa el conjunto de los conjuntos de comandos en el módulo Ejecutar script de R , puede aplicar el código correcto mediante un script como el siguiente:

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

    Después, puede usar visualizar en la salida del módulo ejecutar script R y comprobar que los caracteres se muestran correctamente.

¿Qué opciones tengo para importar archivos de texto? El CSV no es adecuado para mis datos.

El procesamiento y la limpieza de texto no estructurado para ajustarse perfectamente a las columnas siempre es un reto. Sin embargo, si tiene que importar columnas de datos de texto, el formato TSV suele presentar menos dificultades, aunque todavía necesita comprobar el exceso de caracteres de tabulación de antemano.

Se recomienda revisar la plantilla de clasificación de texto, en el Azure AI Gallery, para ver un ejemplo de la ingesta de texto y el procesamiento en Azure machine learning Studio (clásico).

Codificación personalizada para archivos CSV

Las versiones tempranas del módulo Import Data no eran compatibles con algunos tipos de archivos CSV válidos. Por ejemplo, los datos exportados desde Excel en ocasiones contenían caracteres que impedían analizar correctamente el archivo.

Para admitir una gama más amplia posible de delimitadores y formatos de caracteres, los datos de importación ahora admiten la elección del delimitador y el formato de codificación. Si usa la opción CSV con codificación, el resultado es un análisis más sólido y eficaz del archivo CSV.

Puede utilizar las codificaciones de caracteres siguientes:

Tipo Encoding
Unicode Unicode (UTF-8)

Unicode

Unicode (UTF-32)

Unicode (UTF-7)
CJYK Chino tradicional (Big5)

Chino simplificado (GB2312)

Chino simplificado (Mac)

Chino simplificado (GB2312-80)

Chino simplificado (ISO-2022)

Chino simplificado (GB18030)

Japonés (JIS)

Coreano (ISO)

Coreano (Mac)
Otros Europeo occidental (Windows)

Europeo occidental (ISO)

Hebreo (ISO-Visual)

ASCII (EE. UU.)

Sugerencia

Una vez completada la importación de CSV, se recomienda guardar los archivos importados como un conjunto de datos para asegurarse de que los datos importados usan la codificación UTF-8 en el experimento.

Inferencia de tipos de datos en formatos CSV y TSV

Cuando el módulo importar datos carga datos de un archivo CSV o TSV en Azure BLOB Storage, un adivinador de tipos busca datos de categorías o numéricos en el archivo de código fuente y representa el tipo detectado en los metadatos del nuevo conjunto de datos.

Sin embargo, puede invalidar los resultados del adivinador de tipos editando los atributos de columna en el módulo editar metadatos una vez cargados los datos.

Parámetros del módulo

Opciones generales

Nombre Intervalo Tipo Valor predeterminado Descripción
Origen de datos List Origen de datos o receptor Azure Blob Storage El origen de datos puede ser HTTP, FTP, HTTPS anónimo o FTPS, un archivo de Azure BLOB Storage, una tabla de Azure, una Azure SQL Database, una base de datos de SQL Server local, una tabla de Hive o un extremo de OData.
Tipo de autenticación PublicOrSas/cuenta String Cuenta Especifique si los datos están en un contenedor público accesible a través de la dirección URL de SAS o en una cuenta de almacenamiento privada que requiera autenticación para el acceso.
Usar resultados almacenados en caché TRUE/FALSE Boolean false Seleccione esta información para evitar la carga de datos entre ejecuciones

Opciones de almacenamiento público o SAS-Public

Nombre Intervalo Tipo Valor predeterminado Descripción
Identificador URI cualquiera String ninguno Punto de conexión REST de HDFS
Formato de archivo ARFF, CSV o TSV String CSV Seleccione uno de los formatos admitidos
El URI tiene la fila de encabezado Boolean TRUE/FALSE TRUE True si el archivo contiene una fila de encabezado; Si es false, la primera fila de datos se usa como encabezados de columna

Opciones de almacenamiento privado de cuenta

Nombre Intervalo Tipo Valor predeterminado Descripción
Nombre de cuenta cualquiera String ninguno Escriba el nombre de la cuenta de almacenamiento.
Clave de cuenta cualquiera SecureString ninguno Pegar la clave de cuenta
Ruta de acceso al contenedor, directorio o blob cualquiera String No aplicable Escriba el nombre del contenedor o el directorio
Blob file format (Formato de archivo de blob) ARFF, CSV o TSV String CSV Seleccione uno de los formatos admitidos
El archivo tiene la fila de encabezado cualquiera String True Nombre de la cuenta de almacenamiento de Azure

Salidas

Nombre Tipo Descripción
Conjunto de datos de resultados Tabla de datos Conjunto de datos con datos importados

Excepciones

Excepción Descripción
Error 0027 Se produce una excepción cuando dos objetos tienen que ser del mismo tamaño pero no lo son.
Error 0003 Se produce una excepción si una o varias de las entradas son nulas o están vacías.
Error 0029 Se produce una excepción cuando se pasa un URI no válido.
Error 0030 Se produce una excepción cuando no es posible descargar un archivo.
Error 0002 Se produce una excepción si uno o más parámetros no se pudieron analizar o convertir del tipo especificado al tipo requerido por el método de destino.
Error 0009 Se produce una excepción si se especifica incorrectamente el nombre de la cuenta de almacenamiento de Azure o el nombre del contenedor.
Error 0048 Se produce una excepción cuando no es posible abrir un archivo.
Error 0046 Se produce una excepción si no es posible crear el directorio en la ruta de acceso especificada.
Error 0049 Se produce una excepción cuando no es posible analizar un archivo.

Para obtener una lista de los errores específicos de los módulos de Studio (clásico), consulte Machine Learning de los códigos de error.

Para obtener una lista de excepciones de API, consulte códigos de error de la API de REST de machine learning.

Vea también

Importar datos
Exportar datos
Importar desde la dirección URL web a través de HTTP
Importar desde consulta de Hive
Importar desde Azure SQL Database
Importar desde la tabla de Azure
Importar desde proveedores de fuentes de distribución de datos
Importar desde la base de datos de SQL Server local