Azure Data Factory または Synapse Analytics のコピー アクティビティを使用してメタデータと ACL を保持する

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

次のシナリオでは、Azure Data Factory または Synapse Analytics パイプラインでコピー アクティビティを使用してソースからシンクにデータをコピーするときに、メタデータと ACL を一緒に保持することもできます。

Lake 移行用にメタデータを保持する

Amazon S3Azure BlobAzure Data Lake Storage Gen2Azure Files などのデータ レイク間でデータを移行する場合は、データと共にファイルのメタデータを保持することもできます。

コピー アクティビティでは、データのコピー中に次の属性を保持できます。

  • お客様が指定したすべてのメタデータ
  • 次の 5 つのデータ ストア組み込みシステム プロパティ: contentTypecontentLanguage (Amazon S3 を除く)、contentEncodingcontentDispositioncacheControl

メタデータの違いに対処する: Amazon S3 と Azure Storage では、顧客が指定したメタデータのキーにさまざまな文字セットが許可されています。 コピー アクティビティを使用してメタデータを保持することを選択すると、サービスによって無効な文字が自動的に "_" に置き換えられます。

バイナリ形式を使用して Amazon S3/Azure Data Lake Storage Gen2/Azure Blob storage/Azure Files から /Azure Files to Azure Data Lake Storage Gen2/Azure Blob storage/Azure Files にファイルをそのままコピーする場合は、アクティビティ作成のための [コピー アクティビティ]>[設定] タブに、または [データのコピー] ツールの [設定] ページに、 [保持] オプションが表示されます。

Copy activity preserve metadata

コピー アクティビティの JSON 構成の例を次に示します (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 Gen1/Gen2 から Gen2 に ACL を保持する

Azure Data Lake Storage Gen1 から Gen2 にアップグレードするときに、または ADLS Gen2 間でデータをコピーするときに、データ ファイルと共に POSIX アクセス制御リスト (ACL) を保持することもできます。 アクセス制御の詳細については、「Azure Data Lake Storage Gen1 のアクセス制御」および「Azure Data Lake Storage Gen2 のアクセス制御」をご覧ください。

コピー アクティビティでは、データのコピー中に次の種類の ACL を保持できます。 1 つ以上の種類を選択できます。

  • ACL: ファイルおよびディレクトリの POSIX アクセス制御リストがコピーされ、保持されます。 既存の完全な ACL がソースからシンクにコピーされます。
  • 所有者:ファイルおよびディレクトリの所有ユーザーがコピーされ、保持されます。 シンク Data Lake Storage Gen2 に対するスーパー ユーザーのアクセス権が必要です。
  • グループ: ファイルおよびディレクトリの所有グループがコピーされ、保持されます。 シンク Data Lake Storage Gen2 に対するスーパー ユーザーのアクセス権、または所有ユーザー (所有ユーザーがターゲット グループのメンバーでもある場合) が必要です。

フォルダーからのコピーを指定すると、指定したフォルダーとその下にあるファイルおよびディレクトリの ACL が、サービスによってレプリケートされます (recursive が true に設定されている場合)。 1 つのファイルからのコピーを指定すると、そのファイルの ACL がコピーされます。

注意

コピー アクティビティを使用して Data Lake Storage Gen1 または Gen2 から Gen2 に ACL を保持すると、シンク Gen2 に対応するフォルダーまたはファイルの既存の ACL が上書きされます。

重要

ACL を保持する場合は、サービスがシンク Data Lake Storage Gen2 アカウントに対して処理を実行できる十分なアクセス許可を付与してください。 たとえば、アカウント キー認証を使用するか、サービス プリンシパルまたはマネージド ID にストレージ BLOB データ所有者ロールを割り当てます。

バイナリ形式またはバイナリ コピー オプションを使用してソースを Data Lake Storage Gen1/Gen2 として構成し、バイナリ形式またはバイナリ コピー オプションを使用してシンクを Data Lake Storage Gen2 として構成すると、[データのコピー] ツールの [設定] ページまたはアクティビティ作成のための [アクティビティのコピー]>[設定] タブに、 [保持] オプションが表示されます。

Data Lake Storage Gen1/Gen2 to Gen2 Preserve ACL

コピー アクティビティの JSON 構成の例を次に示します (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"
            }
        ]
    }
]

コピー アクティビティの他の記事を参照してください。