在Azure数据工厂中使用管道从Cosmos源到Cosmos Sink的管道复制数据时,如何最大程度地减少时间

时间:2019-11-25 11:39:26

标签: azure-cosmosdb azure-data-factory data-migration

我正在将数据从一个Azure Cosmos数据库复制到另一个Azure Cosmos数据库。在源和目标上设置的RU分别为800和15000,我要复制的容器具有3GB数据和400万个文档。

虽然通过Azure数据工厂直接从源复制到目标需要花费很多时间,所以我添加了暂存(Azure Blob存储)并将DTUI和并行化设置为自动。复制到Blob存储的速度很快,但是从blob存储复制到Cosmos时,吞吐量为3Mbps,随着数据大小的增加,吞吐量一直下降到600 kbps。

如何提高吞吐量并减少复印时间。复制3GB数据花了我1小时15分钟。

1 个答案:

答案 0 :(得分:0)

尝试使用数据流进行此数据加载操作。在将CosmosDB用作数据流中的源或接收器时,可以在整个操作过程中设置RU,从而可以在管道运行期间进行放大。

我们还允许对每个Spark分区进行限制。由于数据流使用CosmosDB Spark批量API,因此您可以控制源和接收器中的Spark分区以及CosmosDB吞吐量。您会在“优化”选项卡中看到分区选项。

这些其他控件可以为您的操作提供更好的性能。您应该针对复制操作使用较小的数据子集进行测试,而不是尝试为此测试加载3GB / 4M填充数据集。