Сохранение метаданных и ACL с помощью действия Copy в Фабрике данных Azure или Synapse Analytics

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

При использовании действия Copy в конвейерах Фабрики данных Azure или Synapse Analytics для копирования данных из источника в приемник в следующих сценариях также можно сохранить метаданные и списки ACL.

Сохранение метаданных для миграции озера

При переносе данных из одного озера данных в другое, включая Amazon S3, BLOB-объект Azure, Azure Data Lake Storage 2-го поколения и Файлов Azure, можно сохранить метаданные файла вместе с данными.

Действие Copy поддерживает сохранение следующих атрибутов во время копирования данных:

  • Все указанные клиентом метаданные
  • Следующие пять встроенных системных свойств хранилища данных: contentType, contentLanguage (за исключением Amazon S3), contentEncoding, contentDisposition, cacheControl.

Обработка различий в метаданных: Amazon S3 и служба хранилища Azure позволяют использовать разные наборы символов в ключах указанных пользователем метаданных. Если вы сохраните метаданные с помощью действия Copy, служба автоматически заменит недопустимые символы символом "_".

При копировании файлов "как есть" из Amazon S3/Azure Data Lake Storage 2-го поколения/хранилища BLOB-объекта Azure/Файлов Azure в Azure Data Lake Storage 2-го поколения/хранилища BLOB-объект Azure/Файлов Azure с двоичным форматом можно найти параметр Сохранить на вкладке Действия копирования>Параметры для разработки действия или на странице Параметры в средстве "Копирование данных".

Copy activity preserve metadata

Ниже приведен пример конфигурации JSON действия Copy (см. 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"
            }
        ]
    }
]

Сохранение списков управления доступом из Data Lake Storage 1-го поколения/2-го поколения в 2-го поколения

При обновлении с Azure Data Lake Storage 1-го поколения до 2-го поколения или копировании данных между ADLS 2-го поколения можно сохранить списки управления доступом POSIX вместе с файлами данных. Дополнительные сведения об управлении доступом см. в разделе Контроль доступа в Azure Data Lake Storage 1-го поколения и Управление доступом в Azure Data Lake Storage 2-го поколения.

Действие Copy поддерживает сохранение следующих типов ACL во время копирования данных:. Можно выбрать один или несколько типов.

  • ACL: копирование и сохранение списков управления доступом POSIX для файлов и каталогов. Копируются все существующие ACL из источника в приемник.
  • Владелец: копирование и сохранение пользователя-владельца файлов и каталогов. Требуется доступ суперпользователя к Data Lake Storage 2-го поколения приемника.
  • Группа: копирование и сохранение группы-владельца файлов и каталогов. Необходим доступ суперпользователя к Data Lake Storage 2-го поколения приемника или пользователю-владельцу (если пользователь-владелец также является членом целевой группы).

Если указать копирование из папки, служба реплицирует ACL для указанной папки, а также файлы и каталоги в ней, если для параметра задано значение recursive true. Если указать копирование из одного файла, то ACL для этого файла будут скопированы.

Примечание.

При использовании действия копирования для сохранения ACL из Data Lake Storage 1-го/2-го поколения в Data Lake Storage 2-го поколения существующие ACL для соответствующей папки/файлов в приемнике 2-го поколения будут перезаписаны.

Важно!

Если вы решили сохранить ACL, убедитесь, что вы предоставляли достаточно высокий уровень разрешений для работы службы с учетной записью Data Lake Storage 2-го поколения приемника. Например, используйте проверку подлинности с помощью ключа учетной записи или назначьте роль владельца данных BLOB-объекта хранилища субъекту-службе или управляемому удостоверению.

При настройке источника как Data Lake Storage 1-го/2-го поколения с двоичным форматом или параметром двоичного копирования, а также приемника в качестве Data Lake Storage 2-го поколения с двоичным форматом или параметром копирования в двоичном формате можно найти параметр Сохранить на странице Параметры в средстве "Копирование данных" или на вкладке Действие Copy>Параметры для разработки действия.

Data Lake Storage Gen1/Gen2 to Gen2 Preserve ACL

Ниже приведен пример конфигурации JSON действия Copy (см. 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"
            }
        ]
    }
]

См. другие статьи о действиях копирования: