Method: googleapis.spanner.v1.projects.instances.databases.sessions.batchWrite

Batches the supplied mutation groups in a collection of efficient transactions. All mutations in a group are committed atomically. However, mutations across groups can be committed non-atomically in an unspecified order and thus, they must be independent of each other. Partial failure is possible, that is, some groups might have been committed successfully, while some might have failed. The results of individual batches are streamed into the response as the batches are applied. BatchWrite requests are not replay protected, meaning that each mutation group can be applied more than once. Replays of non-idempotent mutations can have undesirable effects. For example, replays of an insert mutation can produce an already exists error or if you use generated or commit timestamp-based keys, it can result in additional rows being added to the mutation's table. We recommend structuring your mutation groups to be idempotent to avoid this issue.

For more information about retries and long-running operations, see Understand connectors.

Arguments

Parameters
session

string

Required. The session in which the batch request is to be run.

body

object (BatchWriteRequest)

Required.

Raised exceptions

Exceptions
ConnectionError In case of a network problem (such as DNS failure or refused connection).
HttpError If the response status is >= 400 (excluding 429 and 503).
TimeoutError If a long-running operation takes longer to finish than the specified timeout limit.
TypeError If an operation or function receives an argument of the wrong type.
ValueError If an operation or function receives an argument of the right type but an inappropriate value. For example, a negative timeout.

Response

If successful, the response contains an instance of BatchWriteResponse.

Subworkflow snippet

Some fields might be optional or required. To identify required fields, refer to the API documentation.

YAML

- batchWrite:
    call: googleapis.spanner.v1.projects.instances.databases.sessions.batchWrite
    args:
        session: ...
        body:
            excludeTxnFromChangeStreams: ...
            mutationGroups: ...
            requestOptions:
                priority: ...
                requestTag: ...
                transactionTag: ...
    result: batchWriteResult

JSON

[
  {
    "batchWrite": {
      "call": "googleapis.spanner.v1.projects.instances.databases.sessions.batchWrite",
      "args": {
        "session": "...",
        "body": {
          "excludeTxnFromChangeStreams": "...",
          "mutationGroups": "...",
          "requestOptions": {
            "priority": "...",
            "requestTag": "...",
            "transactionTag": "..."
          }
        }
      },
      "result": "batchWriteResult"
    }
  }
]