Копирование данных из файловой системы или обратно с помощью Фабрики данных Azure или Azure Synapse Analytics

применимо к: Azure синапсе Analytics фабрика данных Azure

В этой статье описывается копирование данных в файловую систему и из нее. Подробнее см. в вводной статье о Фабрике данных Azure или Azure Synapse Analytics.

Поддерживаемые возможности

Соединитель файловой системы предназначен для следующих действий:

В частности, этот соединитель файловой системы поддерживает:

  • Копирование файлов из локального компьютера или сетевой общей папки и обратно. Чтобы использовать общую папку Linux, установите на сервер Linux Samba.
  • Копирование файлов с использованием проверки подлинности Windows.
  • Копирование файлов "как есть", анализ или создание файлов с использованием поддерживаемых форматов файлов и кодеков сжатия.

Примечание

Сопоставленный сетевой диск не поддерживается при загрузке данных из общей сетевой папки. Используйте фактический путь, например \\server\share.

Предварительные требования

Если хранилище данных размещено в локальной сети, виртуальной сети Azure или виртуальном частном облаке Amazon, для подключения к нему нужно настроить локальную среду выполнения интеграции.

Если же хранилище данных представляет собой управляемую облачную службу данных, можно использовать Azure Integration Runtime. Если доступ предоставляется только по IP-адресам, утвержденным в правилах брандмауэра, вы можете добавить IP-адреса Azure Integration Runtime в список разрешений.

Вы также можете использовать функцию среды выполнения интеграции в управляемой виртуальной сети в Фабрике данных Azure для доступа к локальной сети без установки и настройки локальной среды выполнения интеграции.

Дополнительные сведения о вариантах и механизмах обеспечения сетевой безопасности, поддерживаемых Фабрикой данных, см. в статье Стратегии получения доступа к данным.

Начало работы

Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:

Создание связанной службы файловой системы с помощью пользовательского интерфейса

Выполните следующие действия, чтобы создать связанную службу файловой системы с помощью пользовательского интерфейса на портале Azure.

  1. Перейдите на вкладку «Управление» в рабочей области Фабрики данных Azure или Synapse, выберите элемент «Связанные службы» и щелкните «Создать».

  2. Найдите файл и выберите соединитель файловой системы.

    Снимок экрана: соединитель файловой системы.

  3. Настройте сведения о службе, проверьте подключение и создайте связанную службу.

    Снимок экрана: конфигурация связанной службы файловой системы.

Сведения о конфигурации соединителя

Следующие разделы содержат сведения о свойствах, которые используются для определения сущностей конвейеров Фабрики данных и Synapse, характерных для файловой системы.

Свойства связанной службы

Для связанной службы файловой системы поддерживаются следующие свойства:

Свойство Описание Обязательно
type Свойству type необходимо задать значение FileServer. Да
host Задает корневой путь к папке, которую необходимо скопировать. Используйте escape-символ "" для специальных символов в строке. Примеры приведены в разделе Примеры определений связанной службы и набора данных. Да
userId Укажите идентификатор пользователя, имеющего доступ к серверу. Да
password Укажите пароль для пользователя (userid). Присвойте этому полю метку SecureString для безопасного хранения или добавьте ссылку на секрет, хранящийся в Azure Key Vault. Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные требования. Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. нет

Примеры определений связанной службы и набора данных

Сценарий host в определении связанной службы folderPath в определении набора данных
Локальная папка на компьютере среды выполнения интеграции:

Примеры: D:\ * или Д:\фолдер\субфолдер\ *
В формате JSON: D:\\
В пользовательском интерфейсе: D:\
В формате JSON: .\\ или folder\\subfolder
В пользовательском интерфейсе: .\ или folder\subfolder
Удаленная общая папка:

Примеры: \\мисервер\шаре\ * или \\мисервер\шаре\фолдер\субфолдер\ *
В формате JSON: \\\\myserver\\share
В пользовательском интерфейсе: \\myserver\share
В формате JSON: .\\ или folder\\subfolder
В пользовательском интерфейсе: .\ или folder\subfolder

Примечание

При создании и настройке с помощью пользовательского интерфейса не нужно вводить две обратные косые черты (\\) в качестве escape-символа, как при использовании JSON. Укажите одну обратную косую черту.

Пример.

{
    "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 поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.

Ниже перечислены свойства, которые поддерживаются для файловой системы в параметрах location в наборе данных на основе формата:

Свойство Описание Обязательно
type Свойство Type в location наборе данных должно иметь значение location. Да
folderPath Путь к папке. Если вы хотите использовать подстановочный знак для фильтрации папки, пропустите этот параметр и укажите его в параметрах источника действия. Нет
fileName Имя файла в заданном пути к папке. Если вы хотите использовать подстановочный знак для фильтрации файлов, пропустите этот параметр и укажите его в параметрах источника действия. Нет

Пример.

{
    "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. В этом разделе содержится список свойств, поддерживаемых файловой системой источника и приемника.

Файловая система в качестве источника

Фабрика данных Azure поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.

Ниже перечислены свойства, которые поддерживаются для файловой системы в параметрах storeSettings в источнике копирования на основе формата.

Свойство Описание Обязательно
type Свойство Type в разделе storeSettings должно иметь значение storeSettings. Да
Поиск файлов для копирования
ВАРИАНТ 1. Статический путь
Копирование из указанного пути к папке или файлу, заданному в наборе данных. Если вы хотите скопировать все большие файлы из папки, дополнительно укажите wildcardFileName как *.
ВАРИАНТ 2. Фильтр на стороне сервера
- fileFilter
Собственный фильтр на стороне файлового сервера более эффективен, чем фильтр с подстановочными знаками из ВАРИАНТА 3. Используйте * для сопоставления нуля или более символов и ? для сопоставления нуля или одного символа. Дополнительные сведения о синтаксисе и примечаниях см. в комментариях к этому разделу. нет
ВАРИАНТ 3. Фильтр на стороне клиента
- wildcardFolderPath
Путь к папке с подстановочными знаками для фильтрации исходных папок. Такая фильтрация происходит внутри службы. Служба перечисляет папки или файлы по заданному пути, а затем применяет фильтр с подстановочными знаками.
Допустимые подстановочные знаки: * (соответствует нулю или большему количеству знаков) и ? (соответствует нулю или одному знаку). Для экранирования используйте ^, если фактическое имя папки содержит подстановочный знак или escape-символ.
Дополнительные примеры приведены в разделе Примеры фильтров папок и файлов.
нет
ВАРИАНТ 3. Фильтр на стороне клиента
- wildcardFileName
Имя файла с подстановочными знаками в заданном folderPath/wildcardFolderPath для фильтрации исходных папок. Такая фильтрация происходит внутри службы. Служба перечисляет файлы по заданному пути, а затем применяет фильтр с подстановочными знаками.
Допустимые подстановочные знаки: * (соответствует нулю или большему количеству знаков) и ? (соответствует нулю или одному знаку). Для экранирования используйте ^, если фактическое имя файла содержит подстановочный знак или escape-символ.
Дополнительные примеры приведены в разделе Примеры фильтров папок и файлов.
Да
ВАРИАНТ 3. Список файлов
- fileListPath
Указывает, что нужно скопировать заданный набор файлов. Укажите текстовый файл со списком файлов, которые необходимо скопировать, по одному файлу в строке (каждая строка должна содержать относительный путь к заданному в наборе данных пути).
При использовании этого параметра не указывайте имя файла в наборе данных. Ознакомьтесь с дополнительными примерами в разделе Примеры списков файлов.
Нет
Дополнительные параметры
recursive Указывает, следует ли читать данные рекурсивно из вложенных папок или только из указанной папки. Обратите внимание, что если для свойства recursive задано значение true, а приемником является файловое хранилище, пустые папки и вложенные папки не создаются в приемнике.
Допустимые значения: true (по умолчанию) и false.
Это свойство не применяется при настройке fileListPath.
Нет
deleteFilesAfterCompletion Указывает, удаляются ли двоичные файлы из исходного хранилища после успешного перемещения в конечное хранилище. Файлы удаляются поочередно, поэтому в случае сбоя действия копирования вы увидите, что некоторые файлы уже скопированы в место назначения и удалены из источника, в то время как остальные находятся в исходном хранилище.
Это свойство допустимо только в сценарии копирования двоичных файлов. По умолчанию имеет значение false.
Нет
modifiedDatetimeStart Фильтр файлов на основе атрибута: последнее изменение.
Файлы будут выбраны, если время их последнего изменения находится в диапазоне времени modifiedDatetimeStart и modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате "2018-12-01T05:00:00Z".
Свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не будут применяться к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то будут выбраны файлы, чей атрибут последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то будут выбраны все файлы, чей атрибут последнего изменения меньше указанного значения даты и времени.
Это свойство не применяется при настройке fileListPath.
Нет
modifiedDatetimeEnd То же, что и выше. Нет
enablePartitionDiscovery Для секционированных файлов укажите, следует ли анализировать секции из пути к файлу и добавлять их как дополнительные исходные столбцы.
Допустимые значения: false (по умолчанию) и true.
Нет
partitionRootPath При включении обнаружения секций укажите абсолютный корневой путь, чтобы считывать секционированные папки как столбцы данных.

Если он не указан, то по умолчанию:
– при использовании пути к файлу в наборе данных или списке файлов в источнике корневым путем секции считается путь, настроенный в наборе данных;
– при использовании фильтра папки с подстановочными знаками корневым путем секции считается часть пути до первого подстановочного знака.

Предположим, что вы настроили путь в наборе данных следующим образом: "root/folder/year=2020/month=08/day=27".
– Если указать корневой путь секции "root/folder/year=2020", действие копирования в дополнение к указанным в файлах столбцам создаст еще два столбца, month и day, со значениями "08" и "27" соответственно.
– Если корневой путь секции не указан, дополнительные столбцы создаваться не будут.
Нет
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 поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.

Ниже перечислены свойства, которые поддерживаются для файловой системы в параметрах storeSettings для приемника копирования на основе формата:

Свойство Описание Обязательно
type Свойство Type в разделе storeSettings должно иметь значение storeSettings. Да
copyBehavior Определяет поведение копирования, когда источником являются файлы из файлового хранилища данных.

Допустимые значения:
— PreserveHierarchy (по умолчанию). Сохраняет иерархию файлов в целевой папке. Относительный путь исходного файла в исходной папке идентичен относительному пути целевого файла в целевой папке.
— FlattenHierarchy. Все файлы из исходной папки размещаются на первом уровне в целевой папке. Целевые файлы имеют автоматически сформированные имена.
— MergeFiles. Объединяет все файлы из исходной папки в один файл. Если указано имя файла, то оно присваивается объединенному файлу. В противном случае присваивается автоматически созданное имя файла.
Нет
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 ПапкаA
    Файл1.csv
    File2. JSON
    Вложенная_папка1
        Файл3.csv
        Файл4.json
        Файл5.csv
Другая_папкаB
    Файл6.csv
Folder* (пусто, используйте по умолчанию) Да ПапкаA
    Файл1.csv
    Файл2.json
    Вложенная_папка1
        File3.csv
        Файл4.json
        Файл5.csv
Другая_папкаB
    Файл6.csv
Folder* *.csv false ПапкаA
    Файл1.csv
    Файл2.json
    Вложенная_папка1
        Файл3.csv
        Файл4.json
        Файл5.csv
Другая_папкаB
    Файл6.csv
Folder* *.csv Да ПапкаA
    Файл1.csv
    Файл2.json
    Вложенная_папка1
        File3.csv
        Файл4.json
        Файл5.csv
Другая_папкаB
    Файл6.csv

Примеры списков файлов

В этом разделе описывается результирующее поведение при использовании пути к списку файлов в источнике действия копирования.

Предположим, что у вас есть следующая исходная структура папок и вы хотите скопировать файлы, выделенные полужирным шрифтом.

Пример исходной структуры Содержимое файла FileListToCopy.txt Конфигурация конвейера
root
    ПапкаA
        Файл1.csv
        Файл2.json
        Вложенная_папка1
            Файл3.csv
            Файл4.json
            File5.csv
    Метаданные
        FileListToCopy.txt
Файл1.csv
Вложенная_папка1/Файл3.csv
Вложенная_папка1/Файл5.csv
В наборе данных:
— Путь к папке: root/FolderA

В источнике действия копирования:
— Путь к списку файлов: root/Metadata/FileListToCopy.txt

Путь к списку файлов указывает на текстовый файл в том же хранилище данных, содержащий список файлов, которые необходимо скопировать, указав по одному файлу в строке с относительным путем к пути, заданному в наборе данных.

Примеры recursive и copyBehavior

В данном разделе описываются результаты выполнения операции копирования при использовании различных сочетаний значений recursive и copyBehavior.

recursive copyBehavior Структура папок источника Результаты цели
Да preserveHierarchy Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка "Папка1" создается с такой же структурой, как и исходная папка:

Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Да flattenHierarchy Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка "Папка1" создается со следующей структурой:

Папка1
    автоматически созданное имя для "Файл1"
    автоматически созданное имя для "Файл2"
    автоматически созданное имя для "Файл3"
    автоматически созданное имя для "Файл4"
    автоматически созданное имя для "Файл5"
Да mergeFiles Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка "Папка1" создается со следующей структурой:

Папка1
    Содержимое файлов "Файл1", "Файл2", "Файл3", "Файл4" и "Файл5" объединяется в один файл с автоматически созданным именем.
false preserveHierarchy Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка "Папка1" создается со следующей структурой

Папка1
    Файл1
    Файл2

Папка "Вложенная_папка1" с файлами "Файл3", "Файл4" и "Файл5" не будет включена в эту папку.
false flattenHierarchy Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка "Папка1" создается со следующей структурой

Папка1
    автоматически созданное имя для "Файл1"
    автоматически созданное имя для "Файл2"

Папка "Вложенная_папка1" с файлами "Файл3", "Файл4" и "Файл5" не будет включена в эту папку.
false mergeFiles Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка "Папка1" создается со следующей структурой

Папка1
    Содержимое файлов "Файл1" и "Файл2" объединяется в один файл с автоматически созданным именем. автоматически созданное имя для "Файл1"

Папка "Вложенная_папка1" с файлами "Файл3", "Файл4" и "Файл5" не будет включена в эту папку.

Свойства действия поиска

Подробные сведения об этих свойствах см. в разделе Действие поиска.

Свойства действия GetMetadata

Подробные сведения об этих свойствах см. в разделе Действие GetMetadata

Свойства действия удаления

Подробные сведения об этих свойствах см. в разделе Действие удаления

Устаревшие модели

Примечание

Следующие модели по-прежнему поддерживаются на условиях "как есть" для обеспечения обратной совместимости. В дальнейшем рекомендуется использовать новую модель, упомянутую в разделах выше. Пользовательский интерфейс разработки был изменен для создания новой модели.

Устаревшая модель набора данных

Свойство Описание Обязательно
type Для свойства type набора данных необходимо задать следующее значение: FileShare. Да
folderPath Путь к папке, Фильтр с подстановочными знаками поддерживается. Допустимые подстановочные знаки: * (соответствует нулю или большему количеству знаков) и ? (соответствует нулю или одному знаку). Для экранирования используйте ^, если имя фактической папки содержит подстановочный знак или escape-символ.

Примеры: rootfolder/subfolder/. Дополнительные примеры см. в разделах Примеры определений связанной службы и набора данных и Примеры фильтров папок и файлов.
нет
fileName Имя или фильтр шаблонов для файлов по указанному folderPath. Если этому свойству не присвоить значение, набор данных будет указывать на все файлы в папке.

Допустимые знаки подстановки для фильтра: * (соответствует нулю или нескольким символам) и ? (соответствует нулю или одному символу).
Пример 1. "fileName": "*.csv"
Пример 2. "fileName": "???20180427.txt"
Используйте ^ для экранирования символов, если фактическое имя файла содержит подстановочный знак или этот escape-символ.

Если fileName для выходного набора данных не указан, а preserveHierarchy не указан в приемнике действия, действие копирования автоматически создаст имя файла по следующему шаблону: "Data.[GUID идентификатора выполнения действия].[GUID, если поведение — FlattenHierarchy].[формат, если настроено].[сжатие, если настроено] ". Например, Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz. При копировании из табличного источника с использованием имени таблицы вместо запроса формат имени будет таким: " [имя таблицы].[фoрмат].[сжатие, если настроено] ". Например, "MyTable.csv".
Нет
modifiedDatetimeStart Фильтр файлов на основе атрибута: последнее изменение. Файлы будут выбраны, если время их последнего изменения находится в диапазоне времени modifiedDatetimeStart и modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате "2018-12-01T05:00:00Z".

Учтите, что включение этого параметра в случае, если требуется применить фильтр файлов к огромному числу файлов, повлияет на общую производительность перемещения данных.

Свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не будут применяться к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то будут выбраны файлы, чей атрибут последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то будут выбраны все файлы, чей атрибут последнего изменения меньше указанного значения даты и времени.
Нет
modifiedDatetimeEnd Фильтр файлов на основе атрибута: последнее изменение. Файлы будут выбраны, если время их последнего изменения находится в диапазоне времени modifiedDatetimeStart и modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате "2018-12-01T05:00:00Z".

Учтите, что включение этого параметра в случае, если требуется применить фильтр файлов к огромному числу файлов, повлияет на общую производительность перемещения данных.

Свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не будут применяться к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то будут выбраны файлы, чей атрибут последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то будут выбраны все файлы, чей атрибут последнего изменения меньше указанного значения даты и времени.
Нет
format Если требуется скопировать файлы между файловыми хранилищами как есть (двоичное копирование), можно пропустить раздел форматирования в определениях входного и выходного наборов данных.

Если необходимо проанализировать или создать файлы определенного формата, поддерживаются следующие форматы файлов: TextFormat, JsonFormat, AvroFormat, OrcFormat, ParquetFormat. Свойству type в разделе format необходимо присвоить одно из этих значений. Дополнительные сведения см. в разделах о текстовом формате, формате Json, формате Avro, формате Orc и формате Parquet.
Нет (только для сценария двоичного копирования)
compression Укажите тип и уровень сжатия данных. Дополнительные сведения см. в разделе Поддержка сжатия.
Поддерживаемые типы: GZip, Deflate, BZip2 и ZipDeflate.
Поддерживаемые уровни: Оптимальный и Самый быстрый.
Нет

Совет

Чтобы скопировать все файлы в папке, укажите только 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"
            }
        }
    }
}

Устаревшая модель источника действия копирования

Свойство Описание Обязательно
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>"
            }
        }
    }
]

Устаревшая модель приемника действия копирования

Свойство Описание Обязательно
type Свойство type приемника действия копирования должно иметь следующее значение: FileSystemSink. Да
copyBehavior Определяет поведение копирования, когда источником являются файлы из хранилища данных на основе файлов.

Допустимые значения:
- PreserveHierarchy (по умолчанию). Сохраняет иерархию файлов в целевой папке. Относительный путь исходного файла в исходной папке идентичен относительному пути целевого файла в целевой папке.
- FlattenHierarchy. Все файлы из исходной папки размещаются на первом уровне в целевой папке. Целевые файлы имеют автоматически сформированные имена.
- MergeFiles. Объединяет все файлы из исходной папки в один файл. Дедупликация записей во время объединения не выполняется. Если указано имя файла, объединенному файлу будет присвоено именно это имя; в противном случае имя файла генерируется автоматически.
нет
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, приведен в таблице Поддерживаемые хранилища данных и форматы.