DocumentDB: хранимая процедура группового импорта: вставка документов с несколькими ключами разделения в COSMOS DB - PullRequest
1 голос
/ 24 января 2020

Я работаю над хранимой процедурой массовой вставки в базе данных Cosmos, используя document client, но проблема, с которой я сталкиваюсь, заключается в том, что мне нужно вставлять документы оптом, которые могут иметь разные partition keys.

Есть ли Любой способ добиться этого?

В настоящее время я использую следующий код:

  Uri uri = UriFactory.CreateStoredProcedureUri("test-db", "test-collection", "sp_bulk_insert");
  RequestOptions options = new RequestOptions { PartitionKey = new PartitionKey("patient")};
  var result = await _client.ExecuteStoredProcedureAsync<string>(uri, options , patientInfo, pageInfo);
  return result;

Но у меня также есть pageInfo объект с ключом раздела: "страница", но с PartitionKey в RequestOptions - это «пациент», то есть ключ раздела patientInfo объекта

Когда я пытаюсь выполнить SP, выдается следующая ошибка:

Requests originating from scripts cannot reference partition keys other than the one for which client request was submitted

1 Ответ

3 голосов
/ 25 января 2020

Хранимые процедуры ограничены одним ключом раздела, поэтому это невозможно. Также нет причин использовать хранимые процедуры для массовых операций. Вам лучше использовать. NET SDK v3 и использовать в нем массовую поддержку. https://github.com/Azure/azure-cosmos-dotnet-v3/tree/master/Microsoft.Azure.Cosmos.Samples/Usage/BulkSupport

Спасибо.

...