次の方法で共有


Azure Data FactoryまたはAzure Synapse Analyticsでメタデータ アクティビティを取得する

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

Data Factory in Microsoft Fabric は、よりシンプルなアーキテクチャ、組み込みの AI、および新機能を備えた次世代のAzure Data Factoryです。 データ統合を初めて使用する場合は、Fabric Data Factory から始めます。 既存の ADF ワークロードをFabricにアップグレードして、データ サイエンス、リアルタイム分析、レポートの新機能にアクセスできます。

メタデータの取得アクティビティを使用して、Azure Data Factoryまたは Synapse パイプライン内の任意のデータのメタデータを取得できます。 条件式でメタデータの取得アクティビティからの出力を使用して検証を実行することや、後続のアクティビティでメタデータを使用することができます。

UI を使用して Get Metadata アクティビティを作成する

パイプライン内で Get Metadata アクティビティを使用するには、次の手順を行います。

  1. パイプライン アクティビティ ウィンドウで メタデータの取得 を検索し、メタデータの取得アクティビティをパイプライン キャンバスにドラッグします。

  2. キャンバスで新しい Get Metadata アクティビティを選んでから (まだ選んでいない場合)、その [設定] タブを選んで詳細を編集します。

  3. データセットを選択するか、[新規作成] ボタンを使用して新しいデータセットを作成します。 次に、フィルター オプションを指定し、データセットの使用可能なメタデータから列を追加できます。

    Get Metadata アクティビティの UI を示している。

  4. この例の Switch アクティビティのように、アクティビティの出力を別のアクティビティへの入力として使用します。 メタデータ アクティビティの出力は、他のアクティビティで動的コンテンツがサポートされる場所であれば、参照できます。

    Get Metadata アクティビティの出力を処理するために、Switch アクティビティが追加されたパイプラインを示している。

  5. 動的コンテンツ エディターで、[Get Metadata] アクティビティの出力を選択して、他のアクティビティでそれを参照します。

    Get Metadata アクティビティの出力を動的コンテンツとして表示する動的コンテンツ エディターを示している。

サポートされる機能

メタデータの取得アクティビティは、データセットを入力として受け取り、メタデータ情報を出力として返します。 現在、次のコネクタとそれに対応する取得可能なメタデータがサポートされています。 返されるメタデータの最大サイズは 4 MB です。

サポートされているコネクタ

File Storage

コネクタ/メタデータ アイテム名
(ファイル/フォルダー)
アイテムタイプ
(ファイル/フォルダー)
サイズ
(ファイル)
created
(ファイル/フォルダー)
最終更新1
(ファイル/フォルダー)
childItems
(フォルダー)
contentMD5
(ファイル)
structure2
(ファイル)
columnCount2
(ファイル)
exists3
(ファイル/フォルダー)
アマゾンS3 √/√ √/√ x/x √/√ x √/√
Amazon S3 互換ストレージ √/√ √/√ x/x √/√ x √/√
Google Cloud Storage √/√ √/√ x/x √/√ x √/√
Oracle Cloud Storage √/√ √/√ x/x √/√ x √/√
Azure Blob ストレージ √/√ √/√ x/x √/√ √/√
Azure Data Lake Storage Gen1 √/√ √/√ x/x √/√ x √/√
Azure Data Lake Storage Gen2 √/√ √/√ x/x √/√ √/√
Azure Files √/√ √/√ √/√ √/√ x √/√
Microsoft Fabric Lakehouse √/√ √/√ x/x √/√ √/√
ファイル システム √/√ √/√ √/√ √/√ x √/√
SFTP √/√ √/√ x/x √/√ x √/√
FTP √/√ √/√ x/x x/x x √/√

1 メタデータ lastModified:

  • Amazon S3、Amazon S3 Compatible Storage、Google Cloud Storage、Oracle Cloud Storage の場合、lastModified はバケットとキーに適用されますが、仮想フォルダーには適用されません。また、exists はバケットとキーに適用されますが、プレフィックスまたは仮想フォルダーには適用されません。
  • Azure BLOB ストレージの場合、lastModified はコンテナーと BLOB に適用されますが、仮想フォルダーには適用されません。

2 バイナリ、JSON、または XML ファイルからメタデータを取得するときは、メタ データ structurecolumnCount はサポートされません。

3 メタデータ exists: Amazon S3、Amazon S3 Compatible Storage、Google Cloud Storage、Oracle Cloud Storage の場合、exists はバケットとキーには適用されますが、プレフィックスまたは仮想フォルダーには適用されません。

以下の点に注意してください。

  • フォルダーに対してメタデータの取得アクティビティを使用している場合は、指定されたフォルダーに対する LIST/EXECUTE 権限があることを確認してください。

  • フォルダーとファイルに対するワイルドカード フィルターは、Get Metadata アクティビティではサポートされていません。

  • コネクタに設定された modifiedDatetimeStart および modifiedDatetimeEnd フィルター:

    • これらの 2 つのプロパティは、フォルダーからメタデータを取得するときに子項目をフィルター処理するために使用されます。 ファイルからメタデータを取得するときは適用されません。
    • このようなフィルターを使用すると、出力の childItems には、指定された範囲内で変更されたファイルのみが含まれ、フォルダーは含まれません。
    • このようなフィルターを適用するため、GetMetadata アクティビティは指定されたフォルダー内のすべてのファイルを列挙し、変更された日時を調べます。 予想される修飾ファイル数が少ない場合でも、ファイル数が多いフォルダーを指すことは避けてください。

