Preservar metadados e ACLs usando a atividade Copy no Azure Data Factory ou Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Quando você usa a atividade cópia dos pipelines do Azure Data Factory ou Synapse Analytics para copiar dados da origem para o coletor, nos cenários a seguir, você também pode preservar os metadados e as ACLs.

Preservar metadados para a migração do lake

Ao migrar dados de um data lake para outro, incluindo o Amazon S3, o Armazenamento de Blobs do Azure, o Azure Data Lake Storage Gen2 e os Arquivos do Azure, você pode preservar os metadados do arquivo junto com os dados.

A atividade Copy dá suporte à preservação dos seguintes atributos durante a cópia de dados:

  • Todos os metadados especificados pelo cliente
  • E as cinco propriedades de sistema interno do armazenamento de dados a seguir: contentType, contentLanguage (com exceção do Amazon S3), contentEncoding, contentDisposition, cacheControl.

Lidar com diferenças nos metadados: o Amazon S3 e o Armazenamento do Microsoft Azure permitem conjuntos diferentes de caracteres nas chaves de metadados especificados pelo cliente. Quando você opta por preservar metadados usando a atividade Copy, o serviço substitui automaticamente os caracteres inválidos por '_'.

Quando você copia arquivos no estado em que se encontram do Amazon S3/Azure Data Lake Storage Gen2/Armazenamento de Blobs do Azure/Arquivos do Azure no Azure Data Lake Storage Gen2/Armazenamento de Blobs do Azure/Arquivos do Azure com formato binário, há a opção Preservar na guia Copiar Atividade>Configurações para a criação de atividade ou a página Configurações na ferramenta Copiar Dados.

Copy activity preserve metadata

Aqui está um exemplo de configuração de JSON da atividade Copy (confira 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 do Data Lake Storage Gen1/Gen2 para Gen2

Ao atualizar do Azure Data Lake Storage Gen1 para Gen2, ou ao copiar dados entre ADLS Gen2, você pode optar por preservar as access control lists (ACLs – listas de controle de acesso) do POSIX junto com os dados. Para mais informações sobre controle de acesso, confira Controle de acesso no Azure Data Lake Storage Gen1 e Controle de acesso no Azure Data Lake Storage Gen2.

A atividade Copy dá suporte à 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 as ACLs completas existentes da origem para o coletor.
  • Proprietário: copie e preserve o usuário proprietário de arquivos e diretórios. O acesso de superusuário ao Data Lake Storage Gen2 de coletor é necessário.
  • Grupo: copie e preserve o grupo proprietário de arquivos e diretórios. É necessário o acesso de superusuário ao coletor Data Lake Storage Gen2 ou ao usuário proprietário (se o usuário proprietário também for um membro do grupo de destino).

Se você especifica para copiar de uma pasta, o serviço replica as ACLs para aquela pasta especificada, além dos arquivos e diretórios relacionados à ela, se recursive for definido como true. Se você especifica para copiar de um único arquivo, as ACLs nesse arquivo serão copiadas.

Observação

Quando você usa a atividade da cópia para preservar ACLs do Data Lake Storage Gen1/Gen2 para o Gen2, as ACLs existentes nas pastas/arquivos correspondentes do Gen2 do coletor serão substituídas.

Importante

Ao optar por preservar as ACLs, certifique-se de conceder permissões altas o suficiente para o serviço operar na conta do Data Lake Storage Gen2 do coletor. Por exemplo, use a autenticação de chave de conta ou atribua a função de proprietário de dados do blob de armazenamento à entidade de serviço ou à identidade gerenciada.

Quando você configura a origem como Data Lake Storage Gen1/Gen2 com o formato binário ou a opção de cópia binária e o coletor como Data Lake Storage Gen2 com formato binário ou a opção de cópia binária, você pode encontrar a opção Preservar na página Configurações na Ferramenta Copiar Dados ou na guia Configurações>da atividade Copy para a criação de atividades.

Data Lake Storage Gen1/Gen2 to Gen2 Preserve ACL

Aqui está um exemplo de configuração de JSON da atividade Copy (confira 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 os outros artigos sobre atividade de cópia: