次の方法で共有


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

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

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

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

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

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

  1. パイプラインの [アクティビティ] ペイン内で Get Metadata を検索し、Fail アクティビティをパイプライン キャンバスにドラッグします。

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

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

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

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

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

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

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

サポートされる機能

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

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

File Storage

コネクタ/メタデータ itemName
(ファイル/フォルダー)
itemType
(ファイル/フォルダー)
size
(ファイル)
created
(ファイル/フォルダー)
lastModified1
(ファイル/フォルダー)
childItems
(フォルダー)
contentMD5
(ファイル)
structure2
(ファイル)
columnCount2
(ファイル)
exists3
(ファイル/フォルダー)
Amazon S3 √/√ √/√ x/x √/√ x √/√
Amazon S3 互換ストレージ √/√ √/√ x/x √/√ x √/√
Google Cloud Storage √/√ √/√ x/x √/√ x √/√
Oracle Cloud Storage √/√ √/√ x/x √/√ x √/√
Azure BLOB Storage √/√ √/√ 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 Storage の場合、lastModified はコンテナーと BLOB に適用されますが、仮想フォルダーには適用されません。

2 バイナリ ファイル、JSON ファイル、または XML ファイルからメタデータを取得する場合、メタ データ structure および columnCount はサポートされません。

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

次のことを考慮してください。

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

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

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

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

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

コネクタ/メタデータ structure columnCount exists
Amazon RDS for SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL Server

メタデータのオプション

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

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

ヒント

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

Note

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

Note

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

構文

GetMetadata アクティビティ

{
    "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"
            }
        }
    }
}

型のプロパティ

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

プロパティ 内容 必須
fieldList 必要なメタデータ情報の種類です。 サポートされているメタデータに関する詳細は、この記事の「メタデータのオプション」セクションを参照してください。 はい
dataset メタデータの取得アクティビティによってメタデータが取得される参照データセット。 サポートされているコネクタの詳細については、「機能」セクションを参照してください。 データセットの構文の詳細については、特定のコネクタのトピックを参照してください。 はい
formatSettings 書式の種類のデータセットを使用するときに適用します。 いいえ
storeSettings 書式の種類のデータセットを使用するときに適用します。 いいえ

サンプル出力

メタデータの取得の結果は、アクティビティの出力に表示されます。 次に、さまざまなメタデータ オプションを示す 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"
    }
  ]
}

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