【问题标题】:How to load > 1 million items to a SharePoint Online List如何将 > 100 万个项目加载到 SharePoint Online 列表
【发布时间】:2020-08-02 22:35:22
【问题描述】:

谁能建议一种将 120 万个测试项目加载到 SharePoint Online 列表中的合理实用且有效的方法?

背景:我们决定在 SharePoint Online 之上构建一个新应用程序。由于各种原因,其他应用程序架构选项都被证明是不可行的。该应用程序将使用多个 SharePoint 列表进行持久化,其中一个将很大,高峰时约有 120 万个项目。 (是的,我们正在计划处理 5000 项查看限制的方法。)为了测试架构的可行性(包括那些查看限制策略),我们需要在列表中创建 120 万个测试项。我们尝试过的一切都不实用:

  • 尝试使用 5 个并发线程对 REST API 进行 POST 调用,以便在合理的时间内完成。这会在 HTTP 429“请求过多”之后失败。
  • 尝试上传包含 120 万行的电子表格。每次有 130K 条目时都会失败,而且我看不到一种实用的方法来上传/追加到现有列表,也没有将项目从一个列表追加到另一个现有列表。
  • 尝试运行工作流(SharePoint 2013 变种,如果重要的话)。这可行,但单线程运行速度太慢,我不愿尝试多个并发工作流,因为这是一个共享环境,如果我将服务器丢弃,那就不好了。

提前感谢您的任何指点!

【问题讨论】:

    标签: sharepoint


    【解决方案1】:

    您可以尝试使用 pnp powershell 添加超过 100 万个项目。

    $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";}    
    }
    

    【讨论】:

    • 感谢@Amos_MSFT。我很想能够使用 PnP,但我认为它在我们非常封闭的环境中不可用;我会检查。即使我们可以得到 PnP,它也可能无法工作,因为我们使用 PIV / CAC 卡进行身份验证,而不是用户名 / 密码。
    • 更新:令我惊讶的是,我能够在我们的环境中使用这种方法。一旦我安装了它并为我们的环境获得了正确的身份验证,它看起来就可以工作了。 (顺便说一句,我们在这里使用它来进行身份验证:Connect-PnPOnline -Url https://(我们的服务器 url)-UseWeblogin)我还没有尝试创建大量记录,但是当我这样做时,我会计划在这里报告情况。再次感谢@Amos_MSFT!
    • 这很有效,也是迄今为止我们尝试过的最实用的方法。然而,我们只得到了我们想要的大约 10% 的记录。看起来 SharePoint Online 每小时只能加载大约 10K 条记录。
    • 数据量太大。
    【解决方案2】:

    使用 PnPPowershell 从 SPO 加载和处理项目的最快方法如下所示。想法是不在任何变量中初始化项目集合,而是直接按页面大小处理项目。

    Get-PnpListItem -List "{ListName}" -Fields "Field1","Field2","Fieldn" -PageSize 5000 | % {$i=0}{

    % {$i=0}{

    不要将 { 移动到下一行,我知道这很奇怪,但如果你移动了,那么祝你好运。

    $item = $_

    #用$item做你的事

    写入主机 $item.Id

    }

    【讨论】:

      猜你喜欢
      • 2022-01-18
      • 2021-02-12
      • 2019-12-18
      • 2011-08-31
      • 2017-04-16
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多