Inicio rápido: Creación de una instancia de Azure Data Factory mediante una plantilla de Resource Manager

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

En esta guía de inicio rápido se describe cómo usar una plantilla de Azure Resource Manager (plantilla de Resource Manager) para crear una instancia de Azure Data Factory. La canalización que ha creado en esta factoría de datos copia los datos de una carpeta a otra en Azure Blob Storage. Para ver un tutorial acerca de cómo transformar datos mediante Azure Data Factory, consulte Tutorial: Transformación de datos con Spark.

Una plantilla de Azure Resource Manager es un archivo de notación de objetos JavaScript (JSON) que define tanto la infraestructura como la configuración de un proyecto. La plantilla usa sintaxis declarativa. Se describe la implementación deseada sin escribir la secuencia de comandos de programación para crear la implementación.

Nota:

En este artículo no se ofrece una introducción detallada al servicio Data Factory. Para ver una introducción al servicio Azure Data Factory, consulte Introducción al servicio Azure Data Factory.

Si su entorno cumple los requisitos previos y está familiarizado con el uso de plantillas de Resource Manager, seleccione el botón Implementar en Azure. La plantilla se abrirá en Azure Portal.

Button to deploy the Resource Manager template to Azure.

Requisitos previos

Suscripción de Azure

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

Creación de un archivo

Abra un editor de texto, como el Bloc de notas, y cree un archivo denominado emp.txt con el siguiente contenido:

John, Doe
Jane, Doe

Guarde el archivo en la carpeta C:\ADFv2QuickStartPSH. (Si la carpeta no existe, créela).

Revisión de la plantilla

La plantilla usada en este inicio rápido forma parte de las plantillas de inicio rápido de Azure.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.26.54.24096",
      "templateHash": "17339534711754973978"
    }
  },
  "parameters": {
    "dataFactoryName": {
      "type": "string",
      "defaultValue": "[format('datafactory{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "Data Factory Name"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location of the data factory."
      }
    },
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[format('storage{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "Name of the Azure storage account that contains the input/output data."
      }
    },
    "blobContainerName": {
      "type": "string",
      "defaultValue": "[format('blob{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "Name of the blob container in the Azure Storage account."
      }
    }
  },
  "variables": {
    "dataFactoryLinkedServiceName": "ArmtemplateStorageLinkedService",
    "dataFactoryDataSetInName": "ArmtemplateTestDatasetIn",
    "dataFactoryDataSetOutName": "ArmtemplateTestDatasetOut",
    "pipelineName": "ArmtemplateSampleCopyPipeline"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices",
      "apiVersion": "2023-01-01",
      "name": "[format('{0}/{1}', parameters('storageAccountName'), 'default')]",
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
      ]
    },
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-01-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "minimumTlsVersion": "TLS1_2",
        "supportsHttpsTrafficOnly": true,
        "allowBlobPublicAccess": false
      }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
      "apiVersion": "2023-01-01",
      "name": "[format('{0}/{1}/{2}', parameters('storageAccountName'), 'default', parameters('blobContainerName'))]",
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccountName'), 'default')]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories",
      "apiVersion": "2018-06-01",
      "name": "[parameters('dataFactoryName')]",
      "location": "[parameters('location')]",
      "identity": {
        "type": "SystemAssigned"
      }
    },
    {
      "type": "Microsoft.DataFactory/factories/linkedservices",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]",
      "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
          "connectionString": "[format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}', parameters('storageAccountName'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2023-01-01').keys[0].value)]"
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories/datasets",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryDataSetInName'))]",
      "properties": {
        "linkedServiceName": {
          "referenceName": "[variables('dataFactoryLinkedServiceName')]",
          "type": "LinkedServiceReference"
        },
        "type": "Binary",
        "typeProperties": {
          "location": {
            "type": "AzureBlobStorageLocation",
            "container": "[parameters('blobContainerName')]",
            "folderPath": "input",
            "fileName": "emp.txt"
          }
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.DataFactory/factories/linkedservices', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories/datasets",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryDataSetOutName'))]",
      "properties": {
        "linkedServiceName": {
          "referenceName": "[variables('dataFactoryLinkedServiceName')]",
          "type": "LinkedServiceReference"
        },
        "type": "Binary",
        "typeProperties": {
          "location": {
            "type": "AzureBlobStorageLocation",
            "container": "[parameters('blobContainerName')]",
            "folderPath": "output"
          }
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.DataFactory/factories/linkedservices', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories/pipelines",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('pipelineName'))]",
      "properties": {
        "activities": [
          {
            "name": "MyCopyActivity",
            "type": "Copy",
            "typeProperties": {
              "source": {
                "type": "BinarySource",
                "storeSettings": {
                  "type": "AzureBlobStorageReadSettings",
                  "recursive": true
                }
              },
              "sink": {
                "type": "BinarySink",
                "storeSettings": {
                  "type": "AzureBlobStorageWriteSettings"
                }
              },
              "enableStaging": false
            },
            "inputs": [
              {
                "referenceName": "[variables('dataFactoryDataSetInName')]",
                "type": "DatasetReference"
              }
            ],
            "outputs": [
              {
                "referenceName": "[variables('dataFactoryDataSetOutName')]",
                "type": "DatasetReference"
              }
            ]
          }
        ]
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.DataFactory/factories/datasets', parameters('dataFactoryName'), variables('dataFactoryDataSetInName'))]",
        "[resourceId('Microsoft.DataFactory/factories/datasets', parameters('dataFactoryName'), variables('dataFactoryDataSetOutName'))]"
      ]
    }
  ],
  "outputs": {
    "name": {
      "type": "string",
      "value": "[variables('pipelineName')]"
    },
    "resourceId": {
      "type": "string",
      "value": "[resourceId('Microsoft.DataFactory/factories/pipelines', parameters('dataFactoryName'), variables('pipelineName'))]"
    },
    "resourceGroupName": {
      "type": "string",
      "value": "[resourceGroup().name]"
    },
    "location": {
      "type": "string",
      "value": "[parameters('location')]"
    }
  }
}

Hay recursos de Azure definidos en la plantilla:

Encontrará más ejemplos de plantillas de Azure Data Factory en la galería de plantillas de inicio rápido.

Implementación de la plantilla

  1. Seleccione la imagen siguiente para iniciar sesión en Azure y abrir una plantilla. La plantilla crea una cuenta de Azure Data Factory, una cuenta de almacenamiento y un contenedor de blobs.

    Button to deploy the Resource Manager template to Azure.

  2. Seleccione o escriba los siguientes valores.

    Deploy ADF ARM template

    A menos que se especifique, utilice los valores predeterminados para crear los recursos de Azure Data Factory:

    • Suscripción: Seleccione una suscripción de Azure.
    • Grupo de recursos: Seleccione Crear nuevo, escriba un nombre único para el grupo de recursos y seleccione Aceptar.
    • Región: Seleccione una ubicación. Por ejemplo Este de EE. UU.
    • Nombre de la instancia de Data Factory: use el valor predeterminado.
    • Ubicación: Use el valor predeterminado.
    • Nombre de cuenta de almacenamiento: Use el valor predeterminado.
    • Contenedor de blobs: Use el valor predeterminado.

Revisión de los recursos implementados

  1. Seleccione Ir al grupo de recursos.

    Resource Group

  2. Verifique que la instancia de Azure Data Factory se haya creado.

    1. El nombre de la instancia de Azure Data Factory tiene el formato: <uniqueid>.

    Sample Data Factory

  3. Verifique que se haya creado la cuenta de almacenamiento.

    1. El nombre de la cuenta de almacenamiento tiene el formato: storage<uniqueid>.

    Storage Account

  4. Seleccione la cuenta de almacenamiento creada y, a continuación, seleccione Contenedores.

    1. En la página Contenedores, seleccione el contenedor de blob que ha creado.
      1. El nombre del contenedor de blobs tiene el formato: blob<uniqueid>.

    Blob container

Cargar un archivo

  1. En la página Contenedores, seleccione Cargar.

  2. En el panel derecho, seleccione el cuadro Archivos, a continuación, busque y seleccione el archivo emp.txt que creó anteriormente.

  3. Expanda el título Avanzado.

  4. En el cuadro Cargar en carpeta, escriba input.

  5. Seleccione el botón Cargar. Debería ver el archivo emp.txt y el estado de la carga en la lista.

  6. Seleccione el icono Cerrar (X) para cerrar la página Cargar blob.

    Upload file to input folder

Mantenga abierta la página Contenedor, ya que puede usarla para verificar el resultado al final de esta guía de inicio rápido.

Inicio del desencadenador

  1. Vaya a la página Factorías de datos, y seleccione la factoría de datos que ha creado.

  2. Seleccione Abrir en el icono Azure Data Factory Studio.

    Author & Monitor

  3. Seleccione la pestaña Creador.

  4. Seleccione la canalización creada: ArmtemplateSampleCopyPipeline.

    ARM template pipeline

  5. Seleccione Agregar desencadenador>Trigger Now (Desencadenar ahora).

    Trigger

  6. En el panel derecho, en Ejecución de la canalización, seleccione Aceptar.

Supervisar la canalización

  1. Seleccione la pestaña Supervisión.

  2. Vea las ejecuciones de actividad asociadas con la ejecución de la canalización. En este inicio rápido, la canalización tiene solo una actividad del tipo: Copy. Por lo tanto, se ve una ejecución de dicha actividad.

    Successful run

Verificación del archivo de salida

La canalización crea automáticamente una carpeta de salida en el contenedor de blobs. A continuación, copia el archivo emp.txt de la carpeta de entrada a la carpeta de salida.

  1. En Azure Portal, en la página Contenedores, seleccione Actualizar para ver la carpeta de salida.

  2. En la lista de carpetas, seleccione output.

  3. Confirme que emp.txt se ha copiado en la carpeta de salida.

    Output

Limpieza de recursos

Hay dos forma de eliminar los recursos que ha creado en la guía de inicio rápido. Puede eliminar el grupo de recursos de Azure, lo que incluye todos los recursos del grupo de recursos. Si quiere mantener intacto el resto de recursos, elimine solo la factoría de datos que creó en este tutorial.

Al eliminar un grupo de recursos, se eliminan todos los recursos incluidas las factorías de datos. Ejecute el comando siguiente para eliminar el grupo de recursos completo:

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Si desea eliminar solo la factoría de datos, no el grupo de recursos completo, ejecute el siguiente comando:

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

En esta guía de inicio rápido, ha creado una instancia de Azure Data Factory mediante una plantilla de Resource Manager y ha validado la implementación. Para obtener más información sobre Azure Data Factory y Azure Resource Manager, continúe con los artículos siguientes.