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/operators/bigquery.py
if job.error_result:
            raise AirflowException(f"BigQuery job {job.job_id} failed: {job.error_result}")
    def _job_id(self, context):
        if self.force_rerun:
            hash_base = str(uuid.uuid4())
        else:
            hash_base = json.dumps(self.configuration, sort_keys=True)
        uniqueness_suffix = hashlib.md5(hash_base.encode()).hexdigest()
        if self.job_id:
            return f"{self.job_id}_{uniqueness_suffix}"
        exec_date = context['execution_date'].isoformat()
        job_id = f"airflow_{self.dag_id}_{self.task_id}_{exec_date}_{uniqueness_suffix}"
        return re.sub(r"\:|-|\+\.", "_", job_id)
    def execute(self, context: Any):
        hook = BigQueryHook(
            gcp_conn_id=self.gcp_conn_id,
            delegate_to=self.delegate_to,
            impersonation_chain=self.impersonation_chain,
        )
        self.hook = hook