我必须使用存储过程在容器中复制大容量数据。现在我想使用事务性批处理,但我不知道如何做到这一点。
TransactionalBatch在概念上不适用于Bulk操作,它意味着您可以定义一组属于要作为一个单元执行的同一Partition Key的操作。在过去,这只能通过存储过程来完成。例如,如果存储过程在内部创建了10个文档,则可以创建一个执行10个创建的TransactionalBatch,它也可以实现同样的效果。因为所有操作共享相同的事务作用域,所以如果其中一个操作失败,则整个组都会失败(它们提交全部或不提交(。
另一方面,批量是指处理大量操作,试图利用所有可用吞吐量(RU/s(。通过Bulk处理的文档可以属于不同的Partition Key值,并且可以独立失败(您可以发送100K文档,1K可以失败,但99K可以成功(。Bulk是通过V4 Java SDK上的container.executeBulkOperations
公开的,在https://learn.microsoft.com/azure/cosmos-db/sql/bulk-executor-java