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
self,
        external_project_dataset_table: str,
        schema_fields: List,
        source_uris: List,
        source_format: str = 'CSV',
        autodetect: bool = False,
        compression: str = 'NONE',
        ignore_unknown_values: bool = False,
        max_bad_records: int = 0,
        skip_leading_rows: int = 0,
        field_delimiter: str = ',',
        quote_character: Optional[str] = None,
        allow_quoted_newlines: bool = False,
        allow_jagged_rows: bool = False,
        encoding: str = "UTF-8",
        src_fmt_configs: Optional[Dict] = None,
        labels: Optional[Dict] = None,
        encryption_configuration: Optional[Dict] = None,
        location: Optional[str] = None,
        project_id: Optional[str] = None,
    ) -> None:
        """
        Creates a new external table in the dataset with the data from Google
        Cloud Storage. See here:
        https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#resource
        for more details about these parameters.
        :param external_project_dataset_table:
            The dotted ``(<project>.|<project>:)<dataset>.<table>($<partition>)`` BigQuery