Tutorial: Migración de datos locales a un almacenamiento en la nube con AzCopy

AzCopy es una herramienta de línea de comandos para copiar datos de Azure Blob Storage, Azure Files y Azure Table Storage (o en ellos) mediante comandos simples. Los comandos están diseñados para optimizar el rendimiento. Con AzCopy, puede copiar datos entre un sistema de archivos y una cuenta de almacenamiento o entre cuentas de almacenamiento. AzCopy se puede usar para copiar datos desde los datos locales a una cuenta de almacenamiento.

En este tutorial, aprenderá a:

  • Cree una cuenta de almacenamiento.
  • Use AzCopy para cargar todos los datos.
  • Modifique los datos para fines de prueba.
  • Cree una tarea programada o trabajo cron para identificar los nuevos archivos que cargar.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Prerrequisitos

Para completar este tutorial, descargue la versión más reciente de AzCopy. Consulte Introducción a AzCopy.

Si tiene Windows, necesitará Schtasks, ya que este tutorial lo utiliza para programar una tarea. Los usuarios de Linux utilizarán en su lugar el comando crontab.

Para crear una cuenta de almacenamiento de uso general v2 en Azure Portal, siga estos pasos:

  1. En Servicios de Azure, seleccione Cuentas de almacenamiento.
  2. En la página Cuentas de almacenamiento, elija + Create (+ Crear).
  3. En la hoja Aspectos básicos, seleccione la suscripción en la que se va a crear la cuenta de almacenamiento.
  4. En el campo Grupo de recursos, seleccione el grupo de recursos deseado o cree uno nuevo. Para más información sobre los grupos de recursos de Azure, consulte Información general de Azure Resource Manager.
  5. Después, escriba un nombre para la cuenta de almacenamiento. El nombre que elija debe ser único en Azure. El nombre también debe tener una longitud de entre 3 y 24 caracteres, y solo puede contener números y letras minúsculas.
  6. Seleccione una región para la cuenta de almacenamiento o utilice la región predeterminada.
  7. Seleccione un nivel de rendimiento. El valor predeterminado es Estándar.
  8. Especifique cómo se replicará la cuenta de almacenamiento. La opción de redundancia predeterminada es Almacenamiento con redundancia geográfica (GRS) . Para más información acerca de las opciones de replicación disponibles, consulte Redundancia de Azure Storage.
  9. Hay otras opciones disponibles en las hojas Opciones avanzadas, Redes, Protección de datos y Etiquetas. Para utilizar Azure Data Lake Storage, elija la hoja Opciones avanzadas y, después, establezca Espacio de nombres jerárquico en Habilitado. Para más información, consulte Introducción a Azure Data Lake Storage Gen2.
  10. Seleccione Revisar y crear para revisar la configuración de la cuenta de almacenamiento y crear la cuenta.
  11. Seleccione Crear.

En la imagen siguiente se muestra la configuración de la hoja Aspectos básicos de una nueva cuenta de almacenamiento:

Screenshot showing how to create a storage account in the Azure portal.

Crear un contenedor

El primer paso es crear un contenedor, ya que los blobs siempre se deben cargar en un contenedor. Los contenedores se utilizan como un método para organizar grupos de blobs de la misma forma que los archivos en el equipo, en carpetas.

Siga estos pasos para crear un contenedor:

  1. Seleccione el botón Cuentas de almacenamiento de la página principal y la cuenta de almacenamiento que ha creado.

  2. Seleccione Blobs en Servicios y Contenedor.

    Screenshot showing container creation

El nombre de contenedor debe empezar por una letra o un número. Solo puede contener letras, números y el carácter de guion (-). Para conocer más reglas sobre la nomenclatura de los contenedores de almacenamiento, consulte Asignación de nombres y referencias a contenedores, blobs y metadatos.

Descargar AzCopy

Descargue el archivo ejecutable AzCopy V10.

Coloque el archivo AzCopy en cualquier lugar en el equipo. Agregue la ubicación del archivo a la variable de la ruta de acceso del sistema para que pueda hacer referencia a este archivo ejecutable desde cualquier carpeta del equipo.

Autenticación con Microsoft Entra ID

En primer lugar, asigne el rol de Colaborador de datos de Storage Blob a su identidad. Consulte Asignación de un rol de Azure para acceder a datos de blobs.

A continuación, abra un símbolo del sistema, escriba el siguiente comando y presione la tecla ENTRAR.

azcopy login

Este comando devuelve un código de autenticación y la dirección URL de un sitio web. Abra el sitio web, proporcione el código y, después, elija el botón Siguiente.