リレーショナル データベース

コネクタ/メタデータ 構造体 columnCount 存在する
SQL Server 用の Amazon RDS
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL Server

メタデータのオプション

メタデータの取得アクティビティのフィールド リストで次のメタデータの種類を指定して、対応する情報を取得できます。

メタデータの種類 説明
アイテム名 ファイルまたはフォルダーの名前です。
アイテムタイプ ファイルまたはフォルダーの種類です。 戻り値は File または Folder です。
サイズ ファイルのサイズです (バイト単位)。 ファイルにのみ適用されます。
created ファイルまたはフォルダーの作成日時です。
最終更新 ファイルまたはフォルダーが最後に変更された日時です。
childItems 特定のフォルダー内のサブフォルダーとファイルの一覧です。 フォルダーにのみ適用されます。 戻り値は、各子項目の名前と種類の一覧です。
contentMD5 ファイルの MD5 です。 ファイルにのみ適用されます。
構造体 ファイルまたはリレーショナル データベース テーブルのデータ構造です。 戻り値は、列名と列の型の一覧です。
columnCount ファイルまたはリレーショナル テーブル内の列の数です。
存在する ファイル、フォルダー、またはテーブルが存在するかどうかを示します。 Get Metadata のフィールド リストで exists が指定されている場合、ファイル、フォルダー、またはテーブルが存在しない場合でもアクティビティは失敗しません。 代わりに、exists: false が出力に返されます。

ヒント

ファイル、フォルダー、またはテーブルが存在することを検証する場合は、メタデータの取得フィールドの一覧内で exists を指定します。 その後、アクティビティ出力内の exists: true/false の結果を確認できます。 フィールド リストで exists が指定されていない場合は、オブジェクトが見つからないと Get Metadata アクティビティは失敗します。

注意

modifiedDatetimeStart または modifiedDatetimeEnd を構成してファイル ストアからメタデータを取得すると、出力の childItems には、指定したパス内のファイルのうち、最終変更日時が指定した範囲内のものだけが含まれます。 サブフォルダー内の項目は含まれません。

注意

Structure フィールド リストで、区切りテキストおよびExcel形式のデータセットの実際のデータ構造を提供するには、これらのデータ ソースでのみサポートされる First Row as Header プロパティを有効にする必要があります。

構文

メタデータの取得アクティビティ

{
    "name":"MyActivity",
    "type":"GetMetadata",
    "dependsOn":[

    ],
    "policy":{
        "timeout":"7.00:00:00",
        "retry":0,
        "retryIntervalInSeconds":30,
        "secureOutput":false,
        "secureInput":false
    },
    "userProperties":[

    ],
    "typeProperties":{
        "dataset":{
            "referenceName":"MyDataset",
            "type":"DatasetReference"
        },
        "fieldList":[
            "size",
            "lastModified",
            "structure"
        ],
        "storeSettings":{
            "type":"AzureBlobStorageReadSettings"
        },
        "formatSettings":{
            "type":"JsonReadSettings"
        }
    }
}

データセット

{
    "name":"MyDataset",
    "properties":{
        "linkedServiceName":{
            "referenceName":"AzureStorageLinkedService",
            "type":"LinkedServiceReference"
        },
        "annotations":[

        ],
        "type":"Json",
        "typeProperties":{
            "location":{
                "type":"AzureBlobStorageLocation",
                "fileName":"file.json",
                "folderPath":"folder",
                "container":"container"
            }
        }
    }
}

型のプロパティ

現在、メタデータの取得アクティビティは、次の種類のメタデータ情報を返すことができます。

プロパティ 説明 必須
フィールドリスト 必要なメタデータ情報の種類です。 サポートされているメタデータに関する詳細は、この記事の「メタデータのオプション」セクションを参照してください。 はい
データセット メタデータの取得アクティビティによってメタデータが取得される参照データセット。 サポートされているコネクタの詳細については、「機能」セクションを参照してください。 データセットの構文の詳細については、特定のコネクタの記事を参照してください。 はい
フォーマット設定 フォーマットタイプのデータセットを使用する場合に適用します。 いいえ
ストア設定 フォーマットタイプのデータセットを使用する場合に適用します。 いいえ

サンプル出力

メタデータの取得の結果は、アクティビティの出力に表示されます。 次に、さまざまなメタデータ オプションを示す 2 つのサンプルを示します。 後続のアクティビティで結果を使用するには、次のパターンを使用します: @{activity('MyGetMetadataActivity').output.itemName}

ファイルのメタデータを取得する

{
  "exists": true,
  "itemName": "test.csv",
  "itemType": "File",
  "size": 104857600,
  "lastModified": "2017-02-23T06:17:09Z",
  "created": "2017-02-23T06:17:09Z",
  "contentMD5": "cMauY+Kz5zDm3eWa9VpoyQ==",
  "structure": [
    {
        "name": "id",
        "type": "Int64"
    },
    {
        "name": "name",
        "type": "String"
    }
  ],
  "columnCount": 2
}

フォルダーのメタデータを取得する

{
  "exists": true,
  "itemName": "testFolder",
  "itemType": "Folder",
  "lastModified": "2017-02-23T06:17:09Z",
  "created": "2017-02-23T06:17:09Z",
  "childItems": [
    {
      "name": "test.avro",
      "type": "File"
    },
    {
      "name": "folder hello",
      "type": "Folder"
    }
  ]
}

サポートされている他の制御フロー アクティビティについて学習します。