Preserve metadados e ACLs usando a atividade de cópia no Azure Data Factory ou Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.

Quando utiliza as pipelines do Azure Data Factory ou do Synapse Analytics para copiar dados da origem para o destino, nos cenários seguintes, pode também preservar os metadados e as ACLs.

Preservar metadados para migração de lagos

Quando migra dados de um data lake para outro, incluindo Amazon S3, Azure Blob, Azure Data Lake Storage Gen2 e Azure Files, pode optar por preservar os metadados do ficheiro juntamente com os dados.

Copy activity suporta a preservação dos seguintes atributos durante a cópia de dados:

  • Todos os metadados especificados pelo cliente
  • E as cinco propriedades de sistema integradas de armazenamento de dados a seguir: , contentType, contentLanguage (exceto para Amazon S3), contentEncoding, contentDisposition, cacheControl.

Gerir as diferenças nos metadados: Amazon S3 e Azure Storage permitem diferentes conjuntos de caracteres nas chaves de metadados especificadas pelo cliente. Quando você opta por preservar metadados usando a atividade de cópia, o serviço substitui automaticamente os caracteres inválidos por '_'.

Quando copias ficheiros as-is do Amazon S3/Azure Data Lake Storage Gen2/Azure Blob storage/Azure Files para Azure Data Lake Storage Gen2/Azure Blob storage/Azure Files com formato binário, pode encontrar a opção Preservar na Copy Activity>Settings para a autoria de atividades ou na página Settings na Ferramenta Copy Data.

Atividade de cópia preservar metadados

Aqui está um exemplo de configuração JSON da atividade de cópia (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"
            }
        ]
    }
]

Preservar ACLs de Data Lake Storage Gen1/Gen2 para Gen2

Quando atualiza do Azure Data Lake Storage Gen1 para Gen2 ou copia dados entre ADLS Gen2, pode optar por preservar as listas de controlo de acesso POSIX (ACLs) juntamente com os ficheiros de dados. Para mais informações sobre controlo de acessos, consulte controlo de acesso em Azure Data Lake Storage Gen1 e controlo de acesso em Azure Data Lake Storage Gen2.

Copy activity suporta a preservação dos seguintes tipos de ACLs durante a cópia de dados. Você pode selecionar um ou mais tipos:

  • ACL: Copie e preserve listas de controle de acesso POSIX em arquivos e diretórios. Ele copia todas as ACLs existentes da origem para o coletor.
  • Proprietário: Copie e preserve o usuário proprietário de arquivos e diretórios. É necessário o acesso de super-utilizador ao sink do Data Lake Storage Gen2.
  • Grupo: Copie e preserve o grupo proprietário de arquivos e diretórios. É necessário acesso de superutilizador ao sink Data Lake Storage Gen2 ou ao utilizador proprietário (se o utilizador proprietário também for membro do grupo-alvo).

Se você especificar copiar de uma pasta, o serviço replicará as ACLs dessa determinada pasta e os arquivos e diretórios sob ela, se recursive estiver definido como true. Se especificares copiar a partir de um único ficheiro, as ACLs nesse ficheiro serão copiadas.

Nota

Quando usar a atividade de cópia para preservar ACLs do Data Lake Storage Gen1/Gen2 para Gen2, as ACLs existentes na pasta/ficheiros correspondentes do sink Gen2 serão sobrescritas.

Importante

Quando optar por preservar ACLs, certifique-se de conceder permissões suficientemente elevadas para que o serviço possa operar no contexto da sua conta de Data Lake Storage Gen2 de destino. Por exemplo, use a autenticação de chave de conta ou atribua a função de Proprietário de Dados de Blob de Armazenamento ao principal do serviço ou à identidade gerida.

Quando configura a origem como Data Lake Storage Gen1/Gen2 com formato binário ou a opção de cópia binária, e o destino como Data Lake Storage Gen2 com formato binário ou a opção de cópia binária, pode encontrar a opção Preservar na página Configurações na Ferramenta de Cópia de Dados ou no separador Atividade de Cópia>Configurações para autoria de atividades.

Data Lake Storage Gen1/Gen2 para Gen2 Preserve ACL

Aqui está um exemplo de configuração JSON da atividade de cópia (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"
            }
        ]
    }
]

Veja os outros artigos de "Copy Activity":