Preservar 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

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

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

Preservar metadados para migração de lagos

Ao migrar dados de um data lake para outro, incluindo Amazon S3, Azure Blob, Azure Data Lake Storage Gen2 e Azure Files, você pode optar por preservar os metadados do arquivo junto com os dados.

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

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

Lidar com diferenças nos metadados: o Amazon S3 e o Armazenamento do Azure permitem conjuntos diferentes de caracteres nas chaves dos metadados especificados 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 você copia arquivos como estão do Amazon S3/Azure Data Lake Storage Gen2/Azure Blob storage/Azure Files para o Azure Data Lake Storage Gen2/Azure Blob storage/Azure Files com formato binário, você pode encontrar a opção Preservar na guia Copiar configurações de atividade>para criação de atividades ou na página Configurações em Copy Data Tool.

Copy activity preserve metadata

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 do Data Lake Storage Gen1/Gen2 para Gen2

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

A atividade de cópia 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 do superusuário ao coletor do Data Lake Storage Gen2.
  • Grupo: Copie e preserve o grupo proprietário de arquivos e diretórios. É necessário o acesso de superusuário para colecionar o Data Lake Storage Gen2 ou o usuário proprietário (se o usuário 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 você especificar copiar de um único arquivo, as ACLs nesse arquivo serão copiadas.

Nota

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

Importante

Ao optar por preservar ACLs, certifique-se de conceder permissões altas o suficiente para que o serviço opere em sua conta do coletor Data Lake Storage Gen2. Por exemplo, use a autenticação de chave de conta ou atribua a função de Proprietário de Dados de Blob de Armazenamento à entidade de serviço ou identidade gerenciada.

Ao configurar a fonte como Data Lake Storage Gen1/Gen2 com formato binário ou a opção de cópia binária, e colecionar 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 da Ferramenta Copiar Dados ou na guia Copiar Configurações de Atividade>para criação de atividades.

Data Lake Storage Gen1/Gen2 to 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 da Atividade de cópia: