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 アクティビティを使用するには、次の手順を行います。
パイプラインの [アクティビティ] ペイン内で Get Metadata を検索し、Fail アクティビティをパイプライン キャンバスにドラッグします。
キャンバス上で新しい Get Metadata アクティビティ (まだ選択されていない場合) を選択してからその [設定] タブを選択して、その詳細を編集します。
データセットを選択するか、[新規作成] ボタンを使用して新しいデータセットを作成します。 次に、フィルター オプションを指定し、データセットの使用可能なメタデータから列を追加できます。
この例の Switch アクティビティのように、アクティビティの出力を別のアクティビティへの入力として使用します。 メタデータ アクティビティの出力は、他のアクティビティで動的コンテンツがサポートされる場所であれば、参照できます。
動的コンテンツ エディターで、[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"
}
]
}
関連するコンテンツ
サポートされている他の制御フロー アクティビティについて学習します。