MutationsBatcherAsync(
table: TableAsync,
*,
flush_interval: float | None = 5,
flush_limit_mutation_count: int | None = 1000,
flush_limit_bytes: int = 20971520,
flow_control_max_mutation_count: int = 100000,
flow_control_max_bytes: int = 104857600,
batch_operation_timeout: float | TABLE_DEFAULT = TABLE_DEFAULT.MUTATE_ROWS,
batch_attempt_timeout: float | None | TABLE_DEFAULT = TABLE_DEFAULT.MUTATE_ROWS,
batch_retryable_errors: (
Sequence[type[Exception]] | TABLE_DEFAULT
) = TABLE_DEFAULT.MUTATE_ROWS
)
Allows users to send batches using context manager API:
Runs mutate_row, mutate_rows, and check_and_mutate_row internally, combining to use as few network requests as required
Flushes:
- every flush_interval seconds
- after queue reaches flush_count in quantity
- after queue reaches flush_size_bytes in storage size
- when batcher is closed or destroyed
async with table.mutations_batcher() as batcher: for i in range(10): batcher.add(row, mut)
Methods
MutationsBatcherAsync
MutationsBatcherAsync(
table: TableAsync,
*,
flush_interval: float | None = 5,
flush_limit_mutation_count: int | None = 1000,
flush_limit_bytes: int = 20971520,
flow_control_max_mutation_count: int = 100000,
flow_control_max_bytes: int = 104857600,
batch_operation_timeout: float | TABLE_DEFAULT = TABLE_DEFAULT.MUTATE_ROWS,
batch_attempt_timeout: float | None | TABLE_DEFAULT = TABLE_DEFAULT.MUTATE_ROWS,
batch_retryable_errors: (
Sequence[type[Exception]] | TABLE_DEFAULT
) = TABLE_DEFAULT.MUTATE_ROWS
)
__aenter__
__aenter__()
For context manager API
__aexit__
__aexit__(exc_type, exc, tb)
For context manager API
append
append(mutation_entry: google.cloud.bigtable.data.mutations.RowMutationEntry)
Add a new set of mutations to the internal queue
TODO: return a future to track completion of this entry
Exceptions | |
---|---|
Type | Description |
|
RuntimeError if batcher is closed: |
|
ValueError if an invalid mutation type is added: |
close
close()
Flush queue and clean up resources