当前位置: 首页 > 知识库问答 >
问题:

如何使用 azure cosmos db 最大化 DB 上传速率

沈华晖
2023-03-14

这是我的问题。我试图将一个大的csv文件上传到cosmos db(~14gb),但我发现很难最大化我支付的吞吐量。在azure portal metrics overview UI上,它说当我支付16600 RU/s时,我使用73 RU/s。现在,我正在使用pymongo的批量写入函数上传到数据库,但我发现任何大于5的bulk_write长度都会抛出硬<code>请求速率 异常。我做错了吗?在这种情况下,是否有更有效的方法上传数据?互联网带宽可能不是问题,因为我正在从azure vm上传到cosmos db。

我现在如何上传python的结构:

for row in csv.reader:
    row[id_index_1] = convert_id_to_useful_id(row[id_index_1])

    find_criteria = {
        # find query
    }

    upsert_dict = {
        # row data
    }
    operations.append(pymongo.UpdateOne(find_criteria, upsert_dict, upsert=True))

    if len(operations) > 5:

        results = collection.bulk_write(operations)

        operations = []

如有任何建议,将不胜感激。

共有3个答案

杜烨伟
2023-03-14

我能够提高上传速度。我注意到每个物理分区都有吞吐量限制(出于某种原因,物理分区的数量乘以每个分区的吞吐量仍然不是集合的总吞吐量),所以我所做的是按每个分区拆分数据,然后为每个分区键创建一个单独的上传过程。这将我的上传速度提高了(物理分区的#)倍。

东门彬
2023-03-14

我想看看Cosmos DB:数据迁移工具。我没有在MongoDB API中使用它,但它是受支持的。我已经使用它成功地将大量文档从本地机器移动到Azure,它将利用可用的RU/s。

如果您需要以编程方式执行此操作,我建议查看DB迁移工具的底层源代码。这是开源的。您可以在此处找到代码。

东门清夷
2023-03-14

亚伦。是的,正如您在评论中所说,Azure Cosmos DB MongoDB API支持迁移工具。你可以在官方文件中找到打击声明。

数据迁移工具目前不支持Azure Cosmos DB MongoDB API作为源或目标。如果您想在Azure Cosmos DB中将数据移入或移出MongoDB API集合,请参考Azure Cosmos DB:How to migrate data for the MongoDB API以获取说明。您仍然可以使用数据迁移工具将数据从MongoDB导出到Azure Cosmos DB SQL API集合,以便与SQL API一起使用。

我只是为您提供了一个可以使用Azure数据工厂的解决方法。请参考此文档以使cosmos db成为sink.And参考此文档以使Azure Blob存储中的csv文件成为管道source.In,您可以配置批处理大小。

当然,您可以通过编程来实现这一点。你没有错过什么,错误< code >请求速率很大只是意味着你已经超过了所提供的RUs配额。您可以提高RUs设置的值。请参考这份文件。

如果有任何问题,请随时告诉我。

 类似资料:
  • 我正在使用JHipster开发基于Spring Boot和AngularJS的应用程序。我的问题是如何设置上传文件的最大大小? 如果我试图上传到大文件,我会在控制台中获得以下信息: 和状态为500的服务器响应。 怎么设置?

  • 问题内容: 我用PHP创建了一个上传页面,但是我不知道为什么该页面不会上传大于500MB的文档,这是我第一次尝试上传较大的内容,因此我更改了PHP.INI中的所有配置(post_max_size = 700M ,upload_max_filesize = 600M和max_execution_time = 300)。上传代码如下 我需要帮助,我想知道是否有某些事情做对了。 问题答案: 您认为增加上

  • 问题内容: 所以我有一个表单,我正在使用jquery序列化功能通过ajax提交表单 但是如果表单有一个字段该怎么办....我如何使用这种ajax序列化方法将文件传递给表单…打印$ _FILES不会输出任何内容 问题答案: 无法使用AJAX上传文件,因为您无法访问存储在客户端计算机上的文件内容,也无法使用javascript在请求中发送该文件。实现此目的的一种技术是使用隐藏的iframe。有一个不错

  • 问题内容: 我必须设置多少个分片和副本才能使用群集中的每个cpu核心(我希望100%的负载,最快的查询结果)? 我想使用Elasticsearch进行聚合。我读到Elasticsearch使用多个cpu核心,但是没有找到关于cpu核心在分片和副本方面的确切细节。 我的观察是,单个分片在查询时使用的内核/线程不超过1个(考虑到一次仅查询一个)。使用副本时,查询1-shard索引的速度不会更快,因为E

  • 问题内容: 我有一个无法访问的PC上托管的网站。我有一个上传表单,允许人们上传最大30MB的mp3文件。我的服务器端脚本是用PHP完成的。 每次尝试上传文件时,都会收到一条错误消息,声称文件超出了允许的最大大小,因此我需要增加大小。我在网络上的研究建议更改我无权访问的文件,这样将无法正常工作。其他人建议我将自定义文件添加到我的根目录中,该文件无效。还有其他建议吗? 问题答案: 您需要设置的值,并在

  • 我将GLFW3.2与LWJGL和Java一起使用。 我想删除窗口上的最大化和最小化按钮,而窗口保持可调整大小,我找不到任何方法在glfw留档中做到这一点。 我见过这个解决方案,但它只适用于窗口,使用C,我正在寻找的解决方案需要跨平台。 是否有可能使用glfw实现这一点?或者我应该使用一个未装饰的glfw窗口并绘制自己的标题栏?