Cosmos 接收器中的 Azure 数据工厂 "write throughput budget" 设置始终将 RU 使用率限制在 ~10%

Azure Data Factory "write throughput budget" setting in Cosmos sink always caps RU usage to ~10%

我们正在使用 Cosmos 数据集作为管道中数据流的接收器。 Cosmos 数据库配置为在正常操作期间使用 400 个 RU,但我们在管道 运行 期间对其进行了升级。升级完美无缺。

正如预期的那样,管道消耗了 100% 的预配吞吐量。我们想将此限制在 80% 左右,这样我们的客户就不会遇到延迟和超时异常。根据文档,Cosmos 接收器中的“写入吞吐量预算”设置假定为“一个整数,表示您要为此数据流写入操作分配的 RU,超出分配给集合”。除非我弄错了,否则这意味着您可以设置允许管道消耗多少 RU 的限制。

但是,无论我们为“写入吞吐量预算”使用什么值,管道始终会消耗约 10% 的总预配吞吐量。我们测试了各种值,结果总是一样的。如果我们不设置一个值,则会消耗 100% 的 RU,但无论我们将该值设置为 1、500、1000 还是 1200(总共 1000),始终会使用 ~10%。

有谁知道这是 ADF Cosmos 接收器的错误,还是我误解了这个设置应该是什么?是否有任何其他方法可以限制允许 ADF 管道使用多少个 Cosmos RU?

编辑: 这肯定与数据大小有关。当我们使用 300 000 个文档进行测试时,将预置吞吐量设置为 10000 RU 并将吞吐量预算写入 7500 使用约 85% 的总 RU。使用相同的设置,但有 10 000 000 个文档,我们看到管道 运行.

的一致 ~10% RU 使用率

这将取决于分区的数量。检查接收器有多少个分区。

我们问题的解决方案是将“写入吞吐量预算”设置为比预配置吞吐量高得多的值。管道中使用的数据大小和分区数量肯定会影响您应该使用的设置。作为参考,我们有大约 10 000 000 个文档,每个文档 455 字节。将吞吐量设置为 10 000 并将吞吐量预算写入 60 000,ADF 平均使用预配吞吐量的 ~90%。

我建议针对您的具体情况进行反复试验,并且不要害怕将写入预算设置为比您认为必要的值高得多的值。