BigQuery supports clustering for both partitioned and non-partitioned tables.

Reference: [https://cloud.google.com/bigquery/docs/clustered-tables](https://cloud.google.com/bigquery/docs/clustered-tables)
airflow/providers/google/cloud/hooks/bigquery.py
"""
    BigQuery does not have a notion of a persistent connection. Thus, these
    objects are small stateless factories for cursors, which do all the real
    work.
    """
    def __init__(self, *args, **kwargs) -> None:
        self._args = args
        self._kwargs = kwargs
    def close(self) -> None:  # 
        """BigQueryConnection does not have anything to close"""
    def commit(self) -> None:  # 
        """BigQueryConnection does not support transactions"""
    def cursor(self) -> "BigQueryCursor":  # 
        """Return a new :py:class:`Cursor` object using the connection"""
        return BigQueryCursor(*self._args, **self._kwargs)
    def rollback(self) -> NoReturn:  # 
        """BigQueryConnection does not have transactions"""
        raise NotImplementedError("BigQueryConnection does not have transactions")
class BigQueryBaseCursor(LoggingMixin):