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
for param, value in zip(["datasetId", "projectId"], [dataset_id, project_id]):
            specified_param = dataset_reference["datasetReference"].get(param)
            if specified_param:
                if value:
                    self.log.info(
                        "`%s` was provided in both `dataset_reference` and as `%s`. "
                        "Using value from `dataset_reference`",
                        param,
                        convert_camel_to_snake(param),
                    )
                continue  # 
            if not value:
                raise ValueError(
                    f"Please specify `{param}` either in `dataset_reference` "
                    f"or by providing `{convert_camel_to_snake(param)}`",
                )
            # 
            self.log.info(
                "%s was not specified in `dataset_reference`. Will use default value %s.", param, value
            )
            dataset_reference["datasetReference"][param] = value
        location = location or self.location
        if location:
            dataset_reference["location"] = dataset_reference.get("location", location)
        dataset: Dataset = Dataset.from_api_repr(dataset_reference)
        self.log.info('Creating dataset: %s in project: %s ', dataset.dataset_id, dataset.project)
        self.get_client(location=location).create_dataset(dataset=dataset, exists_ok=exists_ok)
        self.log.info('Dataset created successfully.')
    @GoogleBaseHook.fallback_to_default_project_id
    def get_dataset_tables(