Mantenere metadati e ACL usando l'attività di copia in Azure Data Factory o Synapse Analytics

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

Quando si usa l'attività di copia delle pipeline di Azure Data Factory o Synapse Analytics per copiare i dati dall'origine al sink, negli scenari seguenti è anche possibile conservare i metadati e gli ACL.

Conservare i metadati per la migrazione lake

Quando si esegue la migrazione dei dati da un data lake a un altro, tra cui Amazon S3, BLOB di Azure, Azure Data Lake Archiviazione Gen2 e File di Azure, è possibile scegliere di mantenere i metadati dei file insieme ai dati.

attività Copy supporta il mantenimento degli attributi seguenti durante la copia dei dati:

  • Tutti i metadati specificati dal cliente
  • E le cinque proprietà di sistema predefinite dell'archivio dati seguenti: contentType, contentLanguage (ad eccezione di Amazon S3), contentEncoding, , contentDispositioncacheControl.

Gestire le differenze nei metadati: Amazon S3 e Archiviazione di Azure consentono diversi set di caratteri nelle chiavi dei metadati specificati dal cliente. Quando si sceglie di mantenere i metadati usando l'attività di copia, il servizio sostituisce automaticamente i caratteri non validi con '_'.

Quando si copiano i file così come sono da Amazon S3/Azure Data Lake Archiviazione Gen2/Archiviazione BLOB di Azure/File di Azure ad Azure Data Lake Archiviazione Gen2/Archiviazione BLOB di Azure/File di Azure con formato binario, è possibile trovare l'opzione Preserve nell'attività >di copia Impostazioni scheda per la creazione di attività o la pagina Impostazioni in Strumento copia dati.

Copy activity preserve metadata

Ecco un esempio di configurazione JSON dell'attività di copia (vedere 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"
            }
        ]
    }
]

Mantenere gli elenchi di controllo di accesso da Data Lake Archiviazione Gen1/Gen2 a Gen2

Quando si esegue l'aggiornamento da Azure Data Lake Archiviazione Gen1 a Gen2 o si copiano dati tra ADLS Gen2, è possibile scegliere di mantenere gli elenchi di controllo di accesso POSIX (ACL) insieme ai file di dati. Per altre informazioni sul controllo di accesso, vedere Controllo di accesso in Azure Data Lake Archiviazione Gen1 e Controllo di accesso in Azure Data Lake Archiviazione Gen2.

attività Copy supporta il mantenimento dei tipi di ACL seguenti durante la copia dei dati. È possibile selezionare uno o più tipi:

  • ACL: copiare e mantenere gli elenchi di controllo di accesso POSIX nei file e nelle directory. Copia gli ACL completi dall'origine al sink.
  • Proprietario: copiare e mantenere l'utente proprietario di file e directory. È necessario l'accesso con privilegi avanzati utente al sink Data Lake Archiviazione Gen2.
  • Gruppo: copiare e mantenere il gruppo proprietario di file e directory. È necessario l'accesso con privilegi avanzati utente a Data Lake Archiviazione Gen2 o all'utente proprietario (se l'utente proprietario è anche membro del gruppo di destinazione).

Se si specifica di copiare da una cartella, il servizio replica gli ACL per la cartella specificata e i file e le directory sottostanti, se recursive è impostato su true. Se si specifica di copiare da un singolo file, gli elenchi di controllo di accesso in tale file vengono copiati.

Nota

Quando si usa l'attività di copia per mantenere gli elenchi di controllo di accesso da Data Lake Archiviazione Gen1/Gen2 a Gen2, gli ACL esistenti nella cartella o nei file corrispondenti di sink Gen2 verranno sovrascritti.

Importante

Quando si sceglie di mantenere gli elenchi di controllo di accesso, assicurarsi di concedere autorizzazioni sufficienti per il servizio per operare sull'account Data Lake di sink Archiviazione Gen2. Ad esempio, usare l'autenticazione della chiave dell'account o assegnare il ruolo proprietario dei dati BLOB Archiviazione all'entità servizio o all'identità gestita.

Quando si configura l'origine come Data Lake Archiviazione Gen1/Gen2 con formato binario o l'opzione copia binaria e sink come Data Lake Archiviazione Gen2 con formato binario o l'opzione copia binaria, è possibile trovare l'opzione Mantieni nella pagina Impostazioni in Copia dati strumento o nell'attività >di copia Impostazioni scheda per la creazione di attività.

Data Lake Storage Gen1/Gen2 to Gen2 Preserve ACL

Ecco un esempio di configurazione JSON dell'attività di copia (vedere 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"
            }
        ]
    }
]

Vedere gli altri articoli relativi all'attività di copia: