Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure
Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается, как с помощью действия копирования копировать данные с SFTP-сервера и использовать поток данных для преобразования данных на SFTP-сервере. Подробнее см. в вводной статье о Фабрике данных Azure или Azure Synapse Analytics.
Поддерживаемые возможности
Соединитель SFTP поддерживается для следующих возможностей:
Поддерживаемые возможности | IR |
---|---|
Операция копирования (источник/приемник) | (1) (2) |
Сопоставление потока данных (источник/приемник) | (1) |
Активность поиска | ① ② |
Действие GetMetadata | ① ② |
Удалить действие | ① ② |
① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции
В частности, соединитель SFTP поддерживает:
- Копирование файлов на и с сервера SFTP с использованием базовой, аутентификации с открытым ключом SSH или многофакторной аутентификации.
- Копирование файлов "как есть" либо посредством разбора или создания файлов с использованием поддерживаемых форматов файлов и кодеков сжатия.
Предварительные условия
Если хранилище данных размещено в локальной сети, виртуальной сети Azure или виртуальном частном облаке Amazon, для подключения к нему нужно настроить локальную среду выполнения интеграции.
Если же хранилище данных представляет собой управляемую облачную службу данных, можно использовать Azure Integration Runtime. Если доступ предоставляется только по IP-адресам, утвержденным в правилах брандмауэра, вы можете добавить IP-адреса Azure Integration Runtime в список разрешений.
Вы также можете использовать функцию среды выполнения интеграции в управляемой виртуальной сети в Фабрике данных Azure для доступа к локальной сети без установки и настройки локальной среды выполнения интеграции.
Дополнительные сведения о вариантах и механизмах обеспечения сетевой безопасности, поддерживаемых Фабрикой данных, см. в статье Стратегии получения доступа к данным.
Начало работы
Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:
- средство копирования данных;
- Портал Azure
- Пакет SDK для .NET
- Пакет SDK для Python
- Azure PowerShell
- The REST API
- шаблон Azure Resource Manager.
Создание связанной службы для SFTP с помощью пользовательского интерфейса
Выполните приведенные ниже действия, чтобы создать связанную службу для SFTP с помощью пользовательского интерфейса на портале Azure.
Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":
Выполните поиск по запросу "SFTP" и выберите соединитель SFTP.
Настройте сведения о службе, проверьте подключение и создайте связанную службу.
Сведения о конфигурации соединителя
Следующие разделы содержат сведения о свойствах, которые используются для определения сущностей, характерных для SFTP.
Свойства связанной службы
Для связанной службы SFTP поддерживаются следующие свойства
Имущество | Описание: | Обязательное поле |
---|---|---|
тип | Для свойства type необходимо задать значение Sftp. | Да |
хост | Имя или IP-адрес SFTP-сервера. | Да |
порт | Порт, прослушиваемый SFTP-сервером. Допустимое значение — целое число, а значение по умолчанию — 22. |
Нет |
пропустить проверку ключа хоста | Указывает, нужно ли пропустить проверку ключа узла. Допустимые значения: true и false (по умолчанию). |
Нет |
отпечаток ключа хоста | Укажите отпечаток ключа узла. | Да, если skipHostKeyValidation имеет значение false. |
тип аутентификации | Укажите тип проверки подлинности. Допустимые значения: Базовая, Открытый ключ SSH и Многофакторная. Подробнее о свойствах см. в разделе Использование обычной проверки подлинности. Примеры для JSON см. в разделе Использование проверки подлинности с открытым ключом SSH. |
Да |
connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Подробнее см. в разделе Необходимые требования. Если среда выполнения интеграции не указана, служба использует среду выполнения интеграции Azure Integration Runtime по умолчанию. | Нет |
Использование базовой проверки подлинности
Чтобы использовать обычную проверку подлинности, задайте для свойства authenticationType значение Базовая и укажите следующие свойства в дополнение к универсальным свойствам соединителя SFTP, которые были представлены в предыдущем разделе:
Свойство | Описание: | Обязательное поле |
---|---|---|
userName | Пользователь, имеющий доступ к SFTP-серверу. | Да |
пароль | пароль пользователя (username). Пометьте это поле как SecureString, чтобы безопасно хранить его или ссылаться на секрет, хранящийся в Azure Key Vault. | Да |
Пример:
{
"name": "SftpLinkedService",
"properties": {
"type": "Sftp",
"typeProperties": {
"host": "<sftp server>",
"port": 22,
"skipHostKeyValidation": false,
"hostKeyFingerPrint": "ssh-rsa 2048 xx:00:00:00:xx:00:x0:0x:0x:0x:0x:00:00:x0:x0:00",
"authenticationType": "Basic",
"userName": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of integration runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Аутентификация с открытым ключом SSH
Чтобы использовать проверку подлинности с открытым ключом SSH, задайте для свойства authenticationType значение SshPublicKey, а также все следующие свойства в дополнение к универсальным свойствам соединителя SFTP, которые описаны в последнем разделе.
Свойство | Описание: | Обязательное поле |
---|---|---|
userName | Пользователь, имеющий доступ к SFTP-серверу. | Да |
privateKeyPath | Укажите доступный для среды выполнения интеграции полный путь к файлу закрытого ключа. Применяется, только если в connectVia задан тип локальной среды выполнения интеграции. | Укажите privateKeyPath или privateKeyContent . |
содержимоеЗакрытогоКлюча | Содержимое закрытого ключа SSH в кодировке Base64. Закрытый ключ SSH должен быть в формате OpenSSH. Пометьте это поле как SecureString, чтобы безопасно хранить его или ссылаться на секрет, хранящийся в Azure Key Vault. | Укажите privateKeyPath или privateKeyContent . |
парольная фраза | Укажите пароль или парольную фразу для расшифровки закрытого ключа, если файл ключа или его содержимое защищены парольной фразой. Пометьте это поле как SecureString, чтобы безопасно хранить его или ссылаться на секрет, хранящийся в Azure Key Vault. | Да, если файл закрытого ключа защищен парольной фразой. |
Примечание.
Соединитель SFTP поддерживает только ключ OpenSSH RSA/DSA. Содержимое файла ключа должно начинаться с текста "-----BEGIN [RSA/DSA] PRIVATE KEY-----". Если файл закрытого ключа имеет формат PPK, используйте средство PuTTy для преобразования из формата PPK в OpenSSH.
Пример 1: Аутентификация SshPublicKey с использованием пути к файлу закрытого ключа
{
"name": "SftpLinkedService",
"properties": {
"type": "Sftp",
"typeProperties": {
"host": "<sftp server>",
"port": 22,
"skipHostKeyValidation": true,
"authenticationType": "SshPublicKey",
"userName": "xxx",
"privateKeyPath": "D:\\privatekey_openssh",
"passPhrase": {
"type": "SecureString",
"value": "<pass phrase>"
}
},
"connectVia": {
"referenceName": "<name of integration runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Пример 2: Аутентификация SSH с использованием содержимого закрытого ключа
{
"name": "SftpLinkedService",
"type": "Linkedservices",
"properties": {
"type": "Sftp",
"typeProperties": {
"host": "<sftp server>",
"port": 22,
"skipHostKeyValidation": true,
"authenticationType": "SshPublicKey",
"userName": "<username>",
"privateKeyContent": {
"type": "SecureString",
"value": "<base64 string of the private key content>"
},
"passPhrase": {
"type": "SecureString",
"value": "<pass phrase>"
}
},
"connectVia": {
"referenceName": "<name of integration runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Использование многофакторной проверки подлинности
Чтобы использовать многофакторную проверку подлинности, которая представляет собой сочетание базовой проверки подлинности и открытого ключа SSH, укажите имя пользователя, пароль и сведения о закрытом ключе, описанные в разделах выше.
Пример: включение многофакторной проверки подлинности
{
"name": "SftpLinkedService",
"properties": {
"type": "Sftp",
"typeProperties": {
"host": "<host>",
"port": 22,
"authenticationType": "MultiFactor",
"userName": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"privateKeyContent": {
"type": "SecureString",
"value": "<base64 encoded private key content>"
},
"passPhrase": {
"type": "SecureString",
"value": "<passphrase for private key>"
}
},
"connectVia": {
"referenceName": "<name of integration runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Свойства набора данных
Полный список разделов и свойств, используемых для определения наборов данных, см. в статье Наборы данных.
Фабрика данных Azure поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.
- Формат Avro
- Двоичный формат
- Формат текста с разделителями
- Формат Excel
- Формат JSON
- Формат ORC
- Формат Parquet
- ФОРМАТ XML
Ниже перечислены свойства, которые поддерживаются для SFTP-сервера в настройках location
в наборе данных на основе формата:
Свойство | Описание: | Обязательное поле |
---|---|---|
тип | Для свойства type в location в наборе данных необходимо задать значение SftpLocation. |
Да |
folderPath | Путь к папке. Если вы хотите использовать подстановочный знак для фильтрации папки, пропустите этот параметр и укажите путь в настройках источника активности. | Нет |
имя файла | Имя файла в указанном пути folderPath. Если вы хотите использовать подстановочный знак для фильтрации файлов, пропустите этот параметр и укажите имя файла в параметрах источника действия. | Нет |
Пример:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<SFTP linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "SftpLocation",
"folderPath": "root/folder/subfolder"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
Свойства действия копирования
Полный список разделов и свойств, используемых для определения действий, см. в статье Конвейеры. Этот раздел содержит список свойств, поддерживаемых источником SFTP.
SFTP в качестве источника
Фабрика данных Azure поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.
- Формат Avro
- Двоичный формат
- Формат текста с разделителями
- Формат Excel
- Формат JSON
- Формат ORC
- Формат Parquet
- ФОРМАТ XML
Ниже перечислены свойства, которые поддерживаются для SFTP-сервера в настройках storeSettings
в источнике копирования на основе формата:
Свойство | Описание: | Обязательное поле |
---|---|---|
тип | Для свойства type в storeSettings необходимо задать значение SftpReadSettings. |
Да |
Найдите файлы для копирования | ||
ВАРИАНТ 1. Статический путь |
Копируйте из указанного пути к папке или файлу в наборе данных. Если вы хотите скопировать все файлы из папки, дополнительно укажите wildcardFileName со значением * . |
|
ВАРИАНТ 2. Подстановочный знак - wildcardFolderPath |
Путь к папке с подстановочными знаками для фильтрации исходных папок. Допустимые подстановочные знаки: * (соответствует нулю или большему количеству знаков) и ? (соответствует нулю или одному знаку). Для экранирования используйте ^ , если фактическое имя папки содержит подстановочный знак или escape-символ. Больше примеров см. в разделе Примеры фильтров папок и файлов. |
Нет |
ВАРИАНТ 2. Подстановочный знак — wildcardFileName |
Имя файла с подстановочными знаками в заданном пути folderPath/wildcardFolderPath для фильтрации исходных папок. Допустимые подстановочные знаки: * (соответствует нулю или большему количеству знаков) и ? (соответствует нулю или одному знаку). Для экранирования используйте ^ , если фактическое имя файла содержит подстановочный знак или escape-символ. Больше примеров см. в разделе Примеры фильтров папок и файлов. |
Да |
Вариант 3. Список файлов - fileListPath |
Указывает, что нужно скопировать заданный набор файлов. Укажите текстовый файл со списком файлов, которые необходимо скопировать, по одному файлу в строке (каждая строка должна содержать относительный путь к заданному в наборе данных пути). При использовании этого параметра не указывайте имя файла в наборе данных. Больше примеров см. в разделе Примеры списка файлов. |
Нет |
Дополнительные параметры | ||
рекурсивный | Указывает, считываются ли данные рекурсивно из вложенных папок или только из указанной папки. Если для свойства recursive задано значение true, а приемником является файловый магазин, пустая папка или вложенная папка не копируются и не создаются в приемнике. Допустимые значения: true (по умолчанию) и false. Это свойство не применяется при настройке fileListPath . |
Нет |
удалитьФайлыПослеЗавершения | Указывает, удаляются ли двоичные файлы из исходного хранилища после успешного перемещения в конечное хранилище. Файлы удаляются поочередно, поэтому в случае сбоя действия копирования вы увидите, что некоторые файлы уже скопированы в место назначения и удалены из источника, в то время как остальные находятся в исходном хранилище. Это свойство допустимо только в сценарии копирования двоичных файлов. По умолчанию имеет значение false. |
Нет |
modifiedDatetimeStart | Фильтрация файлов на основе атрибута Last Modified. Выбираются все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd . Время представлено часовым поясом UTC в формате 2018-12-01T05:00:00Z. Свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не применяются к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения меньше указанного значения даты и времени.Это свойство не применяется при настройке fileListPath . |
Нет |
конецИзменённойДатыИВремени | То же, что выше. | Нет |
включить обнаружение разделов | Для секционированных файлов укажите, следует ли анализировать секции из пути к файлу и добавлять их как дополнительные исходные столбцы. Допустимые значения: false (по умолчанию) и true. |
Нет |
partitionRootPath | Если обнаружение секций включено, укажите абсолютный корневой путь, чтобы считывать секционированные папки как столбцы данных. Если параметр не задан (по умолчанию), происходит следующее. — При использовании пути к файлу в наборе данных или списке файлов в источнике корневым путем секции считается путь, настроенный в наборе данных. — При использовании фильтра папки с подстановочными знаками, корневым путем раздела считается часть пути до первого подстановочного знака. Предположим, что вы настроили путь в наборе данных следующим образом: "root/folder/year=2020/month=08/day=27". — Если указать корневой путь секции "root/folder/year=2020", действие копирования в дополнение к указанным в файлах столбцам создаст еще два столбца, month и day , со значениями "08" и "27" соответственно.— Если корневой путь секции не указан, дополнительные столбцы создаваться не будут. |
Нет |
максимальное количество одновременных подключений | Верхний предел одновременных подключений, установленных к хранилищу данных при запуске операции. Указывайте значение только при необходимости ограничить количество одновременных подключений. | Нет |
disableChunking | При копировании данных с SFTP-сервера служба пытается сначала получить длину файла, а затем разделить этот файл на несколько частей и считывать их параллельно. Укажите, поддерживает ли ваш SFTP-сервер получение длины файла или возможность чтения с заданного смещения. Допустимые значения: false (по умолчанию), true. |
Нет |
Пример:
"activities":[
{
"name": "CopyFromSFTP",
"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": "SftpReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv",
"disableChunking": false
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
SFTP как приемник
Фабрика данных Azure поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.
Ниже перечислены свойства, которые поддерживаются для SFTP-сервера в настройках storeSettings
в приемнике копирования на основе формата:
Свойство | Описание: | Обязательное поле |
---|---|---|
тип | Для свойства type в storeSettings необходимо задать значение SftpWriteSettings. |
Да |
копирование поведения | Определяет поведение копирования, когда источником являются файлы из файлового хранилища данных. Допустимые значения: — PreserveHierarchy (по умолчанию). Сохраняет иерархию файлов в целевой папке. Относительный путь исходного файла в исходной папке идентичен относительному пути целевого файла в целевой папке. — FlattenHierarchy. Все файлы из исходной папки размещаются на первом уровне в целевой папке. Целевые файлы имеют автоматически сформированные имена. — MergeFiles. Объединяет все файлы из исходной папки в один файл. Если указано имя файла, то оно становится именем объединенного файла. В противном случае присваивается автоматически созданное имя файла. |
Нет |
максимальное количество одновременных подключений | Верхний предел одновременных подключений, устанавливаемых для хранилища данных при запуске активности. Указывайте значение только при необходимости ограничить количество одновременных подключений. | Нет |
useTempFileRename | Укажите, следует ли передать данные во временный файл и переименовать его или сразу вести запись в целевую папку и файл. По умолчанию служба сначала выполняет запись во временные файлы, а затем переименовывает их после завершения отправки. Эта последовательность помогает (1) избегать конфликтов, которые могут привести к повреждению файла, если другие процессы записывают в один и тот же файл, и (2) убедитесь, что исходная версия файла существует во время передачи. Если SFTP-сервер не поддерживает операцию переименования, отключите этот параметр и следите за тем, чтобы не возникало параллельных операций записи в один целевой файл. Подробнее см. в совете по устранению неполадок в конце этой таблицы. | № Значение по умолчанию — True. |
operationTimeout | Время ожидания перед каждым запросом на запись на сервер SFTP истекает. Значение по умолчанию — 60 минут (01:00:00). | Нет |
Совет
Если при записи данных в SFTP появляется сообщение об ошибке "UserErrorSftpPathNotFound", "UserErrorSftpPermissionDenied" или "SftpOperationFail", а используемый пользователь SFTP имеет необходимые разрешения, проверьте, работает ли операция переименования файлов в службе SFTP. Если это не так, отключите параметр Отправить с временным файлом (useTempFileRename
) и повторите попытку. Дополнительные сведения об этом свойстве см. в предыдущей таблице. Если для действия Copy используется локальная среда выполнения интеграции, убедитесь, что используется версия 4.6 или более поздняя.
Пример:
"activities":[
{
"name": "CopyToSFTP",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "BinarySink",
"storeSettings":{
"type": "SftpWriteSettings",
"copyBehavior": "PreserveHierarchy"
}
}
}
}
]
Примеры фильтров папок и файлов
В этом разделе описывается поведение, полученное в результате использования фильтров с подстановочными знаками с путями к папкам и именами файлов.
folderPath | имя файла | рекурсивный | Структура исходной папки и результат фильтрации (извлекаются файлы, выделенные полужирным шрифтом) |
---|---|---|---|
Folder* |
(пусто, используйте по умолчанию) | ложный | ПапкаA Файл1.csv File2.json Вложенная папка 1 File3.csv File4.json File5.csv ДругаяПапкаB Файл6.csv |
Folder* |
(пусто, используйте по умолчанию) | true | ПапкаA Файл1.csv File2.json Вложенная папка1 File3.csv File4.json File5.csv ДругаяПапкаB Файл6.csv |
Folder* |
*.csv |
ложный | ПапкаA Файл1.csv File2.json Подпапка 1 File3.csv File4.json File5.csv ДругаяПапкаB Файл6.csv |
Folder* |
*.csv |
правда | ПапкаA Файл1.csv File2.json Вложенная папка1 File3.csv File4.json File5.csv Другая_папкаB Файл6.csv |
Примеры списков файлов
В этой таблице описывается поведение, которое является результатом использования пути к списку файлов в источнике действия Copy. Предположим, что у вас есть следующая исходная структура папок и вы хотите скопировать файлы, выделенные полужирным шрифтом.
Пример исходной структуры | Содержимое в файле FileListToCopy.txt | Конфигурация Фабрики данных Azure |
---|---|---|
root ПапкаA Файл1.csv File2.json Подпапка 1 File3.csv File4.json File5.csv Метаданные СписокФайловДляКопирования.txt |
Файл1.csv Вложенная_папка1/Файл3.csv Вложенная_папка1/Файл5.csv |
В наборе данных: – Путь к папке: root/FolderA В источнике операции Copy: – Путь к списку файлов: root/Metadata/FileListToCopy.txt Путь к списку файлов указывает на текстовый файл в том же хранилище данных, который содержит список файлов для копирования (по одному файлу на строку) с указанием относительного пути относительно пути, заданного в наборе данных. |
Сопоставление свойств потока данных
При преобразовании данных в потоках данных для сопоставления можно считывать и записывать файлы из SFTP-сервера в следующих форматах:
Конкретные параметры приведены в документации для соответствующего формата. Для получения дополнительной информации см. разделы Source transformation в потоке данных для сопоставления и Sink transformation в потоке данных для сопоставления.
Примечание.
В настоящее время проверка ключа хоста SSH не поддерживается в сопоставлении потока данных.
Примечание.
Для доступа к локальному SFTP-серверу необходимо использовать Фабрику данных Azure или рабочую область Synapse управляемой виртуальной сети с использованием частной конечной точки. Подробные инструкции см. в этом учебнике.
Преобразование источника
В приведенной ниже таблице указаны свойства, поддерживаемые источником SFTP. Изменить эти свойства можно на вкладке Параметры источника. При использовании встроенного набора данных будут отображаться дополнительные параметры, совпадающие со свойствами, описанными в разделе Свойства набора данных.
Имя | Описание: | Обязательное поле | Допустимые значения | Свойство потока данных скрипта |
---|---|---|---|---|
Путь с подстановочными знаками | Использование шаблона с подстановочными знаками позволяет указать ADF, чтобы пройти через каждую соответствующую папку и файл в одной операции источника. Это эффективный способ обработки нескольких файлов в одном потоке. | Нет | String[] | wildcardPaths |
Корневой путь раздела | Если в источнике файлов имеются секционированные папки формата key=value (например, year=2019 ), то верхний уровень этого дерева секционированной папки можно назначить имени столбца в потоке данных. |
Нет | Строка | partitionRootPath |
Allow no files found (Разрешить ненайденные файлы) | Когда задано значение true, ошибка не возникает, если файлы не найдены. | Нет |
true или false |
ignoreNoFilesFound |
Список файлов | Это набор файлов. Создайте текстовый файл, содержащий список относительных путей файлов для обработки. Покажите на этот текстовый файл. | Нет |
true или false |
список файлов |
Столбец для хранения имени файла | Сохраните имя исходного файла в столбце данных. Укажите здесь новое имя столбца для хранения строки имени файла. | Нет | Строка | rowUrlColumn |
После завершения | Выберите: ничего не делать с исходным файлом после выполнения потока данных, удалить исходный файл или переместить его. Пути для перемещения являются относительными. | Нет | Удалить: true или false Перемещение: ['<from>', '<to>'] |
очиститьФайлы переместитьФайлы |
Фильтр по последнему изменению | Вы можете отфильтровать обрабатываемые файлы, указав диапазон дат последнего изменения. Все значения даты и времени указаны в формате UTC. | Нет | Метка времени | измененоПосле изменено до |
Пример сценария источника SFTP
При использовании набора данных SFTP в качестве типа источника связанный сценарий потока данных будет следующим:
source(allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: true,
purgeFiles: true,
fileList: true,
modifiedAfter: (toTimestamp(1647388800000L)),
modifiedBefore: (toTimestamp(1647561600000L)),
partitionRootPath: 'partdata',
wildcardPaths:['partdata/**/*.csv']) ~> SFTPSource
Преобразование приемника
В приведенной ниже таблице указаны свойства, поддерживаемые приемником SFTP. Эти свойства можно изменить на вкладке Параметры. При использовании встроенного набора данных будут отображаться дополнительные параметры, совпадающие со свойствами, описанными в разделе Свойства набора данных.
Имя | Описание: | Обязательное поле | Допустимые значения | Свойство скрипта для потока данных |
---|---|---|---|---|
Clear the folder (Очистить папку) | Определяет, следует ли удалять конечную папку перед записью данных. | Нет |
true или false |
усекать |
File name option (Параметр имени файла) | Формат именования записываемого файла данных. По умолчанию — по одному файлу на секцию в формате part-#####-tid-<guid> . |
Нет | Шаблон: строка Для каждого раздела: массив строк Название файла как данные в столбце: Строка Имя папки в виде данных столбца: Строка Вывод в один файл: ['<fileName>'] |
шаблон файла partitionFileNames rowUrlColumn строкаПапкаUrlКолонка партишнФайлНеймс |
Цитировать все | Указывает, следует ли заключать все значения в кавычки. | Нет |
true или false |
цитироватьВсех |
Пример сценария приемника SFTP
При использовании набора данных SFTP в качестве типа приемника связанный сценарий потока данных будет следующим:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
filePattern:'loans[n].csv',
truncate: true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> SFTPSink
Свойства активности поиска
Сведения о свойствах действия поиска см. в статье Действие поиска.
Свойства действия GetMetadata
Для получения сведений о свойствах операции GetMetadata см. Действие GetMetadata.
Свойства активности удаления
Сведения о свойствах действия удаления см. в разделе Удаление действия.
Устаревшие модели
Примечание.
Следующие модели по-прежнему поддерживаются на условиях "как есть" для обеспечения обратной совместимости. Рекомендуется использовать ранее описанную новую модель, так как пользовательский интерфейс разработки переключен для создания новой модели.
Устаревшая модель набора данных
Свойство | Описание: | Обязательное поле |
---|---|---|
тип | Свойство type для набора данных должно иметь значение FileShare. | Да |
folderPath | Путь к папке. Поддерживается фильтр подстановочных знаков. Допустимые подстановочные знаки: * (соответствует нулю или большему количеству знаков) и ? (соответствует нулю или одному знаку). Для экранирования используйте ^ , если фактическое имя файла содержит подстановочный знак или escape-символ. Примеры: rootfolder/subfolder/. Дополнительные примеры см. в разделе Примеры фильтров папок и файлов. |
Да |
имя файла |
Имя или фильтр с подстановочными символами для файлов в указанной "folderPath". Если этому свойству не присвоить значение, набор данных будет указывать на все файлы в папке. Допустимые знаки подстановки для фильтра: * (соответствует нулю или нескольким символам) и ? (соответствует нулю или одному символу).Пример 1. "fileName": "*.csv" Пример 2. "fileName": "???20180427.txt" Используйте ^ для экранирования, если фактическое имя папки содержит подстановочный символ или символ экранирования. |
Нет |
modifiedDatetimeStart | Фильтрация файлов на основе атрибута Last Modified. Выбираются все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd . Время представлено часовым поясом UTC в формате 2018-12-01T05:00:00Z. Учтите, что включение этого параметра в случае, если требуется применить фильтр файлов к значительному количеству файлов, повлияет на общую производительность перемещения данных. Свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не применяются к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения меньше указанного значения даты и времени. |
Нет |
измененноеВремяОкончания | Фильтрация файлов на основе атрибута Last Modified. Выбираются все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd . Время представлено часовым поясом UTC в формате 2018-12-01T05:00:00Z. Учтите, что включение этого параметра в случае, если требуется применить фильтр файлов к значительному количеству файлов, повлияет на общую производительность перемещения данных. Свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не применяются к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения меньше указанного значения даты и времени. |
Нет |
формат | Если требуется скопировать файлы между файловыми хранилищами "как есть" (двоичное копирование), можно пропустить раздел форматирования в определениях входного и выходного наборов данных. Если вы хотите анализировать файлы определенного формата, поддерживаются следующие типы форматов файлов: TextFormat, JsonFormat, AvroFormat, OrcFormat, и ParquetFormat. Свойству type в разделе format необходимо присвоить одно из этих значений. Дополнительные сведения см. в разделах "Текстовый формат", "Формат JSON", "Формат Avro", "Orc" и "Parquet". |
Нет (только для сценария двоичного копирования) |
сжатие | Укажите тип и уровень сжатия данных. Дополнительные сведения см. в разделе Поддержка сжатия. Поддерживаемые типы: GZip, Deflate, BZip2 и ZipDeflate. Поддерживаемые уровни: Optimal и Fastest. |
Нет |
Совет
Чтобы скопировать все файлы в папке, укажите только folderPath.
Чтобы скопировать один файл с заданным именем, укажите folderPath с путем к папке и fileName с именем файла.
Чтобы скопировать подмножество файлов в папке, укажите folderPath с частью папки и fileName с фильтром подстановочных знаков.
Примечание.
Если вы использовали свойство fileFilter для фильтрации файлов, оно по-прежнему поддерживается без изменений, а вам предлагается далее использовать новую возможность фильтрации, добавленную к fileName.
Пример:
{
"name": "SFTPDataset",
"type": "Datasets",
"properties": {
"type": "FileShare",
"linkedServiceName":{
"referenceName": "<SFTP 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"
}
}
}
}
Устаревшая модель источника действия Copy
Свойство | Описание: | Обязательное поле |
---|---|---|
тип | Свойство type источника действия Copy должно иметь значение FileSystemSource. | Да |
рекурсивный | Указывает, следует ли выполнять поочередное чтение данных из вложенных папок или только из указанной папки. Если для свойства recursive задано значение true, а приемником является файловое хранилище, пустые папки и вложенные папки не будут скопированы или созданы в приемнике. Допустимые значения: true (по умолчанию) и false. |
Нет |
максимальное количество одновременных подключений (maxConcurrentConnections) | Верхний предел одновременных подключений к хранилищу данных во время выполнения задачи. Указывайте значение только при необходимости ограничить количество одновременных подключений. | Нет |
Пример:
"activities":[
{
"name": "CopyFromSFTP",
"type": "Copy",
"inputs": [
{
"referenceName": "<SFTP input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "FileSystemSource",
"recursive": true
},
"sink": {
"type": "<sink type>"
}
}
}
]
Связанный контент
См. Поддерживаемые хранилища данных для списка хранилищ данных, которые поддерживаются в качестве источников и приемников для операции копирования.