我现在正试图通过数据工厂将数据从cosmosdb复制到数据湖存储 .
但是,性能差,大约100KB / s,数据量为100 GB,并且不断增加 . 完成需要10天,这是不可接受的 .
Microsoft文档https://docs.microsoft.com/en-us/azure/data-factory/data-factory-copy-activity-performance提到从cosmos到数据湖存储的最大速度为1MB / s . 即使这样,性能仍然对我们不利 .
cosmos迁移工具不起作用,没有数据导出,也没有问题日志 .
Data lake analytics usql可以提取外部源,但目前只支持Azure DB / DW和SQL Server,没有cosmosdb .
如何/哪些工具可以提高复制性能?
1 回答
根据你的描述,我建议你可以尝试设置高cloudDataMovementUnits以提高性能 .
注意:只有当您将多个文件从Blob存储/ Data Lake Store / Amazon S3 / Cloud FTP / Cloud SFTP复制到Blob存储/ Data Lake Store / Azure SQL数据库时,8及以上的设置才有效 .
所以你可以设置的最大DMU是4 .
此外,如果此速度与您当前的要求不符 .
我建议你可以编写自己的逻辑来将documentdb复制到data lake .
您可以创建多个webjobs,可以使用从documentdb到data lake的并行副本 .
您可以根据索引范围或分区转换文档,然后您可以使每个webjob复制不同的部分 . 在我看来,这会更快 .
据我所知,你可以直接使用dmu,你可以直接在json文件中添加dmu值,如下所示:
webjob可以通过三种方式在Azure App Service Web应用程序中运行WebJobs中的程序或脚本:按需,连续或按计划 .
这意味着您可以编写C#程序(或使用其他代码语言)来运行程序或脚本以将数据从documentdb复制到数据湖(所有逻辑都应由您自己编写) .