Conservación de los metadatos y las ACL mediante la actividad de copia en Azure Data Factory o 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 información sobre cómo iniciar una nueva evaluación gratuita.

Cuando se usa la actividad de copia de las canalizaciones de Azure Data Factory o Synapse Analytics para copiar datos desde el origen al receptor en los escenarios siguientes, también se pueden conservar los metadatos y las ACL.

Conservación de los metadatos para la migración de lagos

Al migrar datos de un lago de datos a otro, incluido Amazon S3, Azure Blob, Azure Data Lake Storage Gen2 y Azure Files, puede optar por conservar los metadatos de archivo junto con los datos.

La actividad de copia admite la conservación de los siguientes atributos durante la copia de datos:

  • Todos los metadatos especificados por el cliente
  • Y las siguientes cinco propiedades del sistema integradas del almacén de datos: contentType, contentLanguage (excepto Amazon S3), contentEncodingcontentDispositioncacheControl.

Control de las diferencias en los metadatos: Amazon S3 y Azure Storage permiten diferentes conjuntos de caracteres en las claves de metadatos especificadas por el cliente. Cuando elige conservar los metadatos mediante la actividad de copia, el servicio reemplaza automáticamente los caracteres no válidos por "_".

Al copiar los archivos tal cual desde Amazon S3/Azure Data Lake Storage Gen2/Azure Blob Storage/Azure Files a Azure Data Lake Storage Gen2/Azure Blob Storage/Azure Files con el formato binario, puede encontrar la opción Conservar en la pestaña Actividad de copia>Configuración para la creación de la actividad o en la página Configuración en la herramienta Copiar datos.

Copy activity preserve metadata

Este es un ejemplo de configuración de JSON de la actividad de copia (consulte preserve):

"activities":[
    {
        "name": "CopyAndPreserveMetadata",
        "type": "Copy",
        "typeProperties": {
            "source": {
                "type": "BinarySource",
                "storeSettings": {
                    "type": "AmazonS3ReadSettings",
                    "recursive": true
                }
            },
            "sink": {
                "type": "BinarySink",
                "storeSettings": {
                    "type": "AzureBlobFSWriteSettings"
                }
            },
            "preserve": [
                "Attributes"
            ]
        },
        "inputs": [
            {
                "referenceName": "<Binary dataset Amazon S3/Azure Blob/ADLS Gen2 source>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Binary dataset for Azure Blob/ADLS Gen2 sink>",
                "type": "DatasetReference"
            }
        ]
    }
]

Conservación de las ACL desde Data Lake Storage Gen1/Gen2 a Gen2

Al actualizar de Azure Data Lake Storage Gen1 a Gen2 o copiar datos entre ADLS Gen2, se puede optar por conservar las listas de control de acceso (ACL) de POSIX junto con los archivos de datos. Para más información sobre el control de acceso, consulte Control de acceso en Azure Data Lake Storage Gen1 y Control de acceso en Azure Data Lake Storage Gen2.

La actividad de copia admite la conservación de los siguientes tipos de ACL durante la copia de datos. Puede seleccionar uno o varios tipos:

  • ACL: Copie y conserve las listas de control de acceso de POSIX en archivos y directorios. Esto copia las ACL existentes completas del origen al destino.
  • Propietario: Copie y conserve el usuario propietario de archivos y directorios. Se requiere acceso de superusuario en Data Lake Storage Gen2 de destino.
  • Grupo: Copie y conserve el grupo propietario de archivos y directorios. Se requiere acceso de superusuario para Data Lake Storage Gen2 de destino o el usuario propietario (si el usuario propietario también es miembro del grupo de destino).

Si especifica que quiere copiar desde una carpeta, el servicio replicará las ACL de esa carpeta concreta y los archivos y directorios incluidos en ella si recursive se establece en true. Si especifica que desea copiar desde un único archivo, se copiarán las ACL de ese archivo.

Nota

Cuando use la actividad de copia para conservar las ACL de Data Lake Storage Gen1/Gen2 a Gen2, se sobrescribirán las ACL existentes en la carpeta o los archivos correspondientes de Gen2 del receptor.

Importante

Si decide conservar las ACL, asegúrese de que concede permisos lo suficientemente altos para que el servicio funcione en la cuenta de destino de Data Lake Storage Gen2. Por ejemplo, utilice la autenticación de clave de cuenta o asigne el rol Propietario de datos de Blob Storage a la entidad de servicio o identidad administrada.

Si configura el origen como Data Lake Storage Gen1/Gen2 con la opción de formato binario o de copia binaria, y el receptor como Data Lake Storage Gen2 con las mismas opciones, puede encontrar la opción Conservar en la página Configuración de la herramienta Copiar datos o en la pestaña Copiar actividad>Configuración para la creación de actividades.

Data Lake Storage Gen1/Gen2 to Gen2 Preserve ACL

Este es un ejemplo de configuración de JSON de la actividad de copia (consulte preserve):

"activities":[
    {
        "name": "CopyAndPreserveACLs",
        "type": "Copy",
        "typeProperties": {
            "source": {
                "type": "BinarySource",
                "storeSettings": {
                    "type": "AzureDataLakeStoreReadSettings",
                    "recursive": true
                }
            },
            "sink": {
                "type": "BinarySink",
                "storeSettings": {
                    "type": "AzureBlobFSWriteSettings"
                }
            },
            "preserve": [
                "ACL",
                "Owner",
                "Group"
            ]
        },
        "inputs": [
            {
                "referenceName": "<Binary dataset name for Azure Data Lake Storage Gen1/Gen2 source>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Binary dataset name for Azure Data Lake Storage Gen2 sink>",
                "type": "DatasetReference"
            }
        ]
    }
]

Consulte los otros artículos de la actividad de copia: