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
:type project_id: str
        :param location: location the job is running
        :type location: str
        """
        location = location or self.location
        if self.poll_job_complete(job_id=job_id):
            self.log.info('No running BigQuery jobs to cancel.')
            return
        self.log.info('Attempting to cancel job : %s, %s', project_id, job_id)
        self.get_client(location=location, project_id=project_id).cancel_job(job_id=job_id)
        # 
        max_polling_attempts = 12
        polling_attempts = 0
        job_complete = False
        while polling_attempts < max_polling_attempts and not job_complete:
            polling_attempts += 1
            job_complete = self.poll_job_complete(job_id)
            if job_complete:
                self.log.info('Job successfully canceled: %s, %s', project_id, job_id)
            elif polling_attempts == max_polling_attempts:
                self.log.info(
                    "Stopping polling due to timeout. Job with id %s "
                    "has not completed cancel and may or may not finish.",
                    job_id,
                )
            else:
                self.log.info('Waiting for canceled job with id %s to finish.', job_id)
                time.sleep(5)
    @GoogleBaseHook.fallback_to_default_project_id
    def get_job(