Screenshot showing the login prompt

Aparece una ventana de inicio de sesión. En esa ventana, inicie sesión en la cuenta de Azure con sus credenciales de la cuenta de Azure. Cuando haya iniciado sesión correctamente, puede cerrar la ventana del explorador y comenzar a usar AzCopy.

Carga del contenido en una carpeta en Blob Storage

Puede usar AzCopy para cargar todos los archivos en una carpeta en Blob Storage en Windows o Linux. Para cargar todos los blobs en una carpeta, escriba el siguiente comando de AzCopy:

azcopy copy "<local-folder-path>" "https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>" --recursive=true
  • Reemplace el marcador de posición <local-folder-path> por la ruta de acceso a una carpeta que contiene los archivos (por ejemplo: C:\myFolder o /mnt/myFolder).

  • Reemplace el marcador de posición <storage-account-name> por el nombre de la cuenta de almacenamiento.

  • Reemplace el marcador de posición <container-name> por el nombre del contenedor que ha creado.

Para cargar el contenido del directorio especificado repetidamente en el almacenamiento de blob, especifique la opción --recursive. Al ejecutar AzCopy con esta opción, se cargan también todas las subcarpetas y sus archivos.

Carga de archivos modificados en Blob Storage

Puede utilizar AzCopy para cargar archivos según la hora de la última modificación.

Para probar esto, modifique o cree archivos en el directorio de origen para fines de prueba. A continuación, utilice el comando sync de AzCopy.

azcopy sync "<local-folder-path>" "https://<storage-account-name>.blob.core.windows.net/<container-name>" --recursive=true
  • Reemplace el marcador de posición <local-folder-path> por la ruta de acceso a una carpeta que contiene los archivos (por ejemplo: C:\myFolder o /mnt/myFolder).

  • Reemplace el marcador de posición <storage-account-name> por el nombre de la cuenta de almacenamiento.

  • Reemplace el marcador de posición <container-name> por el nombre del contenedor que ha creado.

Para más información sobre el comando sync, consulte Sincronizar archivos.

Creación de una tarea programada

Puede crear una tarea programada o un trabajo cron que ejecute un script de AzCopy. El script identifica y carga los datos locales nuevos en el almacenamiento en la nube en un intervalo de tiempo específico.

Copie el comando de AzCopy en un editor de texto. Actualice los valores de parámetro del comando de AzCopy con los valores adecuados. Guarde el archivo como script.sh (Linux) o script.bat (Windows) para AzCopy.

En estos ejemplos se supone que la carpeta se denomina myFolder, que el nombre de la cuenta de almacenamiento es mystorageaccount y que el nombre del contenedor es mycontainer.

Nota:

El ejemplo de Linux anexa un token de SAS. Debe proporcionar uno en el comando. La versión actual de AzCopy V10 no admite la autorización de Azure AD en los trabajos cron.

azcopy sync "/mnt/myfiles" "https://mystorageaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-05-30T06:57:40Z&st=2019-05-29T22:57:40Z&spr=https&sig=BXHippZxxx54hQn/4tBY%2BE2JHGCTRv52445rtoyqgFBUo%3D" --recursive=true

En este tutorial, se utiliza Schtasks para crear una tarea programada en Windows. El comando Crontab se utiliza para crear un trabajo cron en Linux.

Schtasks permite a un administrador crear, eliminar, consultar, cambiar, ejecutar y finalizar tareas programadas en un equipo local o remoto. Cron permite a los usuarios de Unix y Linux ejecutar comandos o scripts en una fecha y hora especificadas mediante expresiones cron.

Para crear un trabajo cron en Linux, escriba el siguiente comando en un terminal:

crontab -e
*/5 * * * * sh /path/to/script.sh

Especificar la expresión cron */5 * * * * en el comando indica que el script de shell script.sh debe ejecutarse cada cinco minutos. Puede programar que el script se ejecute en un momento determinado todos los días, meses o años. Para más información sobre cómo establecer la fecha y la hora de ejecución de un trabajo, consulte las expresiones cron.

Para asegurarse de que la tarea programada o el trabajo cron se ejecutan correctamente, cree nuevos archivos en el directorio myFolder. Espere cinco minutos para confirmar que los nuevos archivos se han cargado en la cuenta de almacenamiento. Vaya al directorio de registro para ver los registros de salida de la tarea programada o el trabajo cron.

Pasos siguientes

Para más información sobre las formas de mover datos locales a Azure Storage y viceversa, siga este vínculo:

Para más información sobre AzCopy, consulte cualquiera de estos artículos: