Class MaterializedViewAsync (2.41.0)

MaterializedViewAsync(
    client: google.cloud.bigtable.data._async.client.BigtableDataClientAsync,
    instance_id: str,
    materialized_view_id: str,
    app_profile_id: typing.Optional[str] = None,
    **kwargs
)

Provides read access to a materialized view of a table.

A materialized view is a pre-computed, read-only view over a table, defined by a SQL query. Materialized views support read operations only; mutation methods raise NotImplementedError.

MaterializedView object maintains materialized_view_id and app_profile_id context, and passes them with each call

Methods

MaterializedViewAsync

MaterializedViewAsync(
    client: google.cloud.bigtable.data._async.client.BigtableDataClientAsync,
    instance_id: str,
    materialized_view_id: str,
    app_profile_id: typing.Optional[str] = None,
    **kwargs
)

Initialize a MaterializedView instance

Must be created within an async context (running event loop)

Exceptions
Type Description
RuntimeError if called outside of an async context (no running event loop)

__aenter__

__aenter__()

Implement async context manager protocol

Ensure registration task has time to run, so that grpc channels will be warmed for the specified instance

__aexit__

__aexit__(exc_type, exc_val, exc_tb)

Implement async context manager protocol

Unregister this instance with the client, so that grpc channels will no longer be warmed

bulk_mutate_rows

bulk_mutate_rows(*args, **kwargs)

Mutations are not supported for materialized views

Exceptions
Type Description
NotImplementedError always; materialized views are read-only

check_and_mutate_row

check_and_mutate_row(*args, **kwargs)

Mutations are not supported for materialized views

Exceptions
Type Description
NotImplementedError always; materialized views are read-only

close

close()

Called to close the Table instance and release any resources held by it.

mutate_row

mutate_row(*args, **kwargs)

Mutations are not supported for materialized views

Exceptions
Type Description
NotImplementedError always; materialized views are read-only

mutations_batcher

mutations_batcher(*args, **kwargs)

Mutations are not supported for materialized views

Exceptions
Type Description
NotImplementedError always; materialized views are read-only

read_modify_write_row

read_modify_write_row(*args, **kwargs)

Mutations are not supported for materialized views

Exceptions
Type Description
NotImplementedError always; materialized views are read-only

read_row

read_row(
    row_key: str | bytes,
    *,
    row_filter: typing.Optional[
        google.cloud.bigtable.data.row_filters.RowFilter
    ] = None,
    operation_timeout: (
        float | google.cloud.bigtable.data._helpers.TABLE_DEFAULT
    ) = TABLE_DEFAULT.READ_ROWS,
    attempt_timeout: (
        float | None | google.cloud.bigtable.data._helpers.TABLE_DEFAULT
    ) = TABLE_DEFAULT.READ_ROWS,
    retryable_errors: typing.Union[
        typing.Sequence[type[Exception]],
        google.cloud.bigtable.data._helpers.TABLE_DEFAULT,
    ] = TABLE_DEFAULT.READ_ROWS
) -> google.cloud.bigtable.data.row.Row | None

Read a single row from the table, based on the specified key.

Failed requests within operation_timeout will be retried based on the retryable_errors list until operation_timeout is reached.

Exceptions
Type Description
google.api_core.exceptions.DeadlineExceeded raised after operation timeout will be chained with a RetryExceptionGroup containing GoogleAPIError exceptions from any retries that failed
google.api_core.exceptions.GoogleAPIError raised if the request encounters an unrecoverable error
Returns
Type Description
Row None a Row object if the row exists, otherwise None

read_rows

read_rows(
    query: google.cloud.bigtable.data.read_rows_query.ReadRowsQuery,
    *,
    operation_timeout: (
        float | google.cloud.bigtable.data._helpers.TABLE_DEFAULT
    ) = TABLE_DEFAULT.READ_ROWS,
    attempt_timeout: (
        float | None | google.cloud.bigtable.data._helpers.TABLE_DEFAULT
    ) = TABLE_DEFAULT.READ_ROWS,
    retryable_errors: typing.Union[
        typing.Sequence[type[Exception]],
        google.cloud.bigtable.data._helpers.TABLE_DEFAULT,
    ] = TABLE_DEFAULT.READ_ROWS
) -> list[google.cloud.bigtable.data.row.Row]

Read a set of rows from the table, based on the specified query. Retruns results as a list of Row objects when the request is complete. For streamed results, use read_rows_stream.

Failed requests within operation_timeout will be retried based on the retryable_errors list until operation_timeout is reached.

Exceptions
Type Description
google.api_core.exceptions.DeadlineExceeded raised after operation timeout will be chained with a RetryExceptionGroup containing GoogleAPIError exceptions from any retries that failed
google.api_core.exceptions.GoogleAPIError raised if the request encounters an unrecoverable error
Returns
Type Description
list[Row] a list of Rows returned by the query

read_rows_sharded

read_rows_sharded(
    sharded_query: ShardedQuery,
    *,
    operation_timeout: float | TABLE_DEFAULT = TABLE_DEFAULT.READ_ROWS,
    attempt_timeout: float | None | TABLE_DEFAULT = TABLE_DEFAULT.READ_ROWS,
    retryable_errors: (
        Sequence[type[Exception]] | TABLE_DEFAULT
    ) = TABLE_DEFAULT.READ_ROWS
) -> list[Row]

Runs a sharded query in parallel, then return the results in a single list. Results will be returned in the order of the input queries.

This function is intended to be run on the results on a query.shard() call. For example::

table_shard_keys = await table.sample_row_keys()
query = ReadRowsQuery(...)
shard_queries = query.shard(table_shard_keys)
results = await table.read_rows_sharded(shard_queries)
Exceptions
Type Description
ShardedReadRowsExceptionGroup if any of the queries failed
ValueError if the query_list is empty
Returns
Type Description
list[Row] a list of Rows returned by the query

read_rows_stream

read_rows_stream(
    query: google.cloud.bigtable.data.read_rows_query.ReadRowsQuery,
    *,
    operation_timeout: (
        float | google.cloud.bigtable.data._helpers.TABLE_DEFAULT
    ) = TABLE_DEFAULT.READ_ROWS,
    attempt_timeout: (
        float | None | google.cloud.bigtable.data._helpers.TABLE_DEFAULT
    ) = TABLE_DEFAULT.READ_ROWS,
    retryable_errors: typing.Union[
        typing.Sequence[type[Exception]],
        google.cloud.bigtable.data._helpers.TABLE_DEFAULT,
    ] = TABLE_DEFAULT.READ_ROWS
) -> typing.AsyncIterable[google.cloud.bigtable.data.row.Row]

Read a set of rows from the table, based on the specified query. Returns an iterator to asynchronously stream back row data.

Failed requests within operation_timeout will be retried based on the retryable_errors list until operation_timeout is reached.

Exceptions
Type Description
google.api_core.exceptions.DeadlineExceeded raised after operation timeout will be chained with a RetryExceptionGroup containing GoogleAPIError exceptions from any retries that failed
google.api_core.exceptions.GoogleAPIError raised if the request encounters an unrecoverable error
Returns
Type Description
AsyncIterable[Row] an asynchronous iterator that yields rows returned by the query

row_exists

row_exists(
    row_key: str | bytes,
    *,
    operation_timeout: (
        float | google.cloud.bigtable.data._helpers.TABLE_DEFAULT
    ) = TABLE_DEFAULT.READ_ROWS,
    attempt_timeout: (
        float | None | google.cloud.bigtable.data._helpers.TABLE_DEFAULT
    ) = TABLE_DEFAULT.READ_ROWS,
    retryable_errors: typing.Union[
        typing.Sequence[type[Exception]],
        google.cloud.bigtable.data._helpers.TABLE_DEFAULT,
    ] = TABLE_DEFAULT.READ_ROWS
) -> bool

Return a boolean indicating whether the specified row exists in the table. uses the filters: chain(limit cells per row = 1, strip value)

Exceptions
Type Description
google.api_core.exceptions.DeadlineExceeded raised after operation timeout will be chained with a RetryExceptionGroup containing GoogleAPIError exceptions from any retries that failed
google.api_core.exceptions.GoogleAPIError raised if the request encounters an unrecoverable error
Returns
Type Description
bool a bool indicating whether the row exists

sample_row_keys

sample_row_keys(
    *,
    row_range: RowRange | None = None,
    operation_timeout: float | TABLE_DEFAULT = TABLE_DEFAULT.DEFAULT,
    attempt_timeout: float | None | TABLE_DEFAULT = TABLE_DEFAULT.DEFAULT,
    retryable_errors: Sequence[type[Exception]] | TABLE_DEFAULT = TABLE_DEFAULT.DEFAULT
) -> RowKeySamples

Return a set of RowKeySamples that delimit contiguous sections of the table of approximately equal size

RowKeySamples output can be used with ReadRowsQuery.shard() to create a sharded query that can be parallelized across multiple backend nodes read_rows and read_rows_stream requests will call sample_row_keys internally for this purpose when sharding is enabled

RowKeySamples is simply a type alias for list[tuple[bytes, int]]; a list of row_keys, along with offset positions in the table

Exceptions
Type Description
google.api_core.exceptions.DeadlineExceeded raised after operation timeout will be chained with a RetryExceptionGroup containing GoogleAPIError exceptions from any retries that failed
google.api_core.exceptions.GoogleAPIError raised if the request encounters an unrecoverable error
Returns
Type Description
RowKeySamples a set of RowKeySamples the delimit contiguous sections of the table