Actividad de copia en Azure Data Factory y Azure Synapse Analytics

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 más información sobre cómo iniciar una nueva evaluación gratuita!

En canalizaciones de Azure Data Factory y Synapse, puede usar la actividad de copia para copiar datos entre almacenes de datos locales y en la nube. Después de copiar los datos, puede usar otras actividades para luego transformarlos y analizarlos. La actividad de copia también puede usarse para publicar los resultados de transformación y análisis de inteligencia empresarial (BI) y el consumo de la aplicación.

The role of the Copy activity

La actividad de copia se ejecuta en un entorno de ejecución de integración. Puede usar diferentes tipos de entornos de ejecución de integración para diferentes escenarios de copia de datos:

  • Al copiar datos entre dos almacenes de datos a los que se puede acceder públicamente mediante Internet desde cualquier dirección IP, puede usar el entorno de ejecución de integración de Azure para la actividad de copia. Este entorno de ejecución de integración es seguro, confiable, escalable y está globalmente disponible.
  • Cuando vaya a copiar datos con almacenes de datos como origen o destino ubicados en el entorno local o en una red con control de acceso (por ejemplo, una red virtual de Azure), debe configurar un entorno de ejecución de integración autohospedado.

Un entorno de ejecución de integración debe estar asociado con todos los almacenes de datos receptores y de origen. Para información sobre cómo la actividad de copia determina qué entorno de ejecución de integración se va a usar, consulte Determinar qué entorno de ejecución de integración usar.

Para copiar datos de un origen a un receptor, el servicio que ejecuta la actividad de copia realiza estos pasos:

  1. Lee datos desde un almacén de datos de origen.
  2. Realiza procesos de serialización y deserialización, compresión y descompresión, asignación de columnas, etc. Lleva a cabo estas operaciones según la configuración del conjunto de datos de entrada y salida, y la actividad de copia.
  3. Escribe datos en el almacén de datos de receptor o destino.

Copy activity overview

Nota:

Si usa un entorno de ejecución de integración autohospedado en un almacén de datos de origen o receptor en una actividad de copia, tanto el origen como el receptor deben ser accesibles desde el servidor que hospeda el entorno de ejecución de integración para que la actividad de copia se realice correctamente.

Almacenes de datos y formatos que se admiten

Category Almacén de datos Se admite como origen Se admite como receptor Compatible con IR de Azure Compatible con IR autohospedado
Azure Almacenamiento de blobs de Azure
  índice de Azure AI Search
  Azure Cosmos DB para NoSQL
  Azure Cosmos DB for MongoDB
  Azure Data Explorer
  Azure Data Lake Storage Gen1
  Azure Data Lake Storage Gen2
  Azure Database for MariaDB
  Azure Database for MySQL
  Azure Database para PostgreSQL
  Azure Databricks Delta Lake
  Archivos de Azure
  Azure SQL Database
  Instancia administrada de Azure SQL
  Azure Synapse Analytics
  Azure Table Storage
Base de datos Amazon RDS para Oracle
  Amazon RDS para SQL Server
  Amazon Redshift
  DB2
  Drill
  Google BigQuery
  Greenplum
  HBase
  Hive
  Apache Impala
  Informix
  MariaDB
  Microsoft Access
  MySQL
  Netezza
  Oracle
  Phoenix
  PostgreSQL
  Presto
  SAP Business Warehouse a través de Open Hub
  SAP Business Warehouse a través de expresión multidimensional
  SAP HANA Receptor compatible solo con el conector ODBC y el SAP HANA ODBC
  SAP Table
  Snowflake
  Spark
  SQL Server
  Sybase
  Teradata
  Vertica
NoSQL Cassandra
  Couchbase (versión preliminar)
  MongoDB
  MongoDB Atlas
Archivo Amazon S3
  Almacenamiento compatible con Amazon S3
  Sistema de archivos
  FTP
  Google Cloud Storage
  HDFS
  Oracle Cloud Storage
  SFTP
Protocolo genérico HTTP genérico
  OData genérico
  ODBC genérico
  REST genérico
Servicios y aplicaciones Servicio web de Amazon Marketplace
  Concur (versión preliminar)
  Dataverse
  Dynamics 365
  Dynamics AX
  Dynamics CRM
  Google AdWords
  HubSpot
  Jira
  Magento (versión preliminar)
  Marketo (versión preliminar)
  Microsoft 365
  Oracle Eloqua (versión preliminar)
  Oracle Responsys (versión preliminar)
  Oracle Service Cloud (versión preliminar)
  PayPal (versión preliminar)
  QuickBooks (versión preliminar)
  Salesforce
  Servicio de Salesforce en la nube
  Nube de marketing de Salesforce
  SAP Cloud for Customer (C4C)
  SAP ECC
  ServiceNow
Lista de SharePoint Online
  Shopify (versión preliminar)
  Square (versión preliminar)
  Tabla web (tabla HTML)
  Xero
  Zoho (versión preliminar)

Nota

Si un conector está marcado como versión preliminar, puede probarlo y enviarnos sus comentarios. Si quiere tener una dependencia de los conectores de versión preliminar de la solución, póngase en contacto con el servicio de soporte técnico de Azure.

Formatos de archivos admitidos

Azure Data Factory admite los siguientes formatos de archivo. Consulte los artículos para conocer la configuración basada en el formato.

La actividad de copia se puede usar para copiar archivos tal cual entre dos almacenes de datos basados en archivos, en cuyo caso los datos se copian de manera eficaz sin serialización ni deserialización. Además, también puede analizar o generar archivos con un formato determinado; por ejemplo, puede realizar lo siguiente:

  • Copiar datos de una base de datos de SQL Server y escribirlos en Azure Data Lake Storage Gen2 en formato Parquet.
  • Copiar archivos en formato de texto (CSV) desde el sistema de archivos local y escribirlos en Azure Blob Storage en formato Avro
  • Copiar archivos comprimidos del sistema de archivos local, descomprimirlos sobre la marcha y escribirlos en Azure Data Lake Storage Gen2.
  • Copiar datos en formato de texto comprimido Gzip (CSV) de Azure Blob Storage y escribirlos en Azure SQL Database
  • Muchas más actividades que requieren serialización y deserialización o compresión y descompresión.

Regiones admitidas

El servicio que permite la actividad de copia está disponible globalmente en las regiones y zonas geográficas enumeradas en Ubicaciones de Azure Integration Runtime. La topología disponible globalmente garantiza un movimiento de datos eficiente que, normalmente, evita saltos entre regiones. Consulte Productos por región para comprobar la disponibilidad de Data Factory, Synapse para áreas de trabajo y el movimiento de datos en una región específica.

Configuración

Para realizar la actividad de copia con una canalización, puede usar una de los siguientes herramientas o SDK:

En general, para usar la actividad de copia en canalizaciones de Azure Data Factory o Synapse, debe hacer lo siguiente:

  1. Crear servicios vinculados para el almacén de datos de origen y el almacén de datos receptor. Puede encontrar la lista de conectores admitidos en la sección Almacenes de datos y formatos que se admiten de este artículo. Consulte la sección "Propiedades del servicio vinculado" del artículo sobre conectores para información sobre la configuración y las propiedades admitidas.
  2. Crear conjuntos de datos para el origen y el receptor. Consulte las secciones "Propiedades del conjunto de datos" de los artículos sobre los conectores de origen y receptor para información sobre la configuración y las propiedades admitidas.
  3. Crear una canalización con la actividad de copia. Se proporciona un ejemplo en la sección siguiente.

Sintaxis

La plantilla siguiente de una actividad de copia contiene una lista completa de todas las propiedades admitidas. Especifique las que se adapten a su escenario.

"activities":[
    {
        "name": "CopyActivityTemplate",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<source dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<sink dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>",
                <properties>
            },
            "sink": {
                "type": "<sink type>"
                <properties>
            },
            "translator":
            {
                "type": "TabularTranslator",
                "columnMappings": "<column mapping>"
            },
            "dataIntegrationUnits": <number>,
            "parallelCopies": <number>,
            "enableStaging": true/false,
            "stagingSettings": {
                <properties>
            },
            "enableSkipIncompatibleRow": true/false,
            "redirectIncompatibleRowSettings": {
                <properties>
            }
        }
    }
]

Detalles de la sintaxis

Propiedad Descripción ¿Necesario?
type Para una actividad de copia, establezca esta propiedad en Copy.
inputs Especifique el conjunto de datos que creó y que señala a los datos de origen. La actividad de copia admite solo una entrada.
outputs Especifique el conjunto de datos que creó y que señala a los datos del receptor. La actividad de copia admite solo una salida.
typeProperties Especifique las propiedades para configurar la actividad de copia.
source Especifique el tipo de origen de copia y las propiedades correspondientes para la recuperación de datos.
Para más información, consulte la sección "Propiedades de la actividad de copia" del artículo sobre conectores que aparece en Almacenes de datos y formatos que se admiten.
sink Especifique el tipo de receptor de copia y las propiedades correspondientes para escribir datos.
Para más información, consulte la sección "Propiedades de la actividad de copia" del artículo sobre conectores que aparece en Almacenes de datos y formatos que se admiten.
translator Especifique asignaciones de columna explícitas de origen a receptor. Esta propiedad se aplica cuando el comportamiento de copia predeterminado no satisface sus necesidades.
Para más información, consulte Asignación de esquemas en la actividad de copia.
No
dataIntegrationUnits Especifique una medida que represente la cantidad de potencia que emplea el entorno de ejecución de integración de Azure para la copia de datos. Estas unidades se conocían anteriormente como unidades de movimiento de datos de nube (DMU).
Para más información, consulte Unidades de integración de datos.
No
parallelCopies Especifique el paralelismo que quiere que use la actividad de copia al leer datos del origen y escribirlos en el receptor.
Para obtener más información, consulte Copia paralela.
No
preservar Especifique si desea conservar los metadatos o las ACL durante la copia de datos.
Para obtener más información, vea Conservación de metadatos.
No
enableStaging
stagingSettings
Especifique si quiere almacenar provisionalmente los datos en una instancia de Blob Storage en lugar de copiarlos directamente del origen al receptor.
Para información sobre escenarios útiles y detalles de configuración, consulte Copia almacenada provisionalmente.
No
enableSkipIncompatibleRow
redirectIncompatibleRowSettings
Elija cómo controlar las filas incompatibles al copiar datos del origen al receptor.
Para más información, consulte Tolerancia a errores.
No

Supervisión

Puede supervisar la ejecución de la actividad de copia en canalizaciones de Azure Data Factory y Synapse visualmente o mediante programación. Para obtener más detalles, consulte Supervisión de la actividad de copia.

Copia incremental

Las canalizaciones de Data Factory y Synapse le permiten copiar de forma incremental datos diferenciales de un almacén de datos de origen a otro receptor. Para más información, consulte Tutorial: Copia de datos de forma incremental.

Rendimiento y optimización

La experiencia de supervisión de la actividad de copia muestra las estadísticas de rendimiento de copia de cada una de las ejecuciones de actividad. En el artículo Guía de escalabilidad y rendimiento de la actividad de copia se describen los factores claves que afectan al rendimiento del movimiento de datos mediante la actividad de copia. También se muestran los valores de rendimiento observados durante las pruebas y se describe cómo optimizar el rendimiento de la actividad de copia.

Reanudación desde el último error de ejecución

La actividad de copia admite la reanudación desde el último error de ejecución cuando copia un gran tamaño de archivos tal cual con un formato binario entre almacenes basados en archivos y elige conservar la jerarquía carpeta/archivo del origen al receptor, por ejemplo, para migrar datos de Amazon S3 a Azure Data Lake Storage Gen2. Se aplica a los siguientes conectores basados en archivo: Amazon S3, Amazon S3 Compatible StorageAzure Blob, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure Files, File System, FTP, Google Cloud Storage, HDFS, Oracle Cloud Storage y SFTP.

Puede aprovechar la reanudación de la actividad de copia de las dos maneras siguientes:

  • Reintento de nivel de actividad: Puede establecer el número de reintentos en la actividad de copia. Durante la ejecución de la canalización, si se produce un error en la ejecución de la actividad de copia, el siguiente reintento automático se iniciará desde el punto de error de la última prueba.

  • Volver a ejecutar desde la actividad con errores: Una vez finalizada la ejecución de la canalización, también puede desencadenar una nueva ejecución desde la actividad con errores en la vista de supervisión de la interfaz de usuario de ADF o mediante programación. Si la actividad con errores es una actividad de copia, la canalización no solo se volverá a ejecutar desde esta actividad, sino que también se reanudará desde el punto de error de la ejecución anterior.

    Copy resume

Algunos puntos que se deben tener en cuenta:

  • La reanudación se produce en el nivel de archivo. Si se produce un error en la actividad de copia al copiar un archivo, este archivo específico se volverá a copiar en la siguiente ejecución.
  • Para que la reanudación funcione correctamente, no cambie la configuración de la actividad de copia entre las reactivaciones.
  • Al copiar datos desde Amazon S3, Azure Blob, Azure Data Lake Storage Gen2 y Google Cloud Storage, la actividad de copia se puede reanudar a partir de un número arbitrario de archivos copiados. Por su parte, cuando los orígenes son el resto de conectores basados en archivos, la actividad de copia actualmente admite la reanudación desde un número limitado de archivos, normalmente en el intervalo de decenas de miles y varía en función de la longitud de las rutas de acceso de archivo. Los archivos que superen este número se volverán a copiar durante la nueva ejecución.

En el caso de otros escenarios de copia de archivos binarios, la ejecución de la actividad de copia comienza desde el principio.

Conservación de los metadatos junto con los datos

Al copiar datos desde el origen al receptor, en escenarios como la migración de Data Lake, también puede optar por conservar los metadatos y las ACL junto con los datos mediante la actividad de copia. Consulte Conservación de metadatos para obtener más información.

Adición de etiquetas de metadatos a un receptor basado en archivos

Cuando el receptor está basado en Azure Storage (Azure Data Lake Storage o Azure Blob Storage), podemos optar por agregar metadatos a los archivos. Estos metadatos aparecerán como parte de las propiedades del archivo como pares clave-valor. Para todos los tipos de receptores basados en archivos, puede agregar metadatos que incluyan contenido dinámico mediante los parámetros de canalización, las variables del sistema, las funciones y las variables. Además de esto, para un receptor basado en archivos binarios, tiene la opción de agregar la fecha y hora de la última modificación (del archivo de origen) mediante la palabra clave $$LASTMODIFIED, así como valores personalizados como metadatos en el archivo receptor.

Asignación de tipo de datos y esquema

Para información sobre cómo la actividad de copia asigna los datos de origen al receptor, consulte Asignación de tipo de datos y esquema.

Adición de columnas adicionales durante la copia

Además de copiar datos desde el almacén de datos de origen al receptor, también puede configurar la adición de columnas de datos adicionales para copiar junto con el receptor. Por ejemplo:

  • Cuando copie desde un origen basado en archivos, almacene la ruta de acceso relativa del archivo como columna adicional para tener registrado de qué archivo proceden los datos.
  • Duplique la columna de origen especificada como otra columna.
  • Agregue una columna con la expresión de ADF para asociar variables del sistema ADF, como el nombre de la canalización o el identificador de la canalización, o bien almacene otros valores dinámicos de la salida de la actividad ascendente.
  • Agregue una columna con un valor estático para satisfacer sus necesidades de consumo descendente.

Puede encontrar la siguiente configuración en la pestaña de origen de la actividad de copia. También puede asignar esas columnas adicionales en la actividad de copia asignación de esquemas como de costumbre con los nombres de columna definidos.

Add additional columns in copy activity

Sugerencia

Esta característica funciona con el modelo de conjunto de datos más reciente. Si no ve esta opción desde la interfaz de usuario, intente crear un nuevo conjunto de datos.

Para configurarlo mediante programación, agregue la propiedad additionalColumns al origen de la actividad de copia:

Propiedad Descripción Obligatorio
additionalColumns Agregue columnas de datos adicionales para copiarlas en el receptor.

Cada objeto de la matriz additionalColumns representa una columna adicional. name define el nombre de la columna y value indica el valor de los datos de esa columna.

Los valores permitidos de los datos son:
- $$FILEPATH : una variable reservada indica almacenar la ruta de acceso relativa de los archivos de origen en la ruta de acceso de la carpeta especificada en el conjunto de datos. Se aplica en un origen basado en archivos.
- $$COLUMN:<source_column_name> : un patrón de variable reservada indica que se duplique la columna de origen especificada como otra columna.
- Expresión
- Valor estático
No

Ejemplo:

"activities":[
    {
        "name": "CopyWithAdditionalColumns",
        "type": "Copy",
        "inputs": [...],
        "outputs": [...],
        "typeProperties": {
            "source": {
                "type": "<source type>",
                "additionalColumns": [
                    {
                        "name": "filePath",
                        "value": "$$FILEPATH"
                    },
                    {
                        "name": "newColName",
                        "value": "$$COLUMN:SourceColumnA"
                    },
                    {
                        "name": "pipelineName",
                        "value": {
                            "value": "@pipeline().Pipeline",
                            "type": "Expression"
                        }
                    },
                    {
                        "name": "staticValue",
                        "value": "sampleValue"
                    }
                ],
                ...
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Sugerencia

Después de configurar columnas adicionales, recuerde asignarlas al receptor de destino, en la pestaña Asignación.

Creación automática de tablas de receptores

Al copiar datos en la base de datos SQL o Azure Synapse Analytics, si la tabla de destino no existe, la actividad de copia permite la creación automática en función de los datos de origen. Esto pretende ayudarle a empezar rápidamente a cargar los datos y evaluar SQL Database o Azure Synapse Analytics. Después de la ingesta de datos, puede revisar y ajustar el esquema de la tabla de receptores según sus necesidades.

Esta característica se acepta cuando se copian datos desde cualquier origen en los siguientes almacenes de datos de receptor. Puede encontrar la opción en la interfaz de usuario de creación de ADF – >Sink – >Table option –>Auto create table (Receptor - Opción de tabla - Creación automática de tabla) de la actividad de copia o bien a través de la propiedad tableOption en la carga útil del receptor de la actividad de copia.

Create sink tables

Tolerancia a errores

De forma predeterminada, la actividad de copia detiene la copia de datos y devuelve un error cuando las filas de datos de origen no son compatibles con las filas de datos del receptor. Para que la copia se realice correctamente, puede configurar la actividad de copia para omitir y registrar las filas incompatibles y copiar solo los datos compatibles. Para más información, consulte Tolerancia a errores de la actividad de copia en Azure Data Factory.

Comprobación de la coherencia de los datos

Cuando se mueven datos del almacén de origen al de destino, la actividad de copia proporciona una opción para realizar una comprobación adicional de la coherencia de los datos, con el fin de garantizar no solo que los datos se copien correctamente del almacén de origen al de destino, sino también la coherencia entre ambos almacenes. Si se encuentran archivos incoherentes durante el movimiento de datos, puede anular la actividad de copia o habilitar la opción de configuración de tolerancia a errores para seguir copiando el resto y omitir los archivos incoherentes. Para obtener los nombres de los archivos omitidos, habilite la configuración del registro de sesión en la actividad de copia. Consulte Comprobación de la coherencia de los datos en la actividad de copia para más información.

Registro de la sesión

Puede registrar los nombres de archivo copiados, lo que puede ayudarle a asegurarse de que los datos no se copian correctamente del almacén de origen al de destino, sino que también son coherentes entre el almacén de origen y el de destino mediante la revisión de los registros de sesión de la actividad de copia. Consulte Actividad de copia de inicios de sesión para más información.

Consulte las guías de inicio rápido, los tutoriales y los ejemplos siguientes: