Как загрузить> 1 миллион элементов в список SharePoint Online - PullRequest
0 голосов
/ 03 августа 2020

Может ли кто-нибудь предложить разумно практичный и эффективный способ загрузки 1,2 миллиона тестовых элементов в список SharePoint Online?

История вопроса: Мы решили создать новое приложение поверх SharePoint Online. Все другие варианты архитектуры приложения оказались нежизнеспособными по разным причинам. Приложение будет использовать несколько списков SharePoint для сохранения, один из которых будет большим, около 1,2 миллиона элементов на пике. (Да, мы планируем способы обработки лимита просмотра 5000 элементов.) Чтобы проверить жизнеспособность архитектуры (включая тактику ограничения просмотра), нам нужно создать 1,2 миллиона тестовых элементов в списке. Ничего из того, что мы пробовали, не было практичным:

  • Пытался выполнить POST-вызовы REST API с 5 параллельными потоками, поэтому он завершит sh в разумные сроки. Это не удается через некоторое время с HTTP 429 «Слишком много запросов».
  • Попытка загрузить электронную таблицу с 1,2 млн строк. Каждый раз это терпит неудачу при 130 КБ записей, и я не вижу практического способа ни загрузить / добавить в существующий список, ни добавить элементы из одного списка в другой существующий список.
  • Попытка запустить рабочий процесс ( Разнообразие SharePoint 2013, если это важно). Это работает, но работает слишком медленно в однопоточном режиме, и я не решаюсь пробовать несколько параллельных рабочих процессов, потому что это общая среда, и если я sh трачу сервер, это будет не очень хорошо.

Заранее благодарим за любые указатели!

1 Ответ

0 голосов
/ 03 августа 2020

Вы можете попробовать использовать pnp powershell для добавления более 1 миллиона элементов.

$username = "amos@contoso.onmicrosoft.com"
$password = "password"
$cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $userName, $(convertto-securestring $Password -asplaintext -force)
Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/dev -Credentials $cred
$ListName ="testn"
 for($i=0;$i -lt 1000001;$i++){
Add-PnPListItem -List $ListName -Values @{"Title" = "test";}    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...