Azure Data Factory または Azure Synapse Analytics を使用してファイル システムとの間でデータをコピーする

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

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

この記事では、ファイル システムをコピー先またはコピー元としてデータをコピーする方法について説明します。 詳細については、Azure Data Factory または Azure Synapse Analytics の概要記事を参照してください。

サポートされる機能

このファイル システム コネクタでは、次の機能がサポートされます。

サポートされる機能 IR
Copy アクティビティ (ソース/シンク) 1.1
Lookup アクティビティ 1.1
GetMetadata アクティビティ 1.1
アクティビティを削除する 1.1

① Azure 統合ランタイム ② セルフホステッド統合ランタイム

具体的には、このファイル システム コネクタは以下をサポートします。

  • ネットワーク ファイル共有をコピー元またはコピー先とするファイルのコピー。 Linux ファイル共有を使用するには、Linux サーバーに Samba をインストールします。
  • Windows 認証を使用したファイルのコピー。
  • ファイルをそのままコピーするか、サポートされているファイル形式と圧縮コーデックを使用したファイルの解析/生成。

前提条件

データ ストアがオンプレ ミスネットワーク、Azure 仮想ネットワーク、または Amazon Virtual Private Cloud 内にある場合は、それに接続するようセルフホステッド統合ランタイムを構成する必要があります。

データ ストアがマネージド クラウド データ サービスである場合は、Azure Integration Runtime を使用できます。 ファイアウォール規則で承認されている IP にアクセスが制限されている場合は、Azure Integration Runtime の IP を許可リストに追加できます。

また、Azure Data Factory のマネージド仮想ネットワーク統合ランタイム機能を使用すれば、セルフホステッド統合ランタイムをインストールして構成しなくても、オンプレミス ネットワークにアクセスすることができます。

Data Factory によってサポートされるネットワーク セキュリティ メカニズムやオプションの詳細については、「データ アクセス戦略」を参照してください。

作業の開始

パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。

UI を使用してファイル システムのリンク サービスを作成する

次の手順を使用して、Azure portal UI でファイル システムのリンク サービスを作成します。

  1. Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンク サービス] を選択して、[新規] を選択します。

  2. ファイルを検索し、ファイル システム コネクタを選択します。

    Screenshot of the File System connector.

  3. サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。

    Screenshot of configuration for File System linked service.

コネクタの構成の詳細

以下のセクションでは、ファイル システムに固有の Data Factory および Synapse パイプライン エンティティの定義に使用されるプロパティについて詳しく説明します。

リンクされたサービスのプロパティ

ファイル システムの のリンクされたサービスでは、次のプロパティがサポートされます。

プロパティ Description 必須
type type プロパティは、次のように設定する必要があります:FileServer. はい
host コピーするフォルダーのルート パスを指定します。 文字列内の特殊文字にはエスケープ文字 "" を使用します。 例については、「 サンプルのリンクされたサービスとデータセットの定義 」ご覧ください。 はい
userId サーバーにアクセスするユーザーの ID を指定します。 はい
password ユーザー (userId) のパスワードを指定します。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 はい
connectVia データ ストアに接続するために使用される統合ランタイム。 詳細については、「前提条件」セクションを参照してください。 指定されていない場合は、既定の Azure 統合ランタイムが使用されます。 いいえ

サンプルのリンクされたサービスとデータセットの定義

シナリオ リンクされたサービス定義の "host" データセット定義の "folderPath"
リモート共有フォルダー:

例: \\myserver\share\* または \\myserver\share\folder\subfolder\*
JSON の場合: \\\\myserver\\share
UI の場合: \\myserver\share
JSON の場合: .\\ または folder\\subfolder
UI の場合: .\ または folder\subfolder

注意

UI を使用して作成する場合、JSON のように、エスケープするために二重バックスラッシュ (\\) を入力する必要はなく、単一のバックスラッシュを指定します。

注意

ローカル コンピューターからのファイルのコピーは、Azure Integration Runtime ではサポートされていません。
セルフホステッド統合ランタイムでローカル コンピューターへのアクセスを有効にするには、こちらからコマンド ラインを参照してください。 これは既定で無効になっています。

例:

{
    "name": "FileLinkedService",
    "properties": {
        "type": "FileServer",
        "typeProperties": {
            "host": "<host>",
            "userId": "<domain>\\<user>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

データセットのプロパティ

データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。

Azure Data Factory では次のファイル形式がサポートされます。 形式ベースの設定については、各記事を参照してください。

ファイル システムでは、形式ベースのデータセットの location 設定において、次のプロパティがサポートされています。

プロパティ Description 必須
type データセットの location の type プロパティは、location に設定する必要があります。 はい
folderPath フォルダーのパス。 フォルダーをフィルター処理するためにワイルドカードを使用する場合は、この設定をスキップし、アクティビティのソースの設定で指定します。 共有用のフォルダーを公開するには、Windows または Linux 環境でファイル共有の場所を設定する必要があります。 いいえ
fileName 特定の folderPath の下のファイル名。 ファイルをフィルター処理するためにワイルドカードを使用する場合は、この設定をスキップし、アクティビティのソースの設定で指定します。 いいえ

例:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<File system linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "FileServerLocation",
                "folderPath": "root/folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

コピー アクティビティのプロパティ

アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、ファイル システムのソースとシンクでサポートされるプロパティの一覧を示します。

ソースとしてのファイル システム

Azure Data Factory では次のファイル形式がサポートされます。 形式ベースの設定については、各記事を参照してください。

ファイル システムでは、形式ベースのコピー ソースの storeSettings 設定において、次のプロパティがサポートされています。

プロパティ Description 必須
type storeSettings の type プロパティは storeSettings に設定する必要があります。 はい
コピーするファイルを特定する:
オプション 1: 静的パス
データセットに指定されている所定のフォルダーまたはファイル パスからコピーします。 フォルダーからすべてのファイルをコピーする場合は、さらに * として wildcardFileName を指定します。
オプション 2: サーバー側のフィルター
- fileFilter
オプション 3 のワイルドカード フィルターより優れたパフォーマンスを提供する、ファイル サーバー側のネイティブ フィルター。 0 個以上の文字に一致させるには * を使用し、0 または 1 文字に一致させるには ? を使用します。 詳細および注については、このセクションの下部の「解説」を参照してください。 いいえ
オプション 3: クライアント側のフィルター
- wildcardFolderPath
ソース フォルダーをフィルター処理するための、ワイルドカード文字を含むフォルダー パス。 このようなフィルターは、指定されたパスの下にあるフォルダー/ファイルを列挙し、ワイルドカード フィルターを適用するサービス内で行われます。
使用できるワイルドカーは、* (ゼロ文字以上の文字に一致) と ? (ゼロ文字または 1 文字に一致) です。実際のフォルダー名にワイルドカードまたはこのエスケープ文字が含まれている場合は、^ を使用してエスケープします。
フォルダーとファイル フィルターの例」の他の例をご覧ください。
いいえ
オプション 3: クライアント側のフィルター
- wildcardFileName
ソース ファイルをフィルター処理するための、特定の folderPath/wildcardFolderPath の下のワイルドカード文字を含むファイル名。 このようなフィルター処理はサービス内で行われます。指定されたパスにあるファイルが列挙され、ワイルドカード フィルターが適用されます。
使用できるワイルドカーは、* (ゼロ文字以上の文字に一致) と ? (ゼロ文字または 1 文字に一致) です。実際のファイル名にワイルドカードまたはこのエスケープ文字が含まれている場合は、^ を使用してエスケープします。
フォルダーとファイル フィルターの例」の他の例をご覧ください。
はい
オプション 3: ファイルの一覧
- fileListPath
指定されたファイル セットをコピーすることを示します。 コピーするファイルの一覧を含むテキスト ファイルをポイントします。データセットで構成されているパスへの相対パスであるファイルを 1 行につき 1 つずつ指定します。
このオプションを使用する場合は、データセットにファイル名を指定しないでください。 その他の例については、ファイル リストの例を参照してください。
いいえ
追加の設定:
recursive データをサブフォルダーから再帰的に読み取るか、指定したフォルダーからのみ読み取るかを指定します。 recursive が true に設定されていて、シンクがファイル ベースのストアである場合、空のフォルダーまたはサブフォルダーはシンクでコピーも作成もされません。
使用可能な値: true (既定値) および false
fileListPath を構成する場合、このプロパティは適用されません。
いいえ
deleteFilesAfterCompletion 宛先ストアに正常に移動した後、バイナリ ファイルをソース ストアから削除するかどうかを示します。 ファイルの削除はファイルごとに行われるためで、コピー アクティビティが失敗した場合、一部のファイルが既に宛先にコピーされソースからは削除されているが、他のファイルはまだソース ストアに残っているという状況が発生します。
このプロパティは、バイナリ ファイルのコピー シナリオでのみ有効です。 既定値: false。
いいえ
modifiedDatetimeStart ファイルはフィルター処理され、元になる属性は最終更新時刻です。
ファイルは、最終変更日時が modifiedDatetimeStart と同じかそれよりも後であり、modifiedDatetimeEnd よりも前である場合に選ばれます。 時刻は "2018-12-01T05:00:00Z" の形式で UTC タイム ゾーンに適用されます。
各プロパティには NULL を指定できます。これは、ファイル属性フィルターをデータセットに適用しないことを意味します。 modifiedDatetimeStart が datetime 値を持ち、 modifiedDatetimeEnd が NULL の場合は、最後に変更された属性が datetime 値以上のファイルが選択されていることを意味します。 modifiedDatetimeEnd が datetime 値を持ち、 modifiedDatetimeStart が NULL の場合は、最後に変更された属性が datetime 値より小さいファイルが選択されていることを意味します。
fileListPath を構成する場合、このプロパティは適用されません。
いいえ
modifiedDatetimeEnd 上記と同じです。 いいえ
enablePartitionDiscovery パーティション分割されているファイルの場合、ファイル パスのパーティションを解析し、それを追加のソース列として追加するかどうかを指定します。
指定できる値は false (既定値) と true です。
いいえ
partitionRootPath パーティション検出が有効になっている場合は、パーティション分割されたフォルダーをデータ列として読み取るための絶対ルート パスを指定します。

指定しない場合の既定は、以下のようになります。
- ソース上のデータセットまたはファイルの一覧内のファイル パスを使用する場合、パーティションのルート パスはそのデータセットで構成されているパスです。
- ワイルドカード フォルダー フィルターを使用する場合、パーティションのルート パスは最初のワイルドカードの前のサブパスです。

たとえば、データセット内のパスを "root/folder/year=2020/month=08/day=27" として構成するとします。
- パーティションのルート パスを "root/folder/year=2020" として指定した場合は、コピー アクティビティによって、ファイル内の列とは別に、それぞれ "08" と "27" の値を持つ monthday という 2 つの追加の列が生成されます。
- パーティションのルート パスを指定しない場合、追加の列は生成されません。
いいえ
maxConcurrentConnections アクティビティの実行中にデータ ストアに対して確立されたコンカレント接続数の上限。 コンカレント接続を制限する場合にのみ、値を指定します。 いいえ

例:

"activities":[
    {
        "name": "CopyFromFileSystem",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "FileServerReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

シンクとしてのファイル システム

Azure Data Factory では次のファイル形式がサポートされます。 形式ベースの設定については、各記事を参照してください。

ファイル システムでは、形式ベースのコピー シンクの storeSettings 設定において、次のプロパティがサポートされています。

プロパティ Description 必須
type storeSettings の type プロパティは storeSettings に設定する必要があります。 はい
copyBehavior ソースがファイル ベースのデータ ストアのファイルの場合は、コピー動作を定義します。

使用できる値は、以下のとおりです。
- PreserveHierarchy (既定値):ターゲット フォルダー内でファイル階層を保持します。 ソース フォルダーに対するソース ファイルの相対パスと、ターゲット フォルダーに対するターゲット ファイルの相対パスが一致します。
- FlattenHierarchy:ソース フォルダーのすべてのファイルをターゲット フォルダーの第一レベルに配置します。 ターゲット ファイルは、自動生成された名前になります。
- MergeFiles:ソース フォルダーのすべてのファイルを 1 つのファイルにマージします。 ファイル名を指定した場合、マージされたファイル名は指定した名前になります。 それ以外は自動生成されたファイル名になります。
いいえ
maxConcurrentConnections アクティビティの実行中にデータ ストアに対して確立されたコンカレント接続数の上限。 コンカレント接続を制限する場合にのみ、値を指定します。 いいえ

例:

"activities":[
    {
        "name": "CopyToFileSystem",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Parquet output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "ParquetSink",
                "storeSettings":{
                    "type": "FileServerWriteSettings",
                    "copyBehavior": "PreserveHierarchy"
                }
            }
        }
    }
]

フォルダーとファイル フィルターの例

このセクションでは、ワイルドカード フィルターを使用した結果のフォルダーのパスとファイル名の動作について説明します。

folderPath fileName recursive ソースのフォルダー構造とフィルターの結果 (太字のファイルが取得されます)
Folder* (空、既定値を使用) false FolderA
    File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* (空、既定値を使用) true FolderA
    File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv false FolderA
    File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv true FolderA
    File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv

ファイル リストの例

このセクションでは、コピー アクティビティのソースでファイル リスト パスを使用した結果の動作について説明します。

次のソース フォルダー構造があり、太字のファイルをコピーするとします。

サンプルのソース構造 FileListToCopy.txt のコンテンツ パイプラインの構成
root
    FolderA
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    メタデータ
        FileListToCopy.txt
File1.csv
Subfolder1/File3.csv
Subfolder1/File5.csv
データセット内:
- フォルダー パス: root/FolderA

コピー アクティビティ ソース内:
- ファイル リストのパス: root/Metadata/FileListToCopy.txt

ファイル リストのパスは、コピーするファイルの一覧を含む同じデータ ストア内のテキスト ファイルをポイントします。データセットで構成されているパスへの相対パスで 1 行につき 1 つのファイルを指定します。

recursive と copyBehavior の例

このセクションでは、recursive 値と copyBhavior 値の組み合わせごとに、Copy 操作で行われる動作について説明します。

recursive copyBehavior ソースのフォルダー構造 ターゲットの結果
true preserveHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
ターゲット フォルダー Folder1 は、ソースと同じ構造で作成されます。

Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5.
true flattenHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
ターゲットの Folder1 は、次の構造で作成されます。

Folder1
    File1 の自動生成された名前
    File2 の自動生成された名前
    File3 の自動生成された名前
    File4 の自動生成された名前
    File5 の自動生成された名前
true mergeFiles Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
ターゲットの Folder1 は、次の構造で作成されます。

Folder1
    File1、File2、File3、File4、File5 の内容は、自動生成されたファイル名を持つ 1 つのファイルにマージされます
false preserveHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
ターゲット フォルダー Folder1 は、次の構造で作成されます。

Folder1
    File1
    File2

Subfolder1 と File3、File4、File5 は取得されません。
false flattenHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
ターゲット フォルダー Folder1 は、次の構造で作成されます。

Folder1
    File1 の自動生成された名前
    File2 の自動生成された名前

Subfolder1 と File3、File4、File5 は取得されません。
false mergeFiles Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
ターゲット フォルダー Folder1 は、次の構造で作成されます。

Folder1
    File1、File2 の内容は 1 つのファイルにマージされ、自動生成されたファイル名が付けられます。 File1 の自動生成された名前

Subfolder1 と File3、File4、File5 は取得されません。

Lookup アクティビティのプロパティ

プロパティの詳細については、Lookup アクティビティに関するページを参照してください。

GetMetadata アクティビティのプロパティ

プロパティの詳細については、GetMetadata アクティビティに関するページを参照してください。

Delete アクティビティのプロパティ

プロパティの詳細については、Delete アクティビティに関するページを参照してください。

レガシ モデル

注意

次のモデルは、下位互換性のために引き続きそのままサポートされます。 今後は、上記のセクションで説明した新しいモデルを使用することをお勧めします。作成 UI は、新しいモデルを生成するように切り替えられています。

レガシ データセット モデル

プロパティ Description 必須
type データセットの type プロパティは、次のように設定する必要があります:FileShare はい
folderPath フォルダーへのパス。 ワイルドカード フィルターがサポートされています。使用できるワイルドカードは、* (ゼロ文字以上の文字に一致) と ? (ゼロ文字または 1 文字に一致) です。実際のフォルダー名にワイルドカードまたはこのエスケープ文字が含まれている場合は、^ を使用してエスケープします。

例: ルートフォルダー/サブフォルダー。「サンプルのリンクされたサービスとデータセットの定義」および「フォルダーとファイル フィルターの例」の例も参照してください。
いいえ
fileName 指定された "folderPath" の下にあるファイルの名前またはワイルドカード フィルター。 このプロパティの値を指定しない場合、データセットはフォルダー内のすべてのファイルをポイントします。

フィルターに使用できるワイルドカードは、* (ゼロ文字以上の文字に一致) と ? (ゼロ文字または 1 文字に一致) です。
- 例 1: "fileName": "*.csv"
- 例 2: "fileName": "???20180427.txt"
実際のファイル名にワイルドカードまたはこのエスケープ文字が含まれている場合は、^ を使用してエスケープします。

出力データセットに fileName の指定がなく、アクティビティ シンクに preserveHierarchy の指定がない場合、コピー アクティビティは、"Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz" のように "Data.[アクティビティ実行 ID GUID].[FlattenHierarchy の場合は GUID].[構成されている場合は形式].[構成されている場合は圧縮] " のパターンでファイル名を自動生成します。クエリの代わりにテーブル名を使用して表形式のソースからコピーする場合、名前のパターンは "MyTable.csv" のように " [テーブル名].[形式].[構成されている場合は圧縮] " になります。
いいえ
modifiedDatetimeStart ファイルはフィルター処理され、元になる属性は最終更新時刻です。 ファイルは、最終変更日時が modifiedDatetimeStart と同じかそれよりも後であり、modifiedDatetimeEnd よりも前である場合に選ばれます。 時刻は "2018-12-01T05:00:00Z" の形式で UTC タイム ゾーンに適用されます。

大量のファイルからファイル フィルターを実行する場合は、この設定を有効にすることで、データ移動の全体的なパフォーマンスが影響を受ける点に注意してください。

各プロパティには NULL を指定できます。これは、ファイル属性フィルターをデータセットに適用しないことを意味します。 modifiedDatetimeStart が datetime 値を持ち、 modifiedDatetimeEnd が NULL の場合は、最後に変更された属性が datetime 値以上のファイルが選択されていることを意味します。 modifiedDatetimeEnd に datetime 値を設定し、modifiedDatetimeStart を NULL にした場合は、最終更新時刻属性が datetime 値以下であるファイルが選択されることを意味します。
いいえ
modifiedDatetimeEnd ファイルはフィルター処理され、元になる属性は最終更新時刻です。 ファイルは、最終変更日時が modifiedDatetimeStart と同じかそれよりも後であり、modifiedDatetimeEnd よりも前である場合に選ばれます。 時刻は "2018-12-01T05:00:00Z" の形式で UTC タイム ゾーンに適用されます。

大量のファイルからファイル フィルターを実行する場合は、この設定を有効にすることで、データ移動の全体的なパフォーマンスが影響を受ける点に注意してください。

各プロパティには NULL を指定できます。これは、ファイル属性フィルターをデータセットに適用しないことを意味します。 modifiedDatetimeStart が datetime 値を持ち、 modifiedDatetimeEnd が NULL の場合は、最後に変更された属性が datetime 値以上のファイルが選択されていることを意味します。 modifiedDatetimeEnd が datetime 値を持ち、 modifiedDatetimeStart が NULL の場合は、最後に変更された属性が datetime 値より小さいファイルが選択されていることを意味します。
いいえ
format ファイルベースのストア間でファイルをそのままコピー (バイナリ コピー) する場合は、入力と出力の両方のデータセット定義で format セクションをスキップします。

特定の形式のファイルを解析または生成する場合、サポートされるファイル形式の種類は、TextFormatJsonFormatAvroFormatOrcFormatParquetFormat です。 形式の type プロパティをいずれかの値に設定します。 詳細については、Text FormatJson FormatAvro FormatOrc FormatParquet Format の各セクションを参照してください。
いいえ (バイナリ コピー シナリオのみ)
compression データの圧縮の種類とレベルを指定します。 詳細については、サポートされるファイル形式と圧縮コーデックに関する記事を参照してください。
サポートされる種類は、GZipDeflateBZip2ZipDeflate です。
サポートされるレベルは、OptimalFastest です。
いいえ

ヒント

フォルダーの下のすべてのファイルをコピーするには、folderPath のみを指定します。
特定の名前の単一のファイルをコピーするには、フォルダー部分で folderPath、ファイル名で fileName を指定します。
フォルダーの下のファイルのサブセットをコピーするには、フォルダー部分で folderPath、ワイルドカード フィルターで fileName を指定します。

注意

ファイル フィルターで "fileFilter" プロパティを使用していた場合は、そのまま引き続きサポートされますが、今後は "fileName" に追加された新しいフィルター機能を使用することをお勧めします。

例:

{
    "name": "FileSystemDataset",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<file system linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "folder/subfolder/",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

レガシ コピー アクティビティ ソース モデル

プロパティ Description 必須
type コピー アクティビティのソースの type プロパティは、次のように設定する必要があります:FileSystemSource はい
recursive データをサブフォルダーから再帰的に読み取るか、指定したフォルダーからのみ読み取るかを指定します。 recursive が true に設定され、シンクがファイル ベースのストアである場合、空のフォルダー/サブフォルダーはシンクでコピー/作成されません。
使用可能な値: true (既定値)、false
いいえ
maxConcurrentConnections アクティビティの実行中にデータ ストアに対して確立されたコンカレント接続数の上限。 コンカレント接続を制限する場合にのみ、値を指定します。 いいえ

例:

"activities":[
    {
        "name": "CopyFromFileSystem",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<file system input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "FileSystemSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

レガシ コピー アクティビティ シンク モデル

プロパティ Description 必須
type コピー アクティビティのシンクの type プロパティは、次のように設定する必要があります: FileSystemSink はい
copyBehavior ソースがファイル ベースのデータ ストアのファイルの場合は、コピー動作を定義します。

使用できる値は、以下のとおりです。
PreserveHierarchy (既定値): ファイル階層をターゲット フォルダー内で保持します。 ソース フォルダーに対するソース ファイルの相対パスと、ターゲット フォルダーに対するターゲット ファイルの相対パスが一致します。
FlattenHierarchy: ソース フォルダーのすべてのファイルがターゲット フォルダーの第一レベルに配置されます。 ターゲット ファイルは、自動生成された名前になります。
MergeFiles: ソース フォルダーのすべてのファイルを 1 つのファイルにマージします。 レコードの重複除去は、マージ中には実行されません。 ファイル名を指定した場合、マージされたファイル名は指定した名前になります。それ以外の場合は、自動生成されたファイル名になります。
いいえ
maxConcurrentConnections アクティビティの実行中にデータ ストアに対して確立されたコンカレント接続数の上限。 コンカレント接続を制限する場合にのみ、値を指定します。 いいえ

例:

"activities":[
    {
        "name": "CopyToFileSystem",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<file system output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "FileSystemSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

Copy アクティビティでソースおよびシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。