aip_sdk.commit_row_batch
aip_sdk.commit_row_batch(dataset_id: str, adds: list[dict[str, Any]] | None = None, updates: dict[str, dict[str, Any]] | None = None, deletes: list[str] | None = None, current_snapshot_id: str | int | None = None, client: APIClient | None = None) -> RowOperationResponse
Commit an atomic mix of insert / update / delete operations.
All operations are applied in a single Iceberg snapshot.
Parameters
dataset_idstr: Dataset ID.addslist[dict[str, Any]] | None: Rows to insert.updatesdict[str, dict[str, Any]] | None: Mapping of{row_id: {column: new_value}}.deleteslist[str] | None: Row IDs to delete.current_snapshot_idstr | int | None: Optional Iceberg snapshot ID for conflict detection. Accepts eitherstrorint; serialised as string to the API.clientAPIClient | None: Optional API client.
Returns
RowOperationResponse: class:RowOperationResponsewithadds,updates, anddeletesRowOperationResponse: fields reflecting the committed changes.
Raises
APIError: On HTTP error, including 409 whencurrent_snapshot_idmismatches.