Фабрика данных Azure и SharePoint
У меня есть некоторые файлы Excel, хранящиеся в SharePoint онлайн. Я хочу скопировать файлы, хранящиеся в папках SharePoint, в хранилище BLOB-объектов Azure.
Для этого я создаю новый конвейер в фабрике данных Azure, используя портал Azure. Каковы возможные способы копирования файлов из SharePoint в хранилище больших двоичных объектов Azure с использованием конвейеров фабрики данных Azure?
Я рассмотрел все типы связанных служб в конвейере фабрики данных Azure, но не смог найти подходящий тип для подключения к SharePoint.
5 ответов
Вместо прямого доступа к файлу в SharePoint из фабрики данных, вам, возможно, придется использовать промежуточную технологию и заставить фабрику данных вызывать ее. У вас есть несколько вариантов:
- Используйте приложение логики для перемещения файла
- Используйте функцию Azure
- Используйте пользовательское действие и напишите свой собственный C#, чтобы скопировать файл.
Чтобы вызвать приложение логики из ADF, вы используете веб-активность. Теперь вы можете напрямую вызвать функцию Azure.
Мы можем создать связанную службу типа " Файловая система", указав URL-адрес каталога в качестве значения "Хост". Для аутентификации пользователя укажите имя пользователя и пароль / данные AKV. Примечание. Используйте собственный ИК-порт.
В то время мой предыдущий ответ был верным, но за последние несколько лет Microsoft опубликовала руководство о том, как копировать документы из библиотеки SharePoint. Вы можете скопировать файл из SharePoint Online с помощью веб-действия для проверки подлинности и получения маркера доступа из SPO, а затем перейти к последующему действию копирования для копирования данных с использованием соединителя HTTP в качестве источника.
Я столкнулся с некоторыми проблемами с большими файлами и приложениями логики. Оказалось, что из этой библиотеки SharePoint необходимо скопировать очень большие файлы. В SharePoint по умолчанию установлен предельный размер буфера в 100 МБ, а действие «Получить содержимое файла» изначально не поддерживает фрагментацию.
Я успешно вытащил файлы с веб-активностью и активностью копирования. Но я обнаружил, что конфигурация разрешений SharePoint немного сложна. Я описал свой процесс здесь. Вы можете использовать двоичный набор данных, если хотите просто скопировать полный файл, а не читать данные.
Если мой файл находится по адресуhttps://mytenant.sharepoint.com/sites/site1/libraryname/folder1/folder2/folder3/myfile.CSV
, URL-адрес, который мне нужен для извлечения файла,https://mytenant.sharepoint.com/sites/site1/libraryname/folder1/folder2/folder3/myfile.CSV')/$value
.
Будьте осторожны, когда вы получите свой токен авторизации. Ваш токен авторизации действителен в течение 1 часа. Если вы копируете несколько файлов последовательно, и это занимает больше времени, вы можете получить ошибку тайм-аута.
Вы можете использовать Power Automate (https://make.powerautomate.com/), чтобы выполнить эту задачу автоматически:
- Создайте автоматический триггер облачного потока всякий раз, когда новый файл удаляется в SharePoint.
- Используйте любой упомянутый триггер в соответствии с вашими требованиями и заполните данные SharePoint.
- Добавьте действие для создания большого двоичного объекта и заполните данные в соответствии с вашим вариантом использования.
Используя это, вы будете вставлять все данные SharePoint в BLOB, даже не используя ADF.
Вы можете использовать приложение логики для извлечения данных из Sharepoint и загрузки их в хранилище BLOB-объектов Azure, и теперь вы можете использовать фабрику данных Azure для извлечения данных из большого двоичного объекта, даже если мы можем установить триггер события, чтобы, если какой-либо файл попадает в контейнер больших двоичных объектов, конвейер Azure автоматически сработает